@mysten-incubation/devstack 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +189 -0
- package/README.md +94 -0
- package/dist/_virtual/_rolldown/runtime.mjs +13 -0
- package/dist/api/define-capabilities.d.mts +25 -0
- package/dist/api/define-capabilities.mjs +19 -0
- package/dist/api/define-capabilities.mjs.map +1 -0
- package/dist/api/define-devstack-with.d.mts +41 -0
- package/dist/api/define-devstack-with.mjs +24 -0
- package/dist/api/define-devstack-with.mjs.map +1 -0
- package/dist/api/define-devstack.d.mts +62 -0
- package/dist/api/define-devstack.mjs +108 -0
- package/dist/api/define-devstack.mjs.map +1 -0
- package/dist/api/define-plugin.d.mts +1 -0
- package/dist/api/inference-network.mjs +122 -0
- package/dist/api/inference-network.mjs.map +1 -0
- package/dist/api/mode-narrowed-factory.d.mts +26 -0
- package/dist/api/mode-narrowed-factory.mjs +8 -0
- package/dist/api/mode-narrowed-factory.mjs.map +1 -0
- package/dist/api/plugin-errors.mjs +10 -0
- package/dist/api/plugin-errors.mjs.map +1 -0
- package/dist/api/run-stack.d.mts +82 -0
- package/dist/api/run-stack.mjs +127 -0
- package/dist/api/run-stack.mjs.map +1 -0
- package/dist/build-integrations/playwright/config.d.mts +92 -0
- package/dist/build-integrations/playwright/config.mjs +71 -0
- package/dist/build-integrations/playwright/config.mjs.map +1 -0
- package/dist/build-integrations/playwright/errors.d.mts +82 -0
- package/dist/build-integrations/playwright/errors.mjs +43 -0
- package/dist/build-integrations/playwright/errors.mjs.map +1 -0
- package/dist/build-integrations/playwright/global-setup.d.mts +64 -0
- package/dist/build-integrations/playwright/global-setup.mjs +44 -0
- package/dist/build-integrations/playwright/global-setup.mjs.map +1 -0
- package/dist/build-integrations/playwright/index.d.mts +6 -0
- package/dist/build-integrations/playwright/index.mjs +6 -0
- package/dist/build-integrations/playwright/stack-context.d.mts +95 -0
- package/dist/build-integrations/playwright/stack-context.mjs +277 -0
- package/dist/build-integrations/playwright/stack-context.mjs.map +1 -0
- package/dist/build-integrations/playwright/wallet-context.d.mts +87 -0
- package/dist/build-integrations/playwright/wallet-context.mjs +148 -0
- package/dist/build-integrations/playwright/wallet-context.mjs.map +1 -0
- package/dist/build-integrations/runtime/cold-start-url.d.mts +67 -0
- package/dist/build-integrations/runtime/cold-start-url.mjs +56 -0
- package/dist/build-integrations/runtime/cold-start-url.mjs.map +1 -0
- package/dist/build-integrations/runtime/dapp-kit-slot.mjs +10 -0
- package/dist/build-integrations/runtime/dapp-kit-slot.mjs.map +1 -0
- package/dist/build-integrations/runtime/discover.d.mts +78 -0
- package/dist/build-integrations/runtime/discover.mjs +124 -0
- package/dist/build-integrations/runtime/discover.mjs.map +1 -0
- package/dist/build-integrations/runtime/endpoint-registry.d.mts +26 -0
- package/dist/build-integrations/runtime/endpoint-registry.mjs +41 -0
- package/dist/build-integrations/runtime/endpoint-registry.mjs.map +1 -0
- package/dist/build-integrations/runtime/errors.d.mts +64 -0
- package/dist/build-integrations/runtime/errors.mjs +51 -0
- package/dist/build-integrations/runtime/errors.mjs.map +1 -0
- package/dist/build-integrations/runtime/index.d.mts +7 -0
- package/dist/build-integrations/runtime/index.mjs +6 -0
- package/dist/build-integrations/runtime/read-stack-context.d.mts +38 -0
- package/dist/build-integrations/runtime/read-stack-context.mjs +130 -0
- package/dist/build-integrations/runtime/read-stack-context.mjs.map +1 -0
- package/dist/build-integrations/runtime/stack-context.d.mts +53 -0
- package/dist/build-integrations/vitest/config.d.mts +62 -0
- package/dist/build-integrations/vitest/config.mjs +80 -0
- package/dist/build-integrations/vitest/config.mjs.map +1 -0
- package/dist/build-integrations/vitest/env.d.mts +48 -0
- package/dist/build-integrations/vitest/env.mjs +50 -0
- package/dist/build-integrations/vitest/env.mjs.map +1 -0
- package/dist/build-integrations/vitest/errors.d.mts +44 -0
- package/dist/build-integrations/vitest/errors.mjs +18 -0
- package/dist/build-integrations/vitest/errors.mjs.map +1 -0
- package/dist/build-integrations/vitest/index.d.mts +6 -0
- package/dist/build-integrations/vitest/index.mjs +6 -0
- package/dist/build-integrations/vitest/setup.d.mts +53 -0
- package/dist/build-integrations/vitest/setup.mjs +56 -0
- package/dist/build-integrations/vitest/setup.mjs.map +1 -0
- package/dist/build-integrations/vitest/stack-context.d.mts +58 -0
- package/dist/build-integrations/vitest/stack-context.mjs +67 -0
- package/dist/build-integrations/vitest/stack-context.mjs.map +1 -0
- package/dist/cli/main.d.mts +5 -0
- package/dist/cli/main.mjs +586 -0
- package/dist/cli/main.mjs.map +1 -0
- package/dist/cli/prune-direct.mjs +216 -0
- package/dist/cli/prune-direct.mjs.map +1 -0
- package/dist/cli/snapshot-reader.mjs +73 -0
- package/dist/cli/snapshot-reader.mjs.map +1 -0
- package/dist/cli/up-lifecycle.mjs +28 -0
- package/dist/cli/up-lifecycle.mjs.map +1 -0
- package/dist/contracts/capability-decl.d.mts +42 -0
- package/dist/contracts/chain-probe.d.mts +26 -0
- package/dist/contracts/chain-probe.mjs +8 -0
- package/dist/contracts/chain-probe.mjs.map +1 -0
- package/dist/contracts/codegenable.d.mts +43 -0
- package/dist/contracts/container-runtime.d.mts +245 -0
- package/dist/contracts/liveness-classifier.d.mts +19 -0
- package/dist/contracts/network-resolver.d.mts +15 -0
- package/dist/contracts/network-resolver.mjs +7 -0
- package/dist/contracts/network-resolver.mjs.map +1 -0
- package/dist/contracts/projection.d.mts +15 -0
- package/dist/contracts/routable.d.mts +53 -0
- package/dist/contracts/snapshotable.d.mts +39 -0
- package/dist/contracts/strategy-contributor.d.mts +26 -0
- package/dist/index.d.mts +89 -0
- package/dist/index.mjs +37 -0
- package/dist/orchestrators/codegen/bindings.d.mts +2 -0
- package/dist/orchestrators/codegen/bindings.mjs +340 -0
- package/dist/orchestrators/codegen/bindings.mjs.map +1 -0
- package/dist/orchestrators/codegen/emit.mjs +56 -0
- package/dist/orchestrators/codegen/emit.mjs.map +1 -0
- package/dist/orchestrators/codegen/errors.d.mts +1 -0
- package/dist/orchestrators/codegen/errors.mjs +66 -0
- package/dist/orchestrators/codegen/errors.mjs.map +1 -0
- package/dist/orchestrators/codegen/extras.mjs +16 -0
- package/dist/orchestrators/codegen/extras.mjs.map +1 -0
- package/dist/orchestrators/codegen/format.mjs +109 -0
- package/dist/orchestrators/codegen/format.mjs.map +1 -0
- package/dist/orchestrators/codegen/gitignore.mjs +67 -0
- package/dist/orchestrators/codegen/gitignore.mjs.map +1 -0
- package/dist/orchestrators/codegen/paths.d.mts +1 -0
- package/dist/orchestrators/codegen/paths.mjs +33 -0
- package/dist/orchestrators/codegen/paths.mjs.map +1 -0
- package/dist/orchestrators/codegen/permissions.mjs +6 -0
- package/dist/orchestrators/codegen/permissions.mjs.map +1 -0
- package/dist/orchestrators/codegen/service.d.mts +1 -0
- package/dist/orchestrators/codegen/service.mjs +276 -0
- package/dist/orchestrators/codegen/service.mjs.map +1 -0
- package/dist/orchestrators/router/cleanup.mjs +58 -0
- package/dist/orchestrators/router/cleanup.mjs.map +1 -0
- package/dist/orchestrators/router/cors.mjs +31 -0
- package/dist/orchestrators/router/cors.mjs.map +1 -0
- package/dist/orchestrators/router/entrypoints.d.mts +1 -0
- package/dist/orchestrators/router/entrypoints.mjs +80 -0
- package/dist/orchestrators/router/entrypoints.mjs.map +1 -0
- package/dist/orchestrators/router/errors.d.mts +1 -0
- package/dist/orchestrators/router/errors.mjs +103 -0
- package/dist/orchestrators/router/errors.mjs.map +1 -0
- package/dist/orchestrators/router/file-provider.d.mts +1 -0
- package/dist/orchestrators/router/file-provider.mjs +320 -0
- package/dist/orchestrators/router/file-provider.mjs.map +1 -0
- package/dist/orchestrators/router/hostname.d.mts +1 -0
- package/dist/orchestrators/router/hostname.mjs +107 -0
- package/dist/orchestrators/router/hostname.mjs.map +1 -0
- package/dist/orchestrators/router/index.d.mts +1 -0
- package/dist/orchestrators/router/profile.d.mts +1 -0
- package/dist/orchestrators/router/profile.mjs +109 -0
- package/dist/orchestrators/router/profile.mjs.map +1 -0
- package/dist/orchestrators/router/service.d.mts +3 -0
- package/dist/orchestrators/router/service.mjs +421 -0
- package/dist/orchestrators/router/service.mjs.map +1 -0
- package/dist/orchestrators/router/traefik-container.d.mts +1 -0
- package/dist/orchestrators/router/traefik-container.mjs +229 -0
- package/dist/orchestrators/router/traefik-container.mjs.map +1 -0
- package/dist/orchestrators/runtime-composition.d.mts +10 -0
- package/dist/orchestrators/runtime-composition.mjs +168 -0
- package/dist/orchestrators/runtime-composition.mjs.map +1 -0
- package/dist/orchestrators/snapshot/capture.d.mts +1 -0
- package/dist/orchestrators/snapshot/capture.mjs +350 -0
- package/dist/orchestrators/snapshot/capture.mjs.map +1 -0
- package/dist/orchestrators/snapshot/descriptor.d.mts +1 -0
- package/dist/orchestrators/snapshot/descriptor.mjs +109 -0
- package/dist/orchestrators/snapshot/descriptor.mjs.map +1 -0
- package/dist/orchestrators/snapshot/identity-guard.d.mts +1 -0
- package/dist/orchestrators/snapshot/identity-guard.mjs +132 -0
- package/dist/orchestrators/snapshot/identity-guard.mjs.map +1 -0
- package/dist/orchestrators/snapshot/image-bundle-tags.mjs +207 -0
- package/dist/orchestrators/snapshot/image-bundle-tags.mjs.map +1 -0
- package/dist/orchestrators/snapshot/index.d.mts +1 -0
- package/dist/orchestrators/snapshot/integrity.d.mts +1 -0
- package/dist/orchestrators/snapshot/integrity.mjs +74 -0
- package/dist/orchestrators/snapshot/integrity.mjs.map +1 -0
- package/dist/orchestrators/snapshot/prune.d.mts +1 -0
- package/dist/orchestrators/snapshot/prune.mjs +110 -0
- package/dist/orchestrators/snapshot/prune.mjs.map +1 -0
- package/dist/orchestrators/snapshot/restore.d.mts +1 -0
- package/dist/orchestrators/snapshot/restore.mjs +404 -0
- package/dist/orchestrators/snapshot/restore.mjs.map +1 -0
- package/dist/orchestrators/snapshot/service.d.mts +1 -0
- package/dist/orchestrators/snapshot/service.mjs +296 -0
- package/dist/orchestrators/snapshot/service.mjs.map +1 -0
- package/dist/orchestrators/snapshot/state-document.mjs +18 -0
- package/dist/orchestrators/snapshot/state-document.mjs.map +1 -0
- package/dist/orchestrators/snapshot/wipe.d.mts +1 -0
- package/dist/orchestrators/snapshot/wipe.mjs +59 -0
- package/dist/orchestrators/snapshot/wipe.mjs.map +1 -0
- package/dist/plugins/account/codegen.d.mts +12 -0
- package/dist/plugins/account/codegen.mjs +22 -0
- package/dist/plugins/account/codegen.mjs.map +1 -0
- package/dist/plugins/account/errors.d.mts +44 -0
- package/dist/plugins/account/errors.mjs +16 -0
- package/dist/plugins/account/errors.mjs.map +1 -0
- package/dist/plugins/account/funding.d.mts +94 -0
- package/dist/plugins/account/funding.mjs +199 -0
- package/dist/plugins/account/funding.mjs.map +1 -0
- package/dist/plugins/account/index.d.mts +54 -0
- package/dist/plugins/account/index.mjs +151 -0
- package/dist/plugins/account/index.mjs.map +1 -0
- package/dist/plugins/account/keypair.d.mts +32 -0
- package/dist/plugins/account/keypair.mjs +99 -0
- package/dist/plugins/account/keypair.mjs.map +1 -0
- package/dist/plugins/account/lease.mjs +21 -0
- package/dist/plugins/account/lease.mjs.map +1 -0
- package/dist/plugins/account/registry.d.mts +33 -0
- package/dist/plugins/account/registry.mjs +36 -0
- package/dist/plugins/account/registry.mjs.map +1 -0
- package/dist/plugins/account/service.d.mts +104 -0
- package/dist/plugins/account/service.mjs +405 -0
- package/dist/plugins/account/service.mjs.map +1 -0
- package/dist/plugins/account/snapshot.mjs +33 -0
- package/dist/plugins/account/snapshot.mjs.map +1 -0
- package/dist/plugins/account/variants/env.mjs +24 -0
- package/dist/plugins/account/variants/env.mjs.map +1 -0
- package/dist/plugins/account/variants/ephemeral.mjs +72 -0
- package/dist/plugins/account/variants/ephemeral.mjs.map +1 -0
- package/dist/plugins/account/variants/impersonate.d.mts +16 -0
- package/dist/plugins/account/variants/impersonate.mjs +48 -0
- package/dist/plugins/account/variants/impersonate.mjs.map +1 -0
- package/dist/plugins/account/variants/inline.mjs +13 -0
- package/dist/plugins/account/variants/inline.mjs.map +1 -0
- package/dist/plugins/account/variants/keystore.mjs +93 -0
- package/dist/plugins/account/variants/keystore.mjs.map +1 -0
- package/dist/plugins/account/variants/signer.mjs +31 -0
- package/dist/plugins/account/variants/signer.mjs.map +1 -0
- package/dist/plugins/action/build-context.d.mts +41 -0
- package/dist/plugins/action/discriminator.d.mts +20 -0
- package/dist/plugins/action/discriminator.mjs +13 -0
- package/dist/plugins/action/discriminator.mjs.map +1 -0
- package/dist/plugins/action/errors.d.mts +31 -0
- package/dist/plugins/action/errors.mjs +13 -0
- package/dist/plugins/action/errors.mjs.map +1 -0
- package/dist/plugins/action/execute.d.mts +2 -0
- package/dist/plugins/action/execute.mjs +145 -0
- package/dist/plugins/action/execute.mjs.map +1 -0
- package/dist/plugins/action/index.d.mts +56 -0
- package/dist/plugins/action/index.mjs +82 -0
- package/dist/plugins/action/index.mjs.map +1 -0
- package/dist/plugins/action/service.d.mts +26 -0
- package/dist/plugins/action/service.mjs +84 -0
- package/dist/plugins/action/service.mjs.map +1 -0
- package/dist/plugins/coin/address-resolution.d.mts +34 -0
- package/dist/plugins/coin/address-resolution.mjs +80 -0
- package/dist/plugins/coin/address-resolution.mjs.map +1 -0
- package/dist/plugins/coin/codegen.d.mts +16 -0
- package/dist/plugins/coin/codegen.mjs +21 -0
- package/dist/plugins/coin/codegen.mjs.map +1 -0
- package/dist/plugins/coin/discovery.d.mts +26 -0
- package/dist/plugins/coin/discovery.mjs +112 -0
- package/dist/plugins/coin/discovery.mjs.map +1 -0
- package/dist/plugins/coin/errors.d.mts +48 -0
- package/dist/plugins/coin/errors.mjs +13 -0
- package/dist/plugins/coin/errors.mjs.map +1 -0
- package/dist/plugins/coin/index.d.mts +95 -0
- package/dist/plugins/coin/index.mjs +172 -0
- package/dist/plugins/coin/index.mjs.map +1 -0
- package/dist/plugins/coin/metadata.d.mts +15 -0
- package/dist/plugins/coin/metadata.mjs +99 -0
- package/dist/plugins/coin/metadata.mjs.map +1 -0
- package/dist/plugins/coin/mint.d.mts +34 -0
- package/dist/plugins/coin/mint.mjs +164 -0
- package/dist/plugins/coin/mint.mjs.map +1 -0
- package/dist/plugins/coin/registry.d.mts +1 -0
- package/dist/plugins/coin/registry.mjs +37 -0
- package/dist/plugins/coin/registry.mjs.map +1 -0
- package/dist/plugins/coin/service.d.mts +47 -0
- package/dist/plugins/coin/service.mjs +51 -0
- package/dist/plugins/coin/service.mjs.map +1 -0
- package/dist/plugins/coin/snapshot.mjs +19 -0
- package/dist/plugins/coin/snapshot.mjs.map +1 -0
- package/dist/plugins/coin/type-strings.mjs +49 -0
- package/dist/plugins/coin/type-strings.mjs.map +1 -0
- package/dist/plugins/deepbook/codegen.d.mts +39 -0
- package/dist/plugins/deepbook/codegen.mjs +15 -0
- package/dist/plugins/deepbook/codegen.mjs.map +1 -0
- package/dist/plugins/deepbook/deploy.mjs +437 -0
- package/dist/plugins/deepbook/deploy.mjs.map +1 -0
- package/dist/plugins/deepbook/errors.d.mts +29 -0
- package/dist/plugins/deepbook/errors.mjs +26 -0
- package/dist/plugins/deepbook/errors.mjs.map +1 -0
- package/dist/plugins/deepbook/faucet-strategy.d.mts +8 -0
- package/dist/plugins/deepbook/faucet-strategy.mjs +81 -0
- package/dist/plugins/deepbook/faucet-strategy.mjs.map +1 -0
- package/dist/plugins/deepbook/index.d.mts +171 -0
- package/dist/plugins/deepbook/index.mjs +359 -0
- package/dist/plugins/deepbook/index.mjs.map +1 -0
- package/dist/plugins/deepbook/plugin-key.mjs +7 -0
- package/dist/plugins/deepbook/plugin-key.mjs.map +1 -0
- package/dist/plugins/deepbook/pyth/index.mjs +226 -0
- package/dist/plugins/deepbook/pyth/index.mjs.map +1 -0
- package/dist/plugins/deepbook/routable.mjs +21 -0
- package/dist/plugins/deepbook/routable.mjs.map +1 -0
- package/dist/plugins/deepbook/snapshot.mjs +49 -0
- package/dist/plugins/deepbook/snapshot.mjs.map +1 -0
- package/dist/plugins/deepbook/types.d.mts +125 -0
- package/dist/plugins/deepbook/types.mjs +12 -0
- package/dist/plugins/deepbook/types.mjs.map +1 -0
- package/dist/plugins/faucet/dispatcher.d.mts +9 -0
- package/dist/plugins/faucet/dispatcher.mjs +13 -0
- package/dist/plugins/faucet/dispatcher.mjs.map +1 -0
- package/dist/plugins/faucet/errors.d.mts +86 -0
- package/dist/plugins/faucet/errors.mjs +19 -0
- package/dist/plugins/faucet/errors.mjs.map +1 -0
- package/dist/plugins/faucet/http.mjs +127 -0
- package/dist/plugins/faucet/http.mjs.map +1 -0
- package/dist/plugins/faucet/index.d.mts +43 -0
- package/dist/plugins/faucet/index.mjs +42 -0
- package/dist/plugins/faucet/index.mjs.map +1 -0
- package/dist/plugins/faucet/service.d.mts +20 -0
- package/dist/plugins/faucet/strategies/sui-local.d.mts +23 -0
- package/dist/plugins/faucet/strategies/sui-local.mjs +29 -0
- package/dist/plugins/faucet/strategies/sui-local.mjs.map +1 -0
- package/dist/plugins/host-service/errors.d.mts +27 -0
- package/dist/plugins/host-service/errors.mjs +14 -0
- package/dist/plugins/host-service/errors.mjs.map +1 -0
- package/dist/plugins/host-service/index.d.mts +10 -0
- package/dist/plugins/host-service/index.mjs +48 -0
- package/dist/plugins/host-service/index.mjs.map +1 -0
- package/dist/plugins/host-service/routable.mjs +24 -0
- package/dist/plugins/host-service/routable.mjs.map +1 -0
- package/dist/plugins/host-service/service.d.mts +49 -0
- package/dist/plugins/host-service/service.mjs +375 -0
- package/dist/plugins/host-service/service.mjs.map +1 -0
- package/dist/plugins/package/build.d.mts +1 -0
- package/dist/plugins/package/build.mjs +24 -0
- package/dist/plugins/package/build.mjs.map +1 -0
- package/dist/plugins/package/codegen.d.mts +19 -0
- package/dist/plugins/package/codegen.mjs +41 -0
- package/dist/plugins/package/codegen.mjs.map +1 -0
- package/dist/plugins/package/dep-resolution.mjs +10 -0
- package/dist/plugins/package/dep-resolution.mjs.map +1 -0
- package/dist/plugins/package/errors.d.mts +34 -0
- package/dist/plugins/package/errors.mjs +13 -0
- package/dist/plugins/package/errors.mjs.map +1 -0
- package/dist/plugins/package/index.d.mts +109 -0
- package/dist/plugins/package/index.mjs +207 -0
- package/dist/plugins/package/index.mjs.map +1 -0
- package/dist/plugins/package/mode-known.mjs +41 -0
- package/dist/plugins/package/mode-known.mjs.map +1 -0
- package/dist/plugins/package/mode-local.d.mts +1 -0
- package/dist/plugins/package/mode-local.mjs +183 -0
- package/dist/plugins/package/mode-local.mjs.map +1 -0
- package/dist/plugins/package/publish-executor.mjs +202 -0
- package/dist/plugins/package/publish-executor.mjs.map +1 -0
- package/dist/plugins/package/publish-output.d.mts +28 -0
- package/dist/plugins/package/publish-output.mjs +45 -0
- package/dist/plugins/package/publish-output.mjs.map +1 -0
- package/dist/plugins/package/registry.d.mts +25 -0
- package/dist/plugins/package/registry.mjs +30 -0
- package/dist/plugins/package/registry.mjs.map +1 -0
- package/dist/plugins/package/service.mjs +20 -0
- package/dist/plugins/package/service.mjs.map +1 -0
- package/dist/plugins/package/snapshot.mjs +25 -0
- package/dist/plugins/package/snapshot.mjs.map +1 -0
- package/dist/plugins/postgres/codegen.mjs +42 -0
- package/dist/plugins/postgres/codegen.mjs.map +1 -0
- package/dist/plugins/postgres/connection.d.mts +33 -0
- package/dist/plugins/postgres/connection.mjs +19 -0
- package/dist/plugins/postgres/connection.mjs.map +1 -0
- package/dist/plugins/postgres/db-ensure.mjs +100 -0
- package/dist/plugins/postgres/db-ensure.mjs.map +1 -0
- package/dist/plugins/postgres/errors.d.mts +55 -0
- package/dist/plugins/postgres/errors.mjs +29 -0
- package/dist/plugins/postgres/errors.mjs.map +1 -0
- package/dist/plugins/postgres/index.d.mts +37 -0
- package/dist/plugins/postgres/index.mjs +75 -0
- package/dist/plugins/postgres/index.mjs.map +1 -0
- package/dist/plugins/postgres/routable.mjs +33 -0
- package/dist/plugins/postgres/routable.mjs.map +1 -0
- package/dist/plugins/postgres/service.d.mts +50 -0
- package/dist/plugins/postgres/service.mjs +145 -0
- package/dist/plugins/postgres/service.mjs.map +1 -0
- package/dist/plugins/postgres/snapshot.d.mts +1 -0
- package/dist/plugins/postgres/snapshot.mjs +32 -0
- package/dist/plugins/postgres/snapshot.mjs.map +1 -0
- package/dist/plugins/router-entrypoints.mjs +21 -0
- package/dist/plugins/router-entrypoints.mjs.map +1 -0
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs +59 -0
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs.map +1 -0
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs +132 -0
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs.map +1 -0
- package/dist/plugins/seal/codegen.d.mts +19 -0
- package/dist/plugins/seal/codegen.mjs +16 -0
- package/dist/plugins/seal/codegen.mjs.map +1 -0
- package/dist/plugins/seal/config-render.mjs +82 -0
- package/dist/plugins/seal/config-render.mjs.map +1 -0
- package/dist/plugins/seal/deploy.mjs +198 -0
- package/dist/plugins/seal/deploy.mjs.map +1 -0
- package/dist/plugins/seal/errors.d.mts +52 -0
- package/dist/plugins/seal/errors.mjs +19 -0
- package/dist/plugins/seal/errors.mjs.map +1 -0
- package/dist/plugins/seal/index.d.mts +161 -0
- package/dist/plugins/seal/index.mjs +235 -0
- package/dist/plugins/seal/index.mjs.map +1 -0
- package/dist/plugins/seal/key-manager.d.mts +22 -0
- package/dist/plugins/seal/key-manager.mjs +22 -0
- package/dist/plugins/seal/key-manager.mjs.map +1 -0
- package/dist/plugins/seal/key-server.mjs +175 -0
- package/dist/plugins/seal/key-server.mjs.map +1 -0
- package/dist/plugins/seal/keygen.mjs +96 -0
- package/dist/plugins/seal/keygen.mjs.map +1 -0
- package/dist/plugins/seal/mode/fork-known.d.mts +8 -0
- package/dist/plugins/seal/mode/fork-known.mjs +23 -0
- package/dist/plugins/seal/mode/fork-known.mjs.map +1 -0
- package/dist/plugins/seal/mode/live.d.mts +18 -0
- package/dist/plugins/seal/mode/live.mjs +64 -0
- package/dist/plugins/seal/mode/live.mjs.map +1 -0
- package/dist/plugins/seal/mode/local-keygen.mjs +180 -0
- package/dist/plugins/seal/mode/local-keygen.mjs.map +1 -0
- package/dist/plugins/seal/plugin-key.mjs +7 -0
- package/dist/plugins/seal/plugin-key.mjs.map +1 -0
- package/dist/plugins/seal/registry-publish.d.mts +43 -0
- package/dist/plugins/seal/registry-publish.mjs +9 -0
- package/dist/plugins/seal/registry-publish.mjs.map +1 -0
- package/dist/plugins/seal/routable.mjs +57 -0
- package/dist/plugins/seal/routable.mjs.map +1 -0
- package/dist/plugins/seal/service.mjs +17 -0
- package/dist/plugins/seal/service.mjs.map +1 -0
- package/dist/plugins/seal/snapshot.mjs +51 -0
- package/dist/plugins/seal/snapshot.mjs.map +1 -0
- package/dist/plugins/sui/auto-tick.mjs +45 -0
- package/dist/plugins/sui/auto-tick.mjs.map +1 -0
- package/dist/plugins/sui/chain-build-container.d.mts +1 -0
- package/dist/plugins/sui/chain-probe.d.mts +85 -0
- package/dist/plugins/sui/chain-probe.mjs +104 -0
- package/dist/plugins/sui/chain-probe.mjs.map +1 -0
- package/dist/plugins/sui/codegen.d.mts +14 -0
- package/dist/plugins/sui/codegen.mjs +26 -0
- package/dist/plugins/sui/codegen.mjs.map +1 -0
- package/dist/plugins/sui/errors.d.mts +74 -0
- package/dist/plugins/sui/errors.mjs +28 -0
- package/dist/plugins/sui/errors.mjs.map +1 -0
- package/dist/plugins/sui/fork-orchestration.mjs +24 -0
- package/dist/plugins/sui/fork-orchestration.mjs.map +1 -0
- package/dist/plugins/sui/fork-transaction.mjs +96 -0
- package/dist/plugins/sui/fork-transaction.mjs.map +1 -0
- package/dist/plugins/sui/index.d.mts +318 -0
- package/dist/plugins/sui/index.mjs +182 -0
- package/dist/plugins/sui/index.mjs.map +1 -0
- package/dist/plugins/sui/mode/external.mjs +60 -0
- package/dist/plugins/sui/mode/external.mjs.map +1 -0
- package/dist/plugins/sui/mode/fork.mjs +283 -0
- package/dist/plugins/sui/mode/fork.mjs.map +1 -0
- package/dist/plugins/sui/mode/live.mjs +103 -0
- package/dist/plugins/sui/mode/live.mjs.map +1 -0
- package/dist/plugins/sui/mode/local.mjs +293 -0
- package/dist/plugins/sui/mode/local.mjs.map +1 -0
- package/dist/plugins/sui/mode/shared-boot.mjs +254 -0
- package/dist/plugins/sui/mode/shared-boot.mjs.map +1 -0
- package/dist/plugins/sui/mode/shared.d.mts +103 -0
- package/dist/plugins/sui/mode/shared.mjs +12 -0
- package/dist/plugins/sui/mode/shared.mjs.map +1 -0
- package/dist/plugins/sui/mode/spec.d.mts +94 -0
- package/dist/plugins/sui/network-resolver.d.mts +23 -0
- package/dist/plugins/sui/routable.mjs +88 -0
- package/dist/plugins/sui/routable.mjs.map +1 -0
- package/dist/plugins/sui/seed-objects.d.mts +18 -0
- package/dist/plugins/sui/seed-objects.mjs +25 -0
- package/dist/plugins/sui/seed-objects.mjs.map +1 -0
- package/dist/plugins/sui/service.mjs +38 -0
- package/dist/plugins/sui/service.mjs.map +1 -0
- package/dist/plugins/sui/snapshot.mjs +53 -0
- package/dist/plugins/sui/snapshot.mjs.map +1 -0
- package/dist/plugins/wallet/codegen.d.mts +33 -0
- package/dist/plugins/wallet/codegen.mjs +34 -0
- package/dist/plugins/wallet/codegen.mjs.map +1 -0
- package/dist/plugins/wallet/errors.d.mts +66 -0
- package/dist/plugins/wallet/errors.mjs +16 -0
- package/dist/plugins/wallet/errors.mjs.map +1 -0
- package/dist/plugins/wallet/index.d.mts +63 -0
- package/dist/plugins/wallet/index.mjs +126 -0
- package/dist/plugins/wallet/index.mjs.map +1 -0
- package/dist/plugins/wallet/origin-policy.d.mts +1 -0
- package/dist/plugins/wallet/origin-policy.mjs +65 -0
- package/dist/plugins/wallet/origin-policy.mjs.map +1 -0
- package/dist/plugins/wallet/pairing.d.mts +11 -0
- package/dist/plugins/wallet/pairing.mjs +125 -0
- package/dist/plugins/wallet/pairing.mjs.map +1 -0
- package/dist/plugins/wallet/protocol.d.mts +1 -0
- package/dist/plugins/wallet/protocol.mjs +96 -0
- package/dist/plugins/wallet/protocol.mjs.map +1 -0
- package/dist/plugins/wallet/routable.mjs +32 -0
- package/dist/plugins/wallet/routable.mjs.map +1 -0
- package/dist/plugins/wallet/server.d.mts +12 -0
- package/dist/plugins/wallet/server.mjs +317 -0
- package/dist/plugins/wallet/server.mjs.map +1 -0
- package/dist/plugins/wallet/service.d.mts +68 -0
- package/dist/plugins/wallet/service.mjs +97 -0
- package/dist/plugins/wallet/service.mjs.map +1 -0
- package/dist/plugins/wallet/snapshot.d.mts +1 -0
- package/dist/plugins/wallet/snapshot.mjs +14 -0
- package/dist/plugins/wallet/snapshot.mjs.map +1 -0
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs +42 -0
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs.map +1 -0
- package/dist/plugins/walrus/codegen.d.mts +38 -0
- package/dist/plugins/walrus/codegen.mjs +34 -0
- package/dist/plugins/walrus/codegen.mjs.map +1 -0
- package/dist/plugins/walrus/deploy-paths.mjs +14 -0
- package/dist/plugins/walrus/deploy-paths.mjs.map +1 -0
- package/dist/plugins/walrus/deploy.d.mts +1 -0
- package/dist/plugins/walrus/deploy.mjs +224 -0
- package/dist/plugins/walrus/deploy.mjs.map +1 -0
- package/dist/plugins/walrus/errors.d.mts +38 -0
- package/dist/plugins/walrus/errors.mjs +26 -0
- package/dist/plugins/walrus/errors.mjs.map +1 -0
- package/dist/plugins/walrus/faucet-strategy.d.mts +12 -0
- package/dist/plugins/walrus/faucet-strategy.mjs +62 -0
- package/dist/plugins/walrus/faucet-strategy.mjs.map +1 -0
- package/dist/plugins/walrus/index.d.mts +177 -0
- package/dist/plugins/walrus/index.mjs +284 -0
- package/dist/plugins/walrus/index.mjs.map +1 -0
- package/dist/plugins/walrus/mode/known-deploy.d.mts +25 -0
- package/dist/plugins/walrus/mode/known-deploy.mjs +71 -0
- package/dist/plugins/walrus/mode/known-deploy.mjs.map +1 -0
- package/dist/plugins/walrus/mode/local-cluster.d.mts +34 -0
- package/dist/plugins/walrus/mode/local-cluster.mjs +153 -0
- package/dist/plugins/walrus/mode/local-cluster.mjs.map +1 -0
- package/dist/plugins/walrus/plugin-key.mjs +7 -0
- package/dist/plugins/walrus/plugin-key.mjs.map +1 -0
- package/dist/plugins/walrus/registry-publish.d.mts +24 -0
- package/dist/plugins/walrus/registry-publish.mjs +7 -0
- package/dist/plugins/walrus/registry-publish.mjs.map +1 -0
- package/dist/plugins/walrus/routable.mjs +99 -0
- package/dist/plugins/walrus/routable.mjs.map +1 -0
- package/dist/plugins/walrus/service.mjs +20 -0
- package/dist/plugins/walrus/service.mjs.map +1 -0
- package/dist/plugins/walrus/snapshot.mjs +53 -0
- package/dist/plugins/walrus/snapshot.mjs.map +1 -0
- package/dist/plugins/walrus/storage-nodes.d.mts +15 -0
- package/dist/plugins/walrus/storage-nodes.mjs +154 -0
- package/dist/plugins/walrus/storage-nodes.mjs.map +1 -0
- package/dist/plugins/walrus/wal-swap.d.mts +2 -0
- package/dist/plugins/walrus/wal-swap.mjs +58 -0
- package/dist/plugins/walrus/wal-swap.mjs.map +1 -0
- package/dist/primitives/artifact-publisher.d.mts +12 -0
- package/dist/primitives/cache.d.mts +1 -0
- package/dist/runtime/built-in-plugin-layers.mjs +49 -0
- package/dist/runtime/built-in-plugin-layers.mjs.map +1 -0
- package/dist/runtime/docker/client.d.mts +2 -0
- package/dist/runtime/docker/client.mjs +54 -0
- package/dist/runtime/docker/client.mjs.map +1 -0
- package/dist/runtime/docker/container.d.mts +1 -0
- package/dist/runtime/docker/container.mjs +562 -0
- package/dist/runtime/docker/container.mjs.map +1 -0
- package/dist/runtime/docker/errors.d.mts +1 -0
- package/dist/runtime/docker/errors.mjs +187 -0
- package/dist/runtime/docker/errors.mjs.map +1 -0
- package/dist/runtime/docker/exec.d.mts +1 -0
- package/dist/runtime/docker/exec.mjs +63 -0
- package/dist/runtime/docker/exec.mjs.map +1 -0
- package/dist/runtime/docker/image.d.mts +1 -0
- package/dist/runtime/docker/image.mjs +278 -0
- package/dist/runtime/docker/image.mjs.map +1 -0
- package/dist/runtime/docker/index.d.mts +1 -0
- package/dist/runtime/docker/inventory.d.mts +1 -0
- package/dist/runtime/docker/inventory.mjs +167 -0
- package/dist/runtime/docker/inventory.mjs.map +1 -0
- package/dist/runtime/docker/labels.d.mts +1 -0
- package/dist/runtime/docker/labels.mjs +97 -0
- package/dist/runtime/docker/labels.mjs.map +1 -0
- package/dist/runtime/docker/logs.d.mts +1 -0
- package/dist/runtime/docker/logs.mjs +34 -0
- package/dist/runtime/docker/logs.mjs.map +1 -0
- package/dist/runtime/docker/network.d.mts +1 -0
- package/dist/runtime/docker/network.mjs +168 -0
- package/dist/runtime/docker/network.mjs.map +1 -0
- package/dist/runtime/docker/service.d.mts +9 -0
- package/dist/runtime/docker/service.mjs +266 -0
- package/dist/runtime/docker/service.mjs.map +1 -0
- package/dist/runtime/docker/sweep.d.mts +1 -0
- package/dist/runtime/docker/sweep.mjs +220 -0
- package/dist/runtime/docker/sweep.mjs.map +1 -0
- package/dist/runtime/docker/volume.d.mts +1 -0
- package/dist/runtime/docker/volume.mjs +24 -0
- package/dist/runtime/docker/volume.mjs.map +1 -0
- package/dist/runtime/docker/wrap.d.mts +1 -0
- package/dist/runtime/docker/wrap.mjs +131 -0
- package/dist/runtime/docker/wrap.mjs.map +1 -0
- package/dist/substrate/brand.d.mts +24 -0
- package/dist/substrate/brand.mjs +14 -0
- package/dist/substrate/brand.mjs.map +1 -0
- package/dist/substrate/cross-process.d.mts +1 -0
- package/dist/substrate/cross-process.mjs +28 -0
- package/dist/substrate/cross-process.mjs.map +1 -0
- package/dist/substrate/events.d.mts +117 -0
- package/dist/substrate/identity.d.mts +13 -0
- package/dist/substrate/lifecycle.d.mts +12 -0
- package/dist/substrate/manifest.d.mts +39 -0
- package/dist/substrate/manifest.mjs +33 -0
- package/dist/substrate/manifest.mjs.map +1 -0
- package/dist/substrate/network.d.mts +34 -0
- package/dist/substrate/options.d.mts +23 -0
- package/dist/substrate/plugin.d.mts +101 -0
- package/dist/substrate/plugin.mjs +61 -0
- package/dist/substrate/plugin.mjs.map +1 -0
- package/dist/substrate/projection.d.mts +100 -0
- package/dist/substrate/runtime/artifact-publisher/index.mjs +76 -0
- package/dist/substrate/runtime/artifact-publisher/index.mjs.map +1 -0
- package/dist/substrate/runtime/atomic-write.mjs +106 -0
- package/dist/substrate/runtime/atomic-write.mjs.map +1 -0
- package/dist/substrate/runtime/cache/index.d.mts +1 -0
- package/dist/substrate/runtime/cache/schema.d.mts +1 -0
- package/dist/substrate/runtime/cache/schema.mjs +22 -0
- package/dist/substrate/runtime/cache/schema.mjs.map +1 -0
- package/dist/substrate/runtime/cache/service.d.mts +1 -0
- package/dist/substrate/runtime/cache/service.mjs +89 -0
- package/dist/substrate/runtime/cache/service.mjs.map +1 -0
- package/dist/substrate/runtime/capability-sinks/index.d.mts +1 -0
- package/dist/substrate/runtime/capability-sinks/layer.d.mts +1 -0
- package/dist/substrate/runtime/capability-sinks/layer.mjs +31 -0
- package/dist/substrate/runtime/capability-sinks/layer.mjs.map +1 -0
- package/dist/substrate/runtime/capability-sinks/service.d.mts +36 -0
- package/dist/substrate/runtime/capability-sinks/service.mjs +74 -0
- package/dist/substrate/runtime/capability-sinks/service.mjs.map +1 -0
- package/dist/substrate/runtime/config-validation.d.mts +38 -0
- package/dist/substrate/runtime/config-validation.mjs +137 -0
- package/dist/substrate/runtime/config-validation.mjs.map +1 -0
- package/dist/substrate/runtime/context-helpers.mjs +32 -0
- package/dist/substrate/runtime/context-helpers.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs +128 -0
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs +136 -0
- package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs +49 -0
- package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs +9 -0
- package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/liveness.mjs +119 -0
- package/dist/substrate/runtime/cross-process/liveness.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/roster.mjs +275 -0
- package/dist/substrate/runtime/cross-process/roster.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.d.mts +1 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs +117 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/stack-lock.d.mts +1 -0
- package/dist/substrate/runtime/cross-process/stack-lock.mjs +142 -0
- package/dist/substrate/runtime/cross-process/stack-lock.mjs.map +1 -0
- package/dist/substrate/runtime/current-plugin.mjs +15 -0
- package/dist/substrate/runtime/current-plugin.mjs.map +1 -0
- package/dist/substrate/runtime/errors.d.mts +1 -0
- package/dist/substrate/runtime/errors.mjs +76 -0
- package/dist/substrate/runtime/errors.mjs.map +1 -0
- package/dist/substrate/runtime/host-tree-tar/index.mjs +364 -0
- package/dist/substrate/runtime/host-tree-tar/index.mjs.map +1 -0
- package/dist/substrate/runtime/http-probe.d.mts +35 -0
- package/dist/substrate/runtime/http-probe.mjs +65 -0
- package/dist/substrate/runtime/http-probe.mjs.map +1 -0
- package/dist/substrate/runtime/lease-broker/index.d.mts +1 -0
- package/dist/substrate/runtime/lease-broker/service.d.mts +64 -0
- package/dist/substrate/runtime/lease-broker/service.mjs +155 -0
- package/dist/substrate/runtime/lease-broker/service.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/dep-graph.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs +138 -0
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/index.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs +31 -0
- package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/plugin-registry.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs +133 -0
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/ready-gate.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/ready-gate.mjs +34 -0
- package/dist/substrate/runtime/lifecycle/ready-gate.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/selective-restart.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/selective-restart.mjs +43 -0
- package/dist/substrate/runtime/lifecycle/selective-restart.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/signals.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/signals.mjs +64 -0
- package/dist/substrate/runtime/lifecycle/signals.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/state-machine.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/state-machine.mjs +38 -0
- package/dist/substrate/runtime/lifecycle/state-machine.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/watch-attribution.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/watch-attribution.mjs +27 -0
- package/dist/substrate/runtime/lifecycle/watch-attribution.mjs.map +1 -0
- package/dist/substrate/runtime/managed-container.d.mts +30 -0
- package/dist/substrate/runtime/managed-container.mjs +32 -0
- package/dist/substrate/runtime/managed-container.mjs.map +1 -0
- package/dist/substrate/runtime/manifest/manifest.mjs +73 -0
- package/dist/substrate/runtime/manifest/manifest.mjs.map +1 -0
- package/dist/substrate/runtime/mode-errors.d.mts +36 -0
- package/dist/substrate/runtime/observability/cascade-formatter.d.mts +1 -0
- package/dist/substrate/runtime/observability/cascade-formatter.mjs +135 -0
- package/dist/substrate/runtime/observability/cascade-formatter.mjs.map +1 -0
- package/dist/substrate/runtime/observability/formatter-registry.d.mts +1 -0
- package/dist/substrate/runtime/observability/formatter-registry.mjs +65 -0
- package/dist/substrate/runtime/observability/formatter-registry.mjs.map +1 -0
- package/dist/substrate/runtime/observability/index.d.mts +3 -0
- package/dist/substrate/runtime/observability/logger.d.mts +58 -0
- package/dist/substrate/runtime/observability/logger.mjs +89 -0
- package/dist/substrate/runtime/observability/logger.mjs.map +1 -0
- package/dist/substrate/runtime/observability/pretty-error.d.mts +1 -0
- package/dist/substrate/runtime/observability/pretty-error.mjs +119 -0
- package/dist/substrate/runtime/observability/pretty-error.mjs.map +1 -0
- package/dist/substrate/runtime/observability/process-lines.d.mts +31 -0
- package/dist/substrate/runtime/observability/process-lines.mjs +40 -0
- package/dist/substrate/runtime/observability/process-lines.mjs.map +1 -0
- package/dist/substrate/runtime/observability/redaction.d.mts +28 -0
- package/dist/substrate/runtime/observability/redaction.mjs +45 -0
- package/dist/substrate/runtime/observability/redaction.mjs.map +1 -0
- package/dist/substrate/runtime/observability/spans.d.mts +1 -0
- package/dist/substrate/runtime/observability/spans.mjs +87 -0
- package/dist/substrate/runtime/observability/spans.mjs.map +1 -0
- package/dist/substrate/runtime/observability/subprocess-capture.d.mts +2 -0
- package/dist/substrate/runtime/observability/subprocess-capture.mjs +82 -0
- package/dist/substrate/runtime/observability/subprocess-capture.mjs.map +1 -0
- package/dist/substrate/runtime/paths.d.mts +17 -0
- package/dist/substrate/runtime/paths.mjs +61 -0
- package/dist/substrate/runtime/paths.mjs.map +1 -0
- package/dist/substrate/runtime/port-broker/index.d.mts +1 -0
- package/dist/substrate/runtime/port-broker/service.d.mts +1 -0
- package/dist/substrate/runtime/port-broker/service.mjs +319 -0
- package/dist/substrate/runtime/port-broker/service.mjs.map +1 -0
- package/dist/substrate/runtime/post-acquire-tasks.d.mts +1 -0
- package/dist/substrate/runtime/post-acquire-tasks.mjs +34 -0
- package/dist/substrate/runtime/post-acquire-tasks.mjs.map +1 -0
- package/dist/substrate/runtime/probes.d.mts +51 -0
- package/dist/substrate/runtime/probes.mjs +84 -0
- package/dist/substrate/runtime/probes.mjs.map +1 -0
- package/dist/substrate/runtime/process-supervisor.d.mts +57 -0
- package/dist/substrate/runtime/process-supervisor.mjs +73 -0
- package/dist/substrate/runtime/process-supervisor.mjs.map +1 -0
- package/dist/substrate/runtime/projection/operational-endpoints.mjs +44 -0
- package/dist/substrate/runtime/projection/operational-endpoints.mjs.map +1 -0
- package/dist/substrate/runtime/projection/persisted.mjs +195 -0
- package/dist/substrate/runtime/projection/persisted.mjs.map +1 -0
- package/dist/substrate/runtime/projection/state-ref.mjs +48 -0
- package/dist/substrate/runtime/projection/state-ref.mjs.map +1 -0
- package/dist/substrate/runtime/projection/update.mjs +200 -0
- package/dist/substrate/runtime/projection/update.mjs.map +1 -0
- package/dist/substrate/runtime/retry-policy.d.mts +18 -0
- package/dist/substrate/runtime/retry-policy.mjs +16 -0
- package/dist/substrate/runtime/retry-policy.mjs.map +1 -0
- package/dist/substrate/runtime/run.mjs +86 -0
- package/dist/substrate/runtime/run.mjs.map +1 -0
- package/dist/substrate/runtime/runtime-decode.d.mts +32 -0
- package/dist/substrate/runtime/runtime-decode.mjs +53 -0
- package/dist/substrate/runtime/runtime-decode.mjs.map +1 -0
- package/dist/substrate/runtime/scoped-http-server.mjs +36 -0
- package/dist/substrate/runtime/scoped-http-server.mjs.map +1 -0
- package/dist/substrate/runtime/scoped-ref-map/service.mjs +83 -0
- package/dist/substrate/runtime/scoped-ref-map/service.mjs.map +1 -0
- package/dist/substrate/runtime/stage-and-swap/index.d.mts +1 -0
- package/dist/substrate/runtime/stage-and-swap/index.mjs +131 -0
- package/dist/substrate/runtime/stage-and-swap/index.mjs.map +1 -0
- package/dist/substrate/runtime/state-store/schema.mjs +36 -0
- package/dist/substrate/runtime/state-store/schema.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs +22 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs +30 -0
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/index.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/service.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/service.mjs +67 -0
- package/dist/substrate/runtime/strategy-registry/service.mjs.map +1 -0
- package/dist/substrate/runtime/sui-execute/index.d.mts +11 -0
- package/dist/substrate/runtime/sui-execute/index.mjs +144 -0
- package/dist/substrate/runtime/sui-execute/index.mjs.map +1 -0
- package/dist/substrate/runtime/sui-move-build/index.d.mts +1 -0
- package/dist/substrate/runtime/sui-move-build/index.mjs +283 -0
- package/dist/substrate/runtime/sui-move-build/index.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor.d.mts +1 -0
- package/dist/substrate/runtime/supervisor.mjs +831 -0
- package/dist/substrate/runtime/supervisor.mjs.map +1 -0
- package/dist/surfaces/cli/command-tree.mjs +276 -0
- package/dist/surfaces/cli/command-tree.mjs.map +1 -0
- package/dist/surfaces/cli/commands/config.mjs +31 -0
- package/dist/surfaces/cli/commands/config.mjs.map +1 -0
- package/dist/surfaces/cli/commands/confirm-node.mjs +26 -0
- package/dist/surfaces/cli/commands/confirm-node.mjs.map +1 -0
- package/dist/surfaces/cli/commands/confirm.mjs +26 -0
- package/dist/surfaces/cli/commands/confirm.mjs.map +1 -0
- package/dist/surfaces/cli/commands/doctor-probes.mjs +452 -0
- package/dist/surfaces/cli/commands/doctor-probes.mjs.map +1 -0
- package/dist/surfaces/cli/commands/doctor.mjs +38 -0
- package/dist/surfaces/cli/commands/doctor.mjs.map +1 -0
- package/dist/surfaces/cli/commands/prune-picker.mjs +347 -0
- package/dist/surfaces/cli/commands/prune-picker.mjs.map +1 -0
- package/dist/surfaces/cli/commands/prune.mjs +178 -0
- package/dist/surfaces/cli/commands/prune.mjs.map +1 -0
- package/dist/surfaces/cli/commands/snapshot.mjs +141 -0
- package/dist/surfaces/cli/commands/snapshot.mjs.map +1 -0
- package/dist/surfaces/cli/commands/status.mjs +95 -0
- package/dist/surfaces/cli/commands/status.mjs.map +1 -0
- package/dist/surfaces/cli/commands/supervisor-presence.mjs +33 -0
- package/dist/surfaces/cli/commands/supervisor-presence.mjs.map +1 -0
- package/dist/surfaces/cli/commands/wipe.mjs +28 -0
- package/dist/surfaces/cli/commands/wipe.mjs.map +1 -0
- package/dist/surfaces/cli/envelope.mjs +43 -0
- package/dist/surfaces/cli/envelope.mjs.map +1 -0
- package/dist/surfaces/cli/errors.mjs +110 -0
- package/dist/surfaces/cli/errors.mjs.map +1 -0
- package/dist/surfaces/cli/flags.mjs +56 -0
- package/dist/surfaces/cli/flags.mjs.map +1 -0
- package/dist/surfaces/cli/index.mjs +418 -0
- package/dist/surfaces/cli/index.mjs.map +1 -0
- package/dist/surfaces/cli/output.mjs +115 -0
- package/dist/surfaces/cli/output.mjs.map +1 -0
- package/dist/surfaces/cli/sysexits.mjs +139 -0
- package/dist/surfaces/cli/sysexits.mjs.map +1 -0
- package/dist/surfaces/tui/app.mjs +104 -0
- package/dist/surfaces/tui/app.mjs.map +1 -0
- package/dist/surfaces/tui/dashboard.mjs +261 -0
- package/dist/surfaces/tui/dashboard.mjs.map +1 -0
- package/dist/surfaces/tui/display-derivation.mjs +395 -0
- package/dist/surfaces/tui/display-derivation.mjs.map +1 -0
- package/dist/surfaces/tui/errors.mjs +11 -0
- package/dist/surfaces/tui/errors.mjs.map +1 -0
- package/dist/surfaces/tui/event-log.mjs +155 -0
- package/dist/surfaces/tui/event-log.mjs.map +1 -0
- package/dist/surfaces/tui/heartbeat.mjs +33 -0
- package/dist/surfaces/tui/heartbeat.mjs.map +1 -0
- package/dist/surfaces/tui/index.mjs +50 -0
- package/dist/surfaces/tui/index.mjs.map +1 -0
- package/dist/surfaces/tui/input.mjs +104 -0
- package/dist/surfaces/tui/input.mjs.map +1 -0
- package/dist/surfaces/tui/mode-detect.mjs +32 -0
- package/dist/surfaces/tui/mode-detect.mjs.map +1 -0
- package/dist/surfaces/tui/mount-ink.mjs +31 -0
- package/dist/surfaces/tui/mount-ink.mjs.map +1 -0
- package/dist/surfaces/tui/plain-renderer.mjs +170 -0
- package/dist/surfaces/tui/plain-renderer.mjs.map +1 -0
- package/dist/surfaces/tui/resource-table.mjs +507 -0
- package/dist/surfaces/tui/resource-table.mjs.map +1 -0
- package/images/_shared/signal-forward.sh +77 -0
- package/images/postgres/Dockerfile +32 -0
- package/images/seal/Dockerfile +68 -0
- package/images/seal/entrypoint.sh +65 -0
- package/images/sui/Dockerfile +73 -0
- package/images/sui/entrypoint.sh +244 -0
- package/images/sui-fork/Dockerfile +53 -0
- package/images/sui-fork/entrypoint.sh +51 -0
- package/images/walrus/Dockerfile +122 -0
- package/images/walrus/deploy-walrus.sh +305 -0
- package/images/walrus/run-walrus.sh +53 -0
- package/package.json +94 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# syntax=docker/dockerfile:1
|
|
2
|
+
# devstack-rewrite seal-key-server image. Vendored Dockerfile fed to
|
|
3
|
+
# the `dockerImage({build})` runner via `ContainerRuntime.ensureImage`
|
|
4
|
+
# (content-addressed builds — same Dockerfile + build args produce
|
|
5
|
+
# the same tag).
|
|
6
|
+
#
|
|
7
|
+
# Pulls the published `seal-cli` and `key-server` binaries from the
|
|
8
|
+
# seal GitHub release — no Rust compile (the seal release workflow
|
|
9
|
+
# already builds and uploads platform binaries). First build is ~30 s
|
|
10
|
+
# vs. the ~5–8 min cargo path the old devstack started with.
|
|
11
|
+
#
|
|
12
|
+
# The move/seal package is NOT staged inside the image: the seal
|
|
13
|
+
# plugin's local-keygen mode fetches the Move source out-of-band via
|
|
14
|
+
# the lifted `source-fetch` sibling and publishes via the SDK, so the
|
|
15
|
+
# in-image staging would be dead weight here.
|
|
16
|
+
#
|
|
17
|
+
# Multi-arch: TARGETARCH (arm64 / amd64) → PLATFORM
|
|
18
|
+
# (linux-aarch64 / linux-x86_64) — the seal release renames `seal-cli`
|
|
19
|
+
# to `seal-${platform}` for the asset name; we rename it back inside
|
|
20
|
+
# the image so the `seal-cli` invocation works unchanged.
|
|
21
|
+
|
|
22
|
+
FROM ubuntu:24.04 AS bin-fetch
|
|
23
|
+
ARG SEAL_VERSION
|
|
24
|
+
ARG TARGETARCH
|
|
25
|
+
|
|
26
|
+
RUN apt-get update \
|
|
27
|
+
&& apt-get install -y --no-install-recommends ca-certificates curl \
|
|
28
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
29
|
+
|
|
30
|
+
RUN set -eux; \
|
|
31
|
+
case "$TARGETARCH" in \
|
|
32
|
+
arm64) PLATFORM=linux-aarch64 ;; \
|
|
33
|
+
amd64) PLATFORM=linux-x86_64 ;; \
|
|
34
|
+
*) echo "unsupported TARGETARCH=$TARGETARCH" >&2; exit 1 ;; \
|
|
35
|
+
esac; \
|
|
36
|
+
base="https://github.com/MystenLabs/seal/releases/download/${SEAL_VERSION}"; \
|
|
37
|
+
curl -fsSL "$base/seal-${PLATFORM}" -o /tmp/seal-cli; \
|
|
38
|
+
curl -fsSL "$base/key-server-${PLATFORM}" -o /tmp/key-server; \
|
|
39
|
+
chmod +x /tmp/seal-cli /tmp/key-server
|
|
40
|
+
|
|
41
|
+
# Runtime image. debian:bookworm-slim + libpq5 — the `key-server`
|
|
42
|
+
# binary links against postgres client libs even when we run it
|
|
43
|
+
# stand-alone. `curl` is the ready-probe shim (the plugin's
|
|
44
|
+
# `/health` HTTP probe in key-server.ts shells out to curl inside
|
|
45
|
+
# the container).
|
|
46
|
+
FROM debian:bookworm-slim AS runtime
|
|
47
|
+
|
|
48
|
+
EXPOSE 2024 9184
|
|
49
|
+
|
|
50
|
+
RUN apt-get update \
|
|
51
|
+
&& apt-get install -y --no-install-recommends \
|
|
52
|
+
ca-certificates curl libpq5 \
|
|
53
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
54
|
+
|
|
55
|
+
COPY --from=bin-fetch /tmp/seal-cli /usr/local/bin/seal-cli
|
|
56
|
+
COPY --from=bin-fetch /tmp/key-server /usr/local/bin/key-server
|
|
57
|
+
COPY _shared/signal-forward.sh /usr/local/lib/devstack/signal-forward.sh
|
|
58
|
+
COPY seal/entrypoint.sh /usr/local/bin/devstack-seal-entrypoint.sh
|
|
59
|
+
RUN chmod +x /usr/local/bin/devstack-seal-entrypoint.sh
|
|
60
|
+
|
|
61
|
+
# Default to running the key-server through a shell wrapper that
|
|
62
|
+
# traps docker's SIGTERM and forwards SIGTERM to the key-server as a
|
|
63
|
+
# non-PID-1 child. See `entrypoint.sh` for the rationale (workaround
|
|
64
|
+
# for seal's missing tokio signal handler — same shape as the
|
|
65
|
+
# images/sui entrypoint). The keygen step overrides the entrypoint
|
|
66
|
+
# via `runOneShot({ entrypoint: 'seal-cli', argv: ['genkey'] })` so
|
|
67
|
+
# this wrapper only ever wraps the long-running key-server container.
|
|
68
|
+
ENTRYPOINT ["/usr/local/bin/devstack-seal-entrypoint.sh"]
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# devstack-rewrite seal-key-server entrypoint wrapper.
|
|
3
|
+
#
|
|
4
|
+
# Same workaround as sui-localnet for the same upstream-bug class:
|
|
5
|
+
# seal's `key-server` binary (`seal/crates/key-server/src/server.rs`'s
|
|
6
|
+
# `#[tokio::main] async fn main`) installs NO signal handler — `main`
|
|
7
|
+
# is just `tokio::select! { server_result = axum::serve(...), monitor_result = monitor_handle }`,
|
|
8
|
+
# with no `tokio::signal::ctrl_c()` polled on either branch. So running
|
|
9
|
+
# the binary as PID 1 in the container, `docker stop`'s SIGTERM is
|
|
10
|
+
# ignored (PID 1 default-ignores undelivered signals) and the grace
|
|
11
|
+
# timeout always expires → SIGKILL → exit 137 → the next `up` cycle
|
|
12
|
+
# trips "UNCLEAN PRIOR SHUTDOWN" with a forced container recreate
|
|
13
|
+
# (seal's runc-start fails because the prior shutdown left task state
|
|
14
|
+
# behind).
|
|
15
|
+
#
|
|
16
|
+
# Workaround: run key-server as a non-PID-1 CHILD of this shell. The
|
|
17
|
+
# shell traps docker's SIGTERM and forwards SIGTERM to the child.
|
|
18
|
+
# Non-interactive POSIX shells may start background children with
|
|
19
|
+
# SIGINT ignored, so SIGINT is not reliable for a binary with no
|
|
20
|
+
# signal handler; SIGTERM's default action still terminates the
|
|
21
|
+
# child cleanly enough for Seal's in-memory runtime state. The next
|
|
22
|
+
# start reads MASTER_KEY from env again and recomputes everything.
|
|
23
|
+
#
|
|
24
|
+
# Master-key staging: the plugin bind-mounts a 0o600 env-file
|
|
25
|
+
# containing `MASTER_KEY=<hex>`, then passes its container path via
|
|
26
|
+
# MASTER_KEY_ENVFILE (defaulting to /etc/seal/master-key.env). We
|
|
27
|
+
# source it BEFORE exec'ing the key-server so the secret lands in the
|
|
28
|
+
# child's environment, NEVER in `docker inspect` / host process env.
|
|
29
|
+
# Distilled-doc invariant #3.
|
|
30
|
+
#
|
|
31
|
+
# The keygen path (`runOneShot({ entrypoint: 'seal-cli', argv: ['genkey'] })`)
|
|
32
|
+
# bypasses this entrypoint entirely via the runtime's --entrypoint
|
|
33
|
+
# override, so the wrapping only affects the long-running key-server
|
|
34
|
+
# container.
|
|
35
|
+
#
|
|
36
|
+
# The trap + wait-loop lives in `/usr/local/lib/devstack/signal-forward.sh`,
|
|
37
|
+
# vendored from `images/_shared/signal-forward.sh` at build time —
|
|
38
|
+
# the sui entrypoint sources the same file.
|
|
39
|
+
|
|
40
|
+
set -eu
|
|
41
|
+
|
|
42
|
+
# shellcheck disable=SC1091
|
|
43
|
+
. /usr/local/lib/devstack/signal-forward.sh
|
|
44
|
+
|
|
45
|
+
# Source the master-key env-file if it's present at the well-known
|
|
46
|
+
# bind-mount path. `set -a` exports every VAR=value pair to the child
|
|
47
|
+
# process environment. Idempotent: if the file is absent, we fall
|
|
48
|
+
# through with no error (the binary will fail with its own typed
|
|
49
|
+
# message, which is the right level of detail for callers).
|
|
50
|
+
MASTER_KEY_ENVFILE_PATH="${MASTER_KEY_ENVFILE:-/etc/seal/master-key.env}"
|
|
51
|
+
if [ -r "$MASTER_KEY_ENVFILE_PATH" ]; then
|
|
52
|
+
set -a
|
|
53
|
+
# shellcheck disable=SC1091
|
|
54
|
+
. "$MASTER_KEY_ENVFILE_PATH"
|
|
55
|
+
set +a
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
/usr/local/bin/key-server "$@" &
|
|
59
|
+
KS_PID=$!
|
|
60
|
+
register_signal_forward "$KS_PID" TERM
|
|
61
|
+
|
|
62
|
+
KS_EXIT=0
|
|
63
|
+
wait_for_child "$KS_PID" || KS_EXIT=$?
|
|
64
|
+
|
|
65
|
+
exit "$KS_EXIT"
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Sui validator image for the rewrite's local-mode boot. Vendored
|
|
2
|
+
# Dockerfile fed to `ContainerRuntime.ensureImage` (content-addressed
|
|
3
|
+
# builds — same Dockerfile + build args produce the same image digest).
|
|
4
|
+
#
|
|
5
|
+
# Multi-arch: the upstream `mysten/sui-tools` image ships amd64 only,
|
|
6
|
+
# so on Apple Silicon it runs under Rosetta and `sui start` genesis
|
|
7
|
+
# stretches from ~10 s to several minutes. We download the matching
|
|
8
|
+
# `ubuntu-aarch64` / `ubuntu-x86_64` release tarball at build time
|
|
9
|
+
# instead so the resulting image runs natively on the host.
|
|
10
|
+
#
|
|
11
|
+
# `ubuntu:24.04` — the Sui release tarballs are linked against
|
|
12
|
+
# glibc 2.38+; debian:bookworm (glibc 2.36) fails at runtime with a
|
|
13
|
+
# GLIBC_2.38-missing error.
|
|
14
|
+
|
|
15
|
+
FROM ubuntu:24.04
|
|
16
|
+
|
|
17
|
+
ARG SUI_VERSION
|
|
18
|
+
ARG TARGETARCH
|
|
19
|
+
|
|
20
|
+
RUN apt-get update \
|
|
21
|
+
&& apt-get install -y --no-install-recommends \
|
|
22
|
+
ca-certificates curl gawk git postgresql \
|
|
23
|
+
&& PG_BIN_DIR="$(dirname "$(find /usr/lib/postgresql -name initdb -type f | sort | tail -n 1)")" \
|
|
24
|
+
&& test -x "$PG_BIN_DIR/initdb" \
|
|
25
|
+
&& ln -sf "$PG_BIN_DIR/initdb" /usr/local/bin/initdb \
|
|
26
|
+
&& ln -sf "$PG_BIN_DIR/pg_ctl" /usr/local/bin/pg_ctl \
|
|
27
|
+
&& ln -sf "$PG_BIN_DIR/postgres" /usr/local/bin/postgres \
|
|
28
|
+
&& useradd --create-home --shell /bin/sh devstack-sui \
|
|
29
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
30
|
+
|
|
31
|
+
# Why `gawk` + `git`:
|
|
32
|
+
# - `gawk` — the in-container Move.lock scrub uses `gawk -i inplace`
|
|
33
|
+
# (the `-i` inplace mode is gawk-only; mawk doesn't support it).
|
|
34
|
+
# Without this, the package plugin's `containerScrubShellScript`
|
|
35
|
+
# fails inside `sui move build` with `find: 'gawk': No such
|
|
36
|
+
# file or directory` (host scrub may have already run, but the
|
|
37
|
+
# in-container path still invokes gawk).
|
|
38
|
+
# - `git` — Move's dep resolver invokes `git fetch` against vendored
|
|
39
|
+
# `[dependencies]` blocks (`{ git = "..." }`). Without git on PATH,
|
|
40
|
+
# `sui move build` aborts with a dep-fetch error before reaching
|
|
41
|
+
# the bytecode pass.
|
|
42
|
+
# - `postgresql` — `sui start --with-graphql` initializes an embedded
|
|
43
|
+
# local indexer database and shells out to `initdb`/`postgres`.
|
|
44
|
+
|
|
45
|
+
# Sui release-tarball fetch. The TARGETARCH branch picks the
|
|
46
|
+
# native-architecture asset name and unpacks `sui` (and siblings,
|
|
47
|
+
# including `sui-faucet`) into `/usr/local/bin/`.
|
|
48
|
+
RUN set -eux; \
|
|
49
|
+
case "$TARGETARCH" in \
|
|
50
|
+
arm64) SUI_PLATFORM=ubuntu-aarch64 ;; \
|
|
51
|
+
amd64) SUI_PLATFORM=ubuntu-x86_64 ;; \
|
|
52
|
+
*) echo "unsupported TARGETARCH=$TARGETARCH" >&2; exit 1 ;; \
|
|
53
|
+
esac; \
|
|
54
|
+
url="https://github.com/MystenLabs/sui/releases/download/${SUI_VERSION}/sui-${SUI_VERSION}-${SUI_PLATFORM}.tgz"; \
|
|
55
|
+
curl -fsSL "$url" -o /tmp/sui.tgz; \
|
|
56
|
+
mkdir -p /tmp/sui-unpack; \
|
|
57
|
+
tar -xzf /tmp/sui.tgz -C /tmp/sui-unpack; \
|
|
58
|
+
find /tmp/sui-unpack -maxdepth 2 -type f -executable -exec mv {} /usr/local/bin/ \; ; \
|
|
59
|
+
rm -rf /tmp/sui.tgz /tmp/sui-unpack; \
|
|
60
|
+
sui --version
|
|
61
|
+
|
|
62
|
+
COPY _shared/signal-forward.sh /usr/local/lib/devstack/signal-forward.sh
|
|
63
|
+
COPY sui/entrypoint.sh /usr/local/bin/devstack-entrypoint.sh
|
|
64
|
+
RUN chmod +x /usr/local/bin/devstack-entrypoint.sh
|
|
65
|
+
|
|
66
|
+
ENV RUST_LOG=info,sui=info
|
|
67
|
+
|
|
68
|
+
# RPC (9000), faucet (9123), GraphQL consistent-store helper (9124),
|
|
69
|
+
# and GraphQL HTTP (9125). Local-mode boot probes the public surfaces.
|
|
70
|
+
EXPOSE 9000 9123 9124 9125
|
|
71
|
+
|
|
72
|
+
ENTRYPOINT ["/usr/local/bin/devstack-entrypoint.sh"]
|
|
73
|
+
CMD ["start", "--with-faucet=0.0.0.0:9123", "--with-graphql=0.0.0.0:9125"]
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# devstack-rewrite sui-localnet entrypoint.
|
|
3
|
+
#
|
|
4
|
+
# `sui start --force-regenesis` is ephemeral (in-memory genesis). To
|
|
5
|
+
# preserve chain state across `docker stop` + `docker start`, we
|
|
6
|
+
# bootstrap once with `sui genesis -f --with-faucet` (writes a
|
|
7
|
+
# persistent config dir under /home/devstack-sui/.sui/sui_config) and then run
|
|
8
|
+
# `sui start` (no --force-regenesis), which resumes from the on-disk
|
|
9
|
+
# state. Chain state lives in the container's writable layer — `docker
|
|
10
|
+
# stop`/`start` preserves it; `docker rm` destroys it.
|
|
11
|
+
#
|
|
12
|
+
# Slow checkpoint pruning. Localnet's stock fullnode.yaml ships with
|
|
13
|
+
# `num-epochs-to-retain: 0`, which prunes checkpoints aggressively
|
|
14
|
+
# (~10 minutes of retention on a fresh chain). Downstream consumers
|
|
15
|
+
# that follow the chain sequentially (e.g. walrus storage nodes via
|
|
16
|
+
# the v2 LedgerService `get_full_checkpoint` gRPC) get permanently
|
|
17
|
+
# stuck once their last-processed checkpoint slips below sui's
|
|
18
|
+
# lowest-available-checkpoint. Default retention here is 2 prior
|
|
19
|
+
# epochs (~48–72h at the localnet's default 24h epoch); override via
|
|
20
|
+
# the `DEVSTACK_SUI_EPOCHS_TO_RETAIN` env var (`MAX` disables pruning).
|
|
21
|
+
#
|
|
22
|
+
# Signal forwarding (clean shutdown). `sui start --with-faucet` has an
|
|
23
|
+
# upstream signal-handling bug: `sui_commands.rs:1278`'s
|
|
24
|
+
# `start_faucet(app_state).await?` blocks on `axum::serve(...).await`
|
|
25
|
+
# BEFORE the post-setup health-check loop installs
|
|
26
|
+
# `tokio::signal::ctrl_c()`. So when sui runs with `--with-faucet`, no
|
|
27
|
+
# SIGINT handler is ever registered (verified via `/proc/1/status`
|
|
28
|
+
# SigCgt = 0x100000440 vs 0x100000442 without `--with-faucet`) and
|
|
29
|
+
# `docker stop` falls back to SIGKILL → exit 137 → RocksDB checkpoint
|
|
30
|
+
# drain never runs → next `up` resumes from an inconsistent checkpoint
|
|
31
|
+
# (observable as walrus storage-node "checkpoint X is below
|
|
32
|
+
# lowest-available" errors after restart cycles).
|
|
33
|
+
#
|
|
34
|
+
# Workaround until the upstream fix lands: strip only `--with-faucet`
|
|
35
|
+
# from sui's args and run the standalone `sui-faucet` binary as a
|
|
36
|
+
# sibling. Other `sui start` flags, including `--with-graphql`, stay on
|
|
37
|
+
# the validator process. Sui without `--with-faucet` reaches its
|
|
38
|
+
# ctrl_c-aware loop and exits cleanly on SIGINT. The shell becomes PID
|
|
39
|
+
# 1 instead of `exec sui` so it can trap docker's SIGTERM and forward
|
|
40
|
+
# SIGINT to sui. The sibling sui-faucet is stateless; it is also nudged
|
|
41
|
+
# via the shared trap and is force-killed after sui exits if still alive.
|
|
42
|
+
#
|
|
43
|
+
# GraphQL's embedded PostgreSQL indexer refuses to initialize as root,
|
|
44
|
+
# so the entrypoint performs setup as PID 1/root and then starts Sui
|
|
45
|
+
# plus sui-faucet as the unprivileged `devstack-sui` user. Build helper
|
|
46
|
+
# containers override this entrypoint and still run as root.
|
|
47
|
+
#
|
|
48
|
+
# That embedded PostgreSQL can also leave `postmaster.pid` behind after
|
|
49
|
+
# an ungraceful container exit or stale writable-layer reuse. PostgreSQL
|
|
50
|
+
# treats that as an active server and aborts before GraphQL binds, so we
|
|
51
|
+
# clear only provably-stale pid files before starting Sui.
|
|
52
|
+
#
|
|
53
|
+
# The trap + wait-loop lives in `/usr/local/lib/devstack/signal-forward.sh`,
|
|
54
|
+
# vendored from `images/_shared/signal-forward.sh` at build time —
|
|
55
|
+
# the seal key-server entrypoint sources the same file.
|
|
56
|
+
|
|
57
|
+
set -eu
|
|
58
|
+
|
|
59
|
+
# shellcheck disable=SC1091
|
|
60
|
+
. /usr/local/lib/devstack/signal-forward.sh
|
|
61
|
+
|
|
62
|
+
SUI_USER="${DEVSTACK_SUI_USER:-devstack-sui}"
|
|
63
|
+
SUI_HOME="${DEVSTACK_SUI_HOME:-/home/devstack-sui}"
|
|
64
|
+
SUI_UID="$(id -u "$SUI_USER")"
|
|
65
|
+
SUI_GID="$(id -g "$SUI_USER")"
|
|
66
|
+
|
|
67
|
+
mkdir -p "$SUI_HOME/.sui"
|
|
68
|
+
chown -R "$SUI_UID:$SUI_GID" "$SUI_HOME"
|
|
69
|
+
|
|
70
|
+
run_as_sui() {
|
|
71
|
+
setpriv --reuid "$SUI_UID" --regid "$SUI_GID" --init-groups env HOME="$SUI_HOME" "$@"
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
STARTED_PID=""
|
|
75
|
+
start_as_sui() {
|
|
76
|
+
setpriv --reuid "$SUI_UID" --regid "$SUI_GID" --init-groups env HOME="$SUI_HOME" "$@" &
|
|
77
|
+
STARTED_PID=$!
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if [ ! -d "$SUI_HOME/.sui/sui_config" ]; then
|
|
81
|
+
run_as_sui sui genesis -f --with-faucet
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
RETAIN_RAW="${DEVSTACK_SUI_EPOCHS_TO_RETAIN:-2}"
|
|
85
|
+
if [ "$RETAIN_RAW" = "MAX" ]; then
|
|
86
|
+
RETAIN=18446744073709551615
|
|
87
|
+
else
|
|
88
|
+
RETAIN="$RETAIN_RAW"
|
|
89
|
+
fi
|
|
90
|
+
patch_pruning_config() {
|
|
91
|
+
config_file="$1"
|
|
92
|
+
[ -f "$config_file" ] || return 0
|
|
93
|
+
grep -q 'authority-store-pruning-config:' "$config_file" || return 0
|
|
94
|
+
|
|
95
|
+
# Idempotent rewrite — covers volumes that pre-date this fix. `sui
|
|
96
|
+
# start` reads network.yaml / per-validator YAMLs, while fullnode.yaml
|
|
97
|
+
# is not the only live config file on localnet.
|
|
98
|
+
sed -i -E "s/^([[:space:]]*)num-epochs-to-retain: .*\$/\\1num-epochs-to-retain: ${RETAIN}/" "$config_file"
|
|
99
|
+
if grep -q '^[[:space:]]*num-epochs-to-retain-for-checkpoints:' "$config_file"; then
|
|
100
|
+
sed -i -E "s/^([[:space:]]*)num-epochs-to-retain-for-checkpoints: .*\$/\\1num-epochs-to-retain-for-checkpoints: ${RETAIN}/" "$config_file"
|
|
101
|
+
else
|
|
102
|
+
awk -v retain="$RETAIN" '
|
|
103
|
+
/^[[:space:]]*num-epochs-to-retain: / {
|
|
104
|
+
print
|
|
105
|
+
match($0, /^[[:space:]]*/)
|
|
106
|
+
indent = substr($0, RSTART, RLENGTH)
|
|
107
|
+
print indent "num-epochs-to-retain-for-checkpoints: " retain
|
|
108
|
+
next
|
|
109
|
+
}
|
|
110
|
+
{ print }
|
|
111
|
+
' "$config_file" > "${config_file}.tmp"
|
|
112
|
+
mv "${config_file}.tmp" "$config_file"
|
|
113
|
+
fi
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
for config_file in "$SUI_HOME"/.sui/sui_config/*.yaml; do
|
|
117
|
+
patch_pruning_config "$config_file"
|
|
118
|
+
done
|
|
119
|
+
|
|
120
|
+
clear_stale_postgres_pid() {
|
|
121
|
+
indexer_dir="$SUI_HOME/.sui/sui_config/indexer"
|
|
122
|
+
pid_file="$indexer_dir/postmaster.pid"
|
|
123
|
+
[ -f "$pid_file" ] || return 0
|
|
124
|
+
|
|
125
|
+
pid="$(sed -n '1p' "$pid_file" 2>/dev/null || true)"
|
|
126
|
+
case "$pid" in
|
|
127
|
+
'' | *[!0-9]*)
|
|
128
|
+
rm -f "$pid_file"
|
|
129
|
+
return 0
|
|
130
|
+
;;
|
|
131
|
+
esac
|
|
132
|
+
|
|
133
|
+
if kill -0 "$pid" 2>/dev/null; then
|
|
134
|
+
return 0
|
|
135
|
+
fi
|
|
136
|
+
|
|
137
|
+
rm -f "$pid_file"
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
clear_stale_postgres_pid
|
|
141
|
+
|
|
142
|
+
# Strip `--with-faucet[=<addr>]` from sui's args and remember the bind
|
|
143
|
+
# address. POSIX-sh argument shuffling: rebuild "$@" by collecting
|
|
144
|
+
# everything that isn't the faucet flag, capturing the addr if any.
|
|
145
|
+
FAUCET_BIND=""
|
|
146
|
+
SUI_ARGV=""
|
|
147
|
+
SUI_ARGV_COUNT=0
|
|
148
|
+
SAVED_IFS=$IFS
|
|
149
|
+
NL='
|
|
150
|
+
'
|
|
151
|
+
for arg in "$@"; do
|
|
152
|
+
case "$arg" in
|
|
153
|
+
--with-faucet=*)
|
|
154
|
+
FAUCET_BIND="${arg#--with-faucet=}"
|
|
155
|
+
;;
|
|
156
|
+
--with-faucet)
|
|
157
|
+
# Bare flag — use sui's documented localnet faucet default
|
|
158
|
+
# (0.0.0.0:9123). Devstack always passes the `=<addr>` form
|
|
159
|
+
# so this branch is belt-and-suspenders.
|
|
160
|
+
FAUCET_BIND="0.0.0.0:9123"
|
|
161
|
+
;;
|
|
162
|
+
*)
|
|
163
|
+
# Pack into SUI_ARGV using newline as separator (POSIX-sh has
|
|
164
|
+
# no real arrays). Restored via IFS=$NL below.
|
|
165
|
+
if [ "$SUI_ARGV_COUNT" -eq 0 ]; then
|
|
166
|
+
SUI_ARGV="$arg"
|
|
167
|
+
else
|
|
168
|
+
SUI_ARGV="$SUI_ARGV$NL$arg"
|
|
169
|
+
fi
|
|
170
|
+
SUI_ARGV_COUNT=$((SUI_ARGV_COUNT + 1))
|
|
171
|
+
;;
|
|
172
|
+
esac
|
|
173
|
+
done
|
|
174
|
+
|
|
175
|
+
# Re-expand SUI_ARGV into "$@" via IFS so sui sees args without
|
|
176
|
+
# `--with-faucet`. Single-element case avoids an empty trailing arg.
|
|
177
|
+
IFS=$NL
|
|
178
|
+
# shellcheck disable=SC2086
|
|
179
|
+
set -- $SUI_ARGV
|
|
180
|
+
IFS=$SAVED_IFS
|
|
181
|
+
|
|
182
|
+
# Start sui in the background. The shell stays PID 1 so it can trap
|
|
183
|
+
# docker's SIGTERM and forward; sui becomes a direct child whose
|
|
184
|
+
# SIGINT handler the kernel actually delivers (PID 1 ignores
|
|
185
|
+
# undelivered signals; non-PID-1 children get them by default).
|
|
186
|
+
start_as_sui sui "$@"
|
|
187
|
+
SUI_PID=$STARTED_PID
|
|
188
|
+
register_signal_forward "$SUI_PID"
|
|
189
|
+
|
|
190
|
+
# Start sui-faucet as a sibling, scoped to the requested bind addr.
|
|
191
|
+
# The faucet reads ~/.sui via `sui_config_dir()` and shares the wallet
|
|
192
|
+
# config sui just generated above. Re-derives all in-memory state on
|
|
193
|
+
# each start, so signal-induced termination is safe.
|
|
194
|
+
FAUCET_PID=""
|
|
195
|
+
if [ -n "$FAUCET_BIND" ]; then
|
|
196
|
+
FAUCET_HOST="${FAUCET_BIND%:*}"
|
|
197
|
+
FAUCET_PORT="${FAUCET_BIND##*:}"
|
|
198
|
+
# Wait for sui's gRPC to accept connections on 127.0.0.1:9000
|
|
199
|
+
# before starting the faucet — `LocalFaucet::new` does a wallet
|
|
200
|
+
# `get_reference_gas_price` against the RPC at construction time,
|
|
201
|
+
# and panics with `tcp connect error` if the port isn't accepting
|
|
202
|
+
# yet (`crates/sui-faucet/src/main.rs:25` is `.unwrap()`, no retry
|
|
203
|
+
# loop). curl exits 7 on connection refused; anything else
|
|
204
|
+
# (including gRPC's HTTP/2 garble) means the port is open.
|
|
205
|
+
for _ in $(seq 1 60); do
|
|
206
|
+
# Wrap curl in an `if` branch so its non-zero exit (7 = TCP
|
|
207
|
+
# refused, 28 = timeout — both common while sui is still
|
|
208
|
+
# binding) doesn't trip `set -e` and abort the entrypoint
|
|
209
|
+
# before sui even reaches its RPC bind. Anything OTHER than
|
|
210
|
+
# 7/28 means the TCP port accepted us → sui's gRPC is live
|
|
211
|
+
# enough for `LocalFaucet::new` to succeed.
|
|
212
|
+
if curl -s --max-time 2 --connect-timeout 1 -o /dev/null \
|
|
213
|
+
http://127.0.0.1:9000 2>/dev/null; then
|
|
214
|
+
break
|
|
215
|
+
else
|
|
216
|
+
RC=$?
|
|
217
|
+
if [ "$RC" != "7" ] && [ "$RC" != "28" ]; then
|
|
218
|
+
break
|
|
219
|
+
fi
|
|
220
|
+
fi
|
|
221
|
+
sleep 1
|
|
222
|
+
done
|
|
223
|
+
start_as_sui sui-faucet --host-ip "$FAUCET_HOST" --port "$FAUCET_PORT"
|
|
224
|
+
FAUCET_PID=$STARTED_PID
|
|
225
|
+
register_signal_forward "$FAUCET_PID"
|
|
226
|
+
fi
|
|
227
|
+
|
|
228
|
+
# Wait on sui — it's the primary. The shared helper handles dash's
|
|
229
|
+
# "wait returns 128+signum on trapped signal even if child still
|
|
230
|
+
# alive" quirk so we report sui's real exit code (and the container
|
|
231
|
+
# actually waits for sui's checkpoint flush + RocksDB drain before
|
|
232
|
+
# docker reaps it).
|
|
233
|
+
SUI_EXIT=0
|
|
234
|
+
wait_for_child "$SUI_PID" || SUI_EXIT=$?
|
|
235
|
+
|
|
236
|
+
# Tear down the faucet if it's still alive (e.g. sui exited on its
|
|
237
|
+
# own without the trap firing). SIGKILL because faucet ignores SIGINT
|
|
238
|
+
# and we're already in the exit path.
|
|
239
|
+
if [ -n "$FAUCET_PID" ]; then
|
|
240
|
+
kill -KILL "$FAUCET_PID" 2>/dev/null || true
|
|
241
|
+
wait "$FAUCET_PID" 2>/dev/null || true
|
|
242
|
+
fi
|
|
243
|
+
|
|
244
|
+
exit "$SUI_EXIT"
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
FROM rust:1.90-bookworm AS builder
|
|
2
|
+
|
|
3
|
+
ARG SUI_FORK_REPO=https://github.com/MystenLabs/sui.git
|
|
4
|
+
ARG SUI_FORK_REV
|
|
5
|
+
|
|
6
|
+
RUN apt-get update \
|
|
7
|
+
&& apt-get install -y --no-install-recommends \
|
|
8
|
+
ca-certificates clang cmake git libclang-dev libpq-dev libssl-dev pkg-config protobuf-compiler \
|
|
9
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
10
|
+
|
|
11
|
+
RUN set -eux; \
|
|
12
|
+
test -n "$SUI_FORK_REV"; \
|
|
13
|
+
git clone --filter=blob:none "$SUI_FORK_REPO" /src/sui; \
|
|
14
|
+
cd /src/sui; \
|
|
15
|
+
git fetch --depth 1 origin "$SUI_FORK_REV"; \
|
|
16
|
+
git checkout FETCH_HEAD; \
|
|
17
|
+
cargo build --release -p sui-fork; \
|
|
18
|
+
strip /src/sui/target/release/sui-fork
|
|
19
|
+
|
|
20
|
+
FROM ubuntu:24.04
|
|
21
|
+
|
|
22
|
+
ARG SUI_CLI_VERSION
|
|
23
|
+
ARG TARGETARCH
|
|
24
|
+
|
|
25
|
+
RUN apt-get update \
|
|
26
|
+
&& apt-get install -y --no-install-recommends ca-certificates curl gawk git libpq5 libssl3 \
|
|
27
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
28
|
+
|
|
29
|
+
RUN set -eux; \
|
|
30
|
+
test -n "$SUI_CLI_VERSION"; \
|
|
31
|
+
case "$TARGETARCH" in \
|
|
32
|
+
arm64) SUI_PLATFORM=ubuntu-aarch64 ;; \
|
|
33
|
+
amd64) SUI_PLATFORM=ubuntu-x86_64 ;; \
|
|
34
|
+
*) echo "unsupported TARGETARCH=$TARGETARCH" >&2; exit 1 ;; \
|
|
35
|
+
esac; \
|
|
36
|
+
url="https://github.com/MystenLabs/sui/releases/download/${SUI_CLI_VERSION}/sui-${SUI_CLI_VERSION}-${SUI_PLATFORM}.tgz"; \
|
|
37
|
+
curl -fsSL "$url" -o /tmp/sui.tgz; \
|
|
38
|
+
mkdir -p /tmp/sui-unpack; \
|
|
39
|
+
tar -xzf /tmp/sui.tgz -C /tmp/sui-unpack; \
|
|
40
|
+
find /tmp/sui-unpack -maxdepth 2 -type f -executable -exec mv {} /usr/local/bin/ \; ; \
|
|
41
|
+
rm -rf /tmp/sui.tgz /tmp/sui-unpack; \
|
|
42
|
+
sui --version
|
|
43
|
+
|
|
44
|
+
COPY --from=builder /src/sui/target/release/sui-fork /usr/local/bin/sui-fork
|
|
45
|
+
COPY _shared/signal-forward.sh /usr/local/lib/devstack/signal-forward.sh
|
|
46
|
+
COPY sui-fork/entrypoint.sh /usr/local/bin/devstack-sui-fork-entrypoint.sh
|
|
47
|
+
RUN chmod +x /usr/local/bin/devstack-sui-fork-entrypoint.sh
|
|
48
|
+
|
|
49
|
+
ENV RUST_LOG=info,sui_fork=info,sui=info
|
|
50
|
+
|
|
51
|
+
EXPOSE 9000
|
|
52
|
+
|
|
53
|
+
ENTRYPOINT ["/usr/local/bin/devstack-sui-fork-entrypoint.sh"]
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -eu
|
|
4
|
+
|
|
5
|
+
# shellcheck disable=SC1091
|
|
6
|
+
. /usr/local/lib/devstack/signal-forward.sh
|
|
7
|
+
|
|
8
|
+
DATA_DIR=/var/lib/sui-fork
|
|
9
|
+
EXPECT_DATA_DIR=0
|
|
10
|
+
for ARG in "$@"; do
|
|
11
|
+
if [ "$EXPECT_DATA_DIR" -eq 1 ]; then
|
|
12
|
+
DATA_DIR=$ARG
|
|
13
|
+
EXPECT_DATA_DIR=0
|
|
14
|
+
continue
|
|
15
|
+
fi
|
|
16
|
+
if [ "$ARG" = "--data-dir" ]; then
|
|
17
|
+
EXPECT_DATA_DIR=1
|
|
18
|
+
fi
|
|
19
|
+
done
|
|
20
|
+
|
|
21
|
+
if [ -f "$DATA_DIR/seed_manifest.json" ]; then
|
|
22
|
+
FILTERED_ARGS=$(mktemp)
|
|
23
|
+
SKIP_NEXT=0
|
|
24
|
+
for ARG in "$@"; do
|
|
25
|
+
if [ "$SKIP_NEXT" -eq 1 ]; then
|
|
26
|
+
SKIP_NEXT=0
|
|
27
|
+
continue
|
|
28
|
+
fi
|
|
29
|
+
case "$ARG" in
|
|
30
|
+
--address | --object)
|
|
31
|
+
SKIP_NEXT=1
|
|
32
|
+
continue
|
|
33
|
+
;;
|
|
34
|
+
esac
|
|
35
|
+
printf '%s\n' "$ARG" >>"$FILTERED_ARGS"
|
|
36
|
+
done
|
|
37
|
+
|
|
38
|
+
set --
|
|
39
|
+
while IFS= read -r ARG; do
|
|
40
|
+
set -- "$@" "$ARG"
|
|
41
|
+
done <"$FILTERED_ARGS"
|
|
42
|
+
rm -f "$FILTERED_ARGS"
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
sui-fork "$@" &
|
|
46
|
+
SUI_FORK_PID=$!
|
|
47
|
+
register_signal_forward "$SUI_FORK_PID"
|
|
48
|
+
|
|
49
|
+
SUI_FORK_EXIT=0
|
|
50
|
+
wait_for_child "$SUI_FORK_PID" || SUI_FORK_EXIT=$?
|
|
51
|
+
exit "$SUI_FORK_EXIT"
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Walrus image for local-cluster mode. Vendored Dockerfile fed to
|
|
2
|
+
# `ContainerRuntime.ensureImage` (content-addressed builds: same
|
|
3
|
+
# Dockerfile + build args produce the same image digest).
|
|
4
|
+
#
|
|
5
|
+
# The image packages upstream release binaries only. TARGETARCH selects
|
|
6
|
+
# the matching Walrus and Sui release tarballs, and the build verifies
|
|
7
|
+
# the selected Walrus asset is native for that target before accepting it.
|
|
8
|
+
#
|
|
9
|
+
# Two binary sets baked in:
|
|
10
|
+
#
|
|
11
|
+
# 1. walrus / walrus-deploy / walrus-node — from the walrus release
|
|
12
|
+
# tarball at WALRUS_VERSION.
|
|
13
|
+
#
|
|
14
|
+
# 2. sui binary — from the sui release tarball at SUI_VERSION. The
|
|
15
|
+
# deploy/run scripts need a matching `sui` on PATH.
|
|
16
|
+
#
|
|
17
|
+
# Also vendored:
|
|
18
|
+
#
|
|
19
|
+
# - /opt/walrus/scripts/deploy-walrus.sh — testbed deploy script. Runs
|
|
20
|
+
# once per stack via `runOneShot`. Emits per-node `dryrun-node-<i>.{yaml,
|
|
21
|
+
# keystore}` and a deploy summary file with system_object /
|
|
22
|
+
# staking_object / exchange_object ids.
|
|
23
|
+
#
|
|
24
|
+
# - /opt/walrus/scripts/run-walrus.sh — long-running node entrypoint.
|
|
25
|
+
# Relocates per-node configs out of the read-only deploy mount,
|
|
26
|
+
# swaps SUI for WAL, and execs `walrus-node run`.
|
|
27
|
+
#
|
|
28
|
+
# `ubuntu:24.04` because the walrus + sui binaries link against
|
|
29
|
+
# glibc 2.38+; debian:bookworm (glibc 2.36) fails at runtime.
|
|
30
|
+
|
|
31
|
+
FROM ubuntu:24.04
|
|
32
|
+
|
|
33
|
+
ARG WALRUS_VERSION
|
|
34
|
+
ARG SUI_VERSION
|
|
35
|
+
ARG TARGETARCH
|
|
36
|
+
|
|
37
|
+
RUN apt-get update \
|
|
38
|
+
&& apt-get install -y --no-install-recommends \
|
|
39
|
+
ca-certificates curl file gawk git jq netcat-openbsd \
|
|
40
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
41
|
+
|
|
42
|
+
# Walrus release-tarball fetch. Asset naming:
|
|
43
|
+
# walrus-<VERSION>-{ubuntu,macos}-{aarch64,x86_64}.tgz
|
|
44
|
+
# We're inside ubuntu so platform is always `ubuntu-{arch}`.
|
|
45
|
+
RUN set -eux; \
|
|
46
|
+
case "$TARGETARCH" in \
|
|
47
|
+
arm64) WALRUS_PLATFORM=ubuntu-aarch64; EXPECTED_FILE_ARCH='ARM aarch64' ;; \
|
|
48
|
+
amd64) WALRUS_PLATFORM=ubuntu-x86_64; EXPECTED_FILE_ARCH='x86-64' ;; \
|
|
49
|
+
*) echo "unsupported TARGETARCH=$TARGETARCH" >&2; exit 1 ;; \
|
|
50
|
+
esac; \
|
|
51
|
+
url="https://github.com/MystenLabs/walrus/releases/download/${WALRUS_VERSION}/walrus-${WALRUS_VERSION}-${WALRUS_PLATFORM}.tgz"; \
|
|
52
|
+
curl -fsSL "$url" -o /tmp/walrus.tgz; \
|
|
53
|
+
mkdir -p /opt/walrus/bin /tmp/walrus-unpack; \
|
|
54
|
+
tar -xzf /tmp/walrus.tgz -C /tmp/walrus-unpack; \
|
|
55
|
+
find /tmp/walrus-unpack -maxdepth 2 -type f -executable -exec mv {} /opt/walrus/bin/ \; ; \
|
|
56
|
+
chmod +x /opt/walrus/bin/*; \
|
|
57
|
+
for bin in walrus walrus-node walrus-deploy; do \
|
|
58
|
+
test -x "/opt/walrus/bin/${bin}" || { \
|
|
59
|
+
echo "walrus release ${WALRUS_VERSION} missing required binary ${bin}" >&2; \
|
|
60
|
+
ls -la /opt/walrus/bin >&2; \
|
|
61
|
+
exit 1; \
|
|
62
|
+
}; \
|
|
63
|
+
file "/opt/walrus/bin/${bin}" | grep -q "$EXPECTED_FILE_ARCH" || { \
|
|
64
|
+
echo "walrus release ${WALRUS_VERSION} asset ${WALRUS_PLATFORM} is not native for TARGETARCH=${TARGETARCH}: ${bin}" >&2; \
|
|
65
|
+
file "/opt/walrus/bin/${bin}" >&2; \
|
|
66
|
+
exit 1; \
|
|
67
|
+
}; \
|
|
68
|
+
done; \
|
|
69
|
+
rm -rf /tmp/walrus.tgz /tmp/walrus-unpack; \
|
|
70
|
+
/opt/walrus/bin/walrus --version; \
|
|
71
|
+
/opt/walrus/bin/walrus-node --help >/dev/null; \
|
|
72
|
+
/opt/walrus/bin/walrus-deploy --help >/dev/null
|
|
73
|
+
|
|
74
|
+
# Sui release-tarball fetch (same logic as ../sui/Dockerfile).
|
|
75
|
+
RUN set -eux; \
|
|
76
|
+
case "$TARGETARCH" in \
|
|
77
|
+
arm64) SUI_PLATFORM=ubuntu-aarch64 ;; \
|
|
78
|
+
amd64) SUI_PLATFORM=ubuntu-x86_64 ;; \
|
|
79
|
+
*) echo "unsupported TARGETARCH=$TARGETARCH" >&2; exit 1 ;; \
|
|
80
|
+
esac; \
|
|
81
|
+
url="https://github.com/MystenLabs/sui/releases/download/${SUI_VERSION}/sui-${SUI_VERSION}-${SUI_PLATFORM}.tgz"; \
|
|
82
|
+
curl -fsSL "$url" -o /tmp/sui.tgz; \
|
|
83
|
+
mkdir -p /root/sui_bin /tmp/sui-unpack; \
|
|
84
|
+
tar -xzf /tmp/sui.tgz -C /tmp/sui-unpack; \
|
|
85
|
+
find /tmp/sui-unpack -maxdepth 2 -type f -executable -name sui -exec mv {} /root/sui_bin/sui \; ; \
|
|
86
|
+
chmod +x /root/sui_bin/sui; \
|
|
87
|
+
rm -rf /tmp/sui.tgz /tmp/sui-unpack; \
|
|
88
|
+
/root/sui_bin/sui --version
|
|
89
|
+
|
|
90
|
+
# Walrus Move contracts (release tarball doesn't include them; the
|
|
91
|
+
# walrus-deploy CLI needs `--contract-dir /opt/walrus/contracts` to
|
|
92
|
+
# locate the wal/walrus Move packages). Pinned to WALRUS_VERSION so
|
|
93
|
+
# the contract source stays in lockstep with the binary release.
|
|
94
|
+
RUN set -eux; \
|
|
95
|
+
git clone --depth 1 --branch "${WALRUS_VERSION}" \
|
|
96
|
+
https://github.com/MystenLabs/walrus.git /tmp/walrus-src; \
|
|
97
|
+
mkdir -p /opt/walrus/contracts; \
|
|
98
|
+
cp -r /tmp/walrus-src/contracts/* /opt/walrus/contracts/; \
|
|
99
|
+
rm -rf /tmp/walrus-src
|
|
100
|
+
|
|
101
|
+
# Surface both binary sets on PATH so scripts shell out cleanly.
|
|
102
|
+
RUN ln -sf /opt/walrus/bin/walrus /usr/local/bin/walrus \
|
|
103
|
+
&& ln -sf /opt/walrus/bin/walrus-node /usr/local/bin/walrus-node \
|
|
104
|
+
&& ln -sf /opt/walrus/bin/walrus-deploy /usr/local/bin/walrus-deploy \
|
|
105
|
+
&& ln -sf /root/sui_bin/sui /usr/local/bin/sui
|
|
106
|
+
|
|
107
|
+
RUN mkdir -p /opt/walrus/scripts /opt/walrus/outputs /var/walrus/storage
|
|
108
|
+
|
|
109
|
+
COPY deploy-walrus.sh /opt/walrus/scripts/deploy-walrus.sh
|
|
110
|
+
COPY run-walrus.sh /opt/walrus/scripts/run-walrus.sh
|
|
111
|
+
RUN chmod +x /opt/walrus/scripts/*.sh
|
|
112
|
+
|
|
113
|
+
ENV RUST_LOG=info,walrus=info
|
|
114
|
+
|
|
115
|
+
# Storage-node REST port. Distilled-doc invariant 9.
|
|
116
|
+
EXPOSE 9185
|
|
117
|
+
|
|
118
|
+
# Default to storage-node entrypoint. The deploy one-shot overrides
|
|
119
|
+
# via `runOneShot` argv: argv[0] == 'deploy' runs `deploy-walrus.sh`,
|
|
120
|
+
# otherwise runs `run-walrus.sh`.
|
|
121
|
+
ENTRYPOINT ["/bin/bash", "-c", "if [ \"${1:-}\" = deploy ]; then shift; exec /opt/walrus/scripts/deploy-walrus.sh \"$@\"; else exec /opt/walrus/scripts/run-walrus.sh; fi", "--"]
|
|
122
|
+
CMD []
|