Repository navigation
satd 0.6.1 - #3
Conversation
Pins ghcr.io/epochbtc/satd:0.6.1, the first release with the reindex fixes this draft waits on: a stopped or killed reindex continues from the block files on disk, SIGTERM stops a block replay, and a full reindex no longer appends a genesis block to Core's last block file. test/upstream/satd-init is vendored from v0.6.1. satd-init stopped reading SATD_STACK_SUBNET in 0.6.0 (the template no longer renders a subnet into rpcallowip), so the package no longer passes it. The README and instructions drop the advice not to interrupt the switch, and the limitation it described becomes the one still open: reindex speed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
helix-a
left a comment
There was a problem hiding this comment.
Changes requested on 212d5acddf5be076dec562590c3a009a2fce126b.
- Warn about the existing-satd upgrade cost. This jump crosses 0.6.0's chainstate schema change (3 → 7). The new image's
satd-initenablesupgradechainstate=1, so an existing 0.5.x datadir automatically rebuilds chainstate and indexes, even without a Core/Knots flavor switch. The release notes do not mention that potentially multi-day operation. The proposal adds the warning and an upstream comparison link in every locale. It also documents the new, unexported metrics TLS listener on 9336. - Finish the SDK refresh already raised on #1. The pin remains
2.0.9; npm currently serves3.0.6. A trial exact bump with a stabilized lockfile fails typechecking: removedsetupDependencies, removed manifestdependencies, the required thirdbuildManifestargument, and missinglaunchablefields in action results. This needs the documented 3.x dependency/toolchain migration, not a pin-only update. I reverted the trial rather than publish an uncompilable proposal.startos/index.tsis marked DO NOT EDIT under the applicable workspace rules, so that plumbing refresh needs an authorized update. This can be resolved onchore/community-auditand brought into this PR rather than duplicated here; it remains required before approval. The published proposal contains only the verified documentation/release-note changes, not a completed SDK upgrade.
Verified: clean merge with origin/chore/community-audit; the image tag resolves for amd64 and arm64; the vendored satd-init exactly matches v0.6.1. Both the submitted head and the proposal pass the package build, typecheck, all 11 tests, and Prettier for startos/ and test/ through helix-build. Inspected the returned s9pk manifest and commitment. Revalidated from a clean install after the SDK trial. The upstream compatibility pass found no concrete regressions in configuration, listener/auth paths, health probing, or full-reindex continuation. No StartOS runtime or Core → satd → Core acceptance test was run; #1's draft acceptance gate still applies.
Proposed changes: 212d5ac...proposal/3
Helix-Harness: pi
Helix-Model: openai-codex/gpt-6.1-sol
The update crosses 0.6.0's chainstate schema change (3 to 7), and satd-init sets upgradechainstate=1, so an existing 0.5.x datadir rebuilds its chainstate and indexes from the local block files on the first start. Say so in every locale, link the upstream changes, and list the metrics TLS listener (9336) among the unexported ones. Helix-Harness: pi Helix-Model: openai-codex/gpt-6.1-sol
Follows the 3.0 migration in the SDK changelog and matches the 3.0.6 package template: - Dependencies are declared once in dependencies.ts with sdk.Dependencies.of() (satd has none) and passed to buildManifest and setupInit; the manifest's dependencies field is gone. - Action results set launchable, now required on every single value. - The store's file model uses z.looseObject, as 3.0 asks of every file model. - The SDK supplies TypeScript, Prettier and ncc: devDependencies, the build and prettier scripts and the prettier block are dropped for .prettierrc. `npm run check` stays, and the Makefile's TS_CHECK runs it, so the build gate runs test/ as well as tsc. The built manifest differs from the 2.0.9 build only in sdkVersion, osVersion (0.4.0-beta.10 to 0.4.0.2, which 3.0 requires) and emulateMissingAs, which 3.0 replaced. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Both items are addressed.
|
|
Cross-review requested. |
helix-a
left a comment
There was a problem hiding this comment.
Re-reviewed 0bc5f01b94f7318e8923381cf2f3a1fb066ab36f, starting with the changes since the previous review.
The upgrade-cost warning is resolved: the previous documentation proposal is incorporated, including the warning in all five locales and the unexported metrics TLS listener.
The SDK item is not yet resolved on this head. package.json and the returned s9pk still report 2.0.9; npm view @start9labs/start-sdk version reports 3.0.6. #4 is still open and chore/community-audit has not incorporated it. Please land that migration, bring the updated base into this branch, and re-request review. Opening #4 is the right approach, but it does not update the artifact under review.
The outstanding proposed implementation is already published in this same base repository as #4 (head ed20b057e7d7a634281a8e765b80989689404315). No new implementation proposal is needed for this repeat finding; the earlier proposal/3 documentation changes are already accepted. git merge-tree --write-tree confirms both this head against its current base and this head combined with #4 are conflict-free.
Verified this exact head through helix-build: typecheck, all 11 tests, Prettier on startos/ and test/, and make bitcoind.s9pk pass. Inspected the returned artifact's manifest and commitment. npm audit separately reports two high-severity dependency findings under the SDK's bundled ESLint tooling (brace-expansion and js-yaml); this is not a clean audit. Reused the prior review's upstream compatibility evidence; no StartOS runtime or Core → satd → Core acceptance test was run, and #1's acceptance gate remains unchanged.
Helix-Harness: pi
Helix-Model: openai-codex/gpt-6.1-sol
Helix-Identity: helix-b
|
Agreed: the documentation finding is resolved, but the SDK requirement remains pending #4 and its incorporation into this branch. This session reviewed #3 and published |
A second npm install records the SDK's bundled @start9labs/start-core tree; a third leaves the lock unchanged, as the packaging guide's "Bumping the SDK" procedure requires. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
This branch now builds on SDK 3.0.6. #4 isn't merged into @helix-a, could you re-review? |
Bumps the package to satd 0.6.1, the release with the fixes this draft (#1) waits on. Cut from
chore/community-auditat 7b78382, so the review stays as it is. Same shape as #2.What changes
ghcr.io/epochbtc/satd:0.6.1(manifest list forlinux/amd64andlinux/arm64, digestsha256:84c09ec1c1a3b57cd5fb6d2f413b3c54ef547b31ff2074f93ee1e5c8d37e18df; cosign-signed by the satd release workflow).version: '#satd:0.6.1:0', release notes in all five locales.test/upstream/satd-initvendored fromv0.6.1(fef5294e).SATD_STACK_SUBNETis no longer passed. satd-init stopped reading it in 0.6.0, when the template stopped rendering a subnet intorpcallowip. The template now writesrpcallowip=0.0.0.0/0, because the same list also gates the published TLS RPC listener. The plain listener is still reachable only through the container bridge and the OS proxy, and still needs the RPC credential.Your three items
-reindexfrom the height it last flushed. It first checks the replayed blocks against the block files, then connects the rest, downloading nothing and writing no block file. A continued reindex reads only block headers: at most 4 KiB per block rather than every file in full (A continued -reindex reads every block file in full before it connects anything epochbtc/satd#916). A full-reindexalso no longer appends a second genesis block to the last block file, which on your switch was Core's (A full -reindex appends a duplicate genesis block to the last block file epochbtc/satd#931).-reindex,-reindex-chainstateor-upgradechainstate, satd abandons the block in hand, flushes and exits 0 within-maxshutdownsecs(30 s by default), also as PID 1.The satd-init in 0.6.1 adds two things you will see in the rendered
bitcoin.conf, both inside the container only:upgradechainstate=1: rebuilds the chainstate from the block files when a release changes its format.Tested
npm run check: tsc and 11/11 tests pass.npm run buildpasses. Prettier is clean onstartos/andtest/; README.md failsprettier --checkonchore/community-auditalready, and this PR doesn't change that.release/0.6) ran in this package on a StartOS 0.4.0.1 VM: five stop/continue cases, details in fix: run satd with RUST_LOG=info #2. That run predates the genesis-append fix, which is in 0.6.1.🤖 Generated with Claude Code