Repository navigation
release/v5: Node 24.22.1 (eMudhra), strict boolean env parsing, ARCHIVE_MODE - #11
Conversation
z.coerce.boolean() reads the string "false" as true, so these switches could never be turned off from the environment: - aztec-listener: AZTEC_LISTEN_FOR_PENDING_TXS, AZTEC_LISTEN_FOR_CHAIN_INFO, AZTEC_LISTEN_FOR_L2_TIPS, AZTEC_DISABLED - explorer-api: L2_BLOCK_RECONCILIATION_ENABLED, L1_GOVERNANCE_URI_RECONCILIATION_ENABLED parseBooleanEnv accepts exactly "true" or "false"; unset or empty means the default, anything else fails at startup. A deployment that already sets one of these to "false" now gets that setting. Co-Authored-By: Claude Opus 5.5 <[email protected]>
With ARCHIVE_MODE=true the API serves a retired rollup's stored history from Postgres without Kafka: it starts no message bus, consumes no events, runs no reconciliation, and answers source verification with 503. An archived version then needs only explorer-api, Postgres and Redis; no Aztec node, listeners or Kafka. Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
CI note: the |
On Linux, vitest 0.34's worker-thread pool exits 1 after all contract-verification tests pass, failing the PR build. These tests load the Aztec SDK, native modules included. Reproduced on ubuntu-latest with Node 20: the default pool exits 1 and --no-threads exits 0. macOS was unaffected. Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
Update: the CI failure below is fixed in this PR. The diagnosis on ubuntu-latest showed vitest 0.34's worker-thread pool exits 1 after the tests pass, while |
Backports the fixes from #10 and #9 onto
release/v5, the new branch for the Aztec 5.x line. Mainnet and testnet v5 keep running 5.x whilemainmoves to Aztec 6.0.0 for the v6 testnet rollup.release/v5starts atf3ec5887(currentmain, what production runs today).What this PR does
1. Strict boolean env parsing.
z.coerce.boolean()reads the string"false"astrue, so these switches could never be turned off from the environment:aztec-listener:AZTEC_LISTEN_FOR_PENDING_TXS,AZTEC_LISTEN_FOR_CHAIN_INFO,AZTEC_LISTEN_FOR_L2_TIPS,AZTEC_DISABLEDexplorer-api:L2_BLOCK_RECONCILIATION_ENABLED,L1_GOVERNANCE_URI_RECONCILIATION_ENABLEDparseBooleanEnvaccepts exactlytrueorfalse. Unset or empty means the default; anything else fails at startup.2.
ARCHIVE_MODEforexplorer-api. WithARCHIVE_MODE=truethe API serves a retired rollup's stored history from Postgres alone:503.An archived version then needs only
explorer-api, Postgres and Redis: no Aztec node, listeners or Kafka. This is what lets testnet v5 stay browsable after its rollup shuts down.3. CI fix:
contract-verificationtests run in child processes. On Linux, vitest 0.34's worker-thread pool exits 1 after every test passes, failing the PR build. Reproduced onubuntu-latest(default pool exits 1,--no-threadsexits 0). Also in #10.4. eMudhra remediation: Node 24.22.1 everywhere (backport of #9, cherry-picked with
-x). Eight eMudhra intermediate CA keys are computable from their public certificates. Node only rejects certificates chained to them from 22.23.4 / 24.22.1 / 26.12.1 on, and Node 20 (CI, build stages) never will. This pinsnode:24.22.1-trixie-slimby digest in every build and runtime stage, requiresca-certificates >= 20250419+deb13u1, and moves CI and.nvmrcto 24.22.1. The backported files are identical tomain. Mainnet and testnet v5 build from this branch, so they need it as much asmain.Verification
On this branch, on Node 24.22.1 with the 5.x dependencies:
yarn install,yarn buildandyarn testpass (contract-verification 4, auth 105, aztec-listener 41, explorer-api 62). For #9's part, all six production images were built on ubuntu-latest: each runs Node 24.22.1, refuses a certificate chained to a compromised intermediate (CERT_REVOKED), and accepts normal TLS (run). New tests cover the"false"cases and the archive-mode 503. The PR build workflow passes.🤖 Generated with Claude Code