Repository navigation
Aztec 6.0.0 for testnet v6: Kafka namespace, version picker, archive mode - #10
Merged
Merged
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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
Aztec 6.0.0 publishes its packages under new scopes: the client libraries as @aztec-labs/* and l1-artifacts/bb.js as @aztec-foundation/*. Imports, workspace dependencies and the root resolutions move to them at 6.0.0. The 6.0.0 L1 ABIs match the deployed contracts of the canonical testnet rollup exactly (0x1f435a7f2da358caf887a470faeee7d5d5f4efba, version 679261766). - aztec-listener: createAztecNodeClient takes an options object. - ethereum-listener: genesis blocks for the v6 testnet rollups (0x8c2fb2a6... at 11785332, 0x1f435a7f... at 11969225), so the L1 listener does not scan Sepolia from block 8125387. - Local dev and compiler images move to azteclabs/aztec:6.0.0. Known gap: event-cannon (dev-only, never deployed) does not build yet. Its contract artifacts need recompiling with the 6.0 toolchain and createSchnorrAccount now needs a signing key. Its aztec-nr pins say v6.0.0, but aztec-nr has no v6 tag yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Two deployments of the same L2 network (testnet v5 and v6 share L2_NETWORK_ID=TESTNET) would read each other's events on a shared Kafka cluster, since topic and consumer-group names derive only from the network id. KAFKA_NAMESPACE, when set, prefixes every topic and consumer group, e.g. v6.TESTNET__NEW_BLOCK_EVENT. Unset, all names are unchanged, so existing deployments keep their topics and committed offsets. Every service builds its names through generateL2TopicName, generateL1TopicName and getConsumerGroupId, except ethereum-listener's chain-info group, which now goes through withKafkaNamespace too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each major Aztec version of a network is its own deployment (backend stack and UI build). The UI learns about them from build-time config: - VITE_NETWORK_VERSION: this build's major version, e.g. v6. - VITE_CHICMOZ_ALL_UI_URLS entries may carry a version and status: Network|URL[|version[|status]], status canonical (default), live or archived. Two-field entries keep working as canonical. The network picker links each network to its canonical deployment. A separate version picker lists the current network's versions and opens a version's landing page. A non-canonical build shows a banner pointing at the canonical one. An archived build opens no WebSocket and shows a final block instead of the live tip and next-block countdown. Adds vitest to the UI for the config parsing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nargo From 6.0.0, aztec-nr is published at aztec-labs-eng/aztec-nr (the AztecProtocol mirror stops at v5.2.1), and the azteclabs/aztec image no longer ships nargo. Dockerfile.compile-contracts serves every Aztec version production builds compilers for: - installs nargo from the Noir release the version pins (1.0.0-rc.3 for 6.0.0, sha256-verified) only when the base image has none; - prefetches aztec-labs-eng/aztec-nr only for tags that exist there, plus poseidon v0.3.0/v0.4.0 that 6.0.0's aztec-nr and protocol_types need. build_contract_compiler.sh picks azteclabs/aztec for 6.x and aztecprotocol/aztec before. event-cannon: Nargo pins move to aztec-labs-eng/aztec-nr v6.0.0; ExplorerShowcase passes the L1->L2 secret as an array (v6 signature, same ABI); createSchnorrAccount gets a signing key, which 6.x no longer derives from the secret. Verified: the image builds for linux/amd64, and all three contracts compile with nargo offline (--network none) against the prefetched dependencies. The bb transpile step can't run under x86 emulation on Apple silicon (SIGILL), so the artifacts are not regenerated here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Compiled with the 6.0.0 compiler image (nargo 1.0.0-rc.3, aztec-nr v6.0.0) on a native amd64 GitHub runner, since bb's transpile and VK steps can't run under x86 emulation, then `aztec codegen` for the TypeScript bindings. All three artifacts are transpiled and stamped aztec_version 6.0.0. event-cannon builds again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves
mainto Aztec 6.0.0 so AztecScan can index the v6 testnet rollup. It also adds what's needed to run v6 next to v5 rather than instead of it. Each major version of a network becomes its own deployment, picked from a version dropdown, and a retired one stays browsable without a node.Mainnet is still on Aztec 5.0.0, so mainnet (and testnet v5) move to the new
release/v5branch; see #11. The one open item is a live-node check (below).Commits
fix: parse boolean env vars strictly.z.coerce.boolean()read"false"astruefor six env switches (also in release/v5: Node 24.22.1 (eMudhra), strict boolean env parsing, ARCHIVE_MODE #11).feat(explorer-api): add ARCHIVE_MODE. Serve a retired rollup from Postgres alone: no Kafka, no reconciliation, source verification returns 503 (also in release/v5: Node 24.22.1 (eMudhra), strict boolean env parsing, ARCHIVE_MODE #11).chore: upgrade to Aztec 6.0.0.@aztec-labs/*, plus@aztec-foundation/l1-artifactsand@aztec-foundation/bb.js. Imports, deps and rootresolutionsmove to them.0x1f435a7f…, version679261766): every Rollup/Inbox/Outbox/FeeJuicePortal selector is in the bytecode, and recent logs decode.createAztecNodeClientnow takes an options object.feat(message-registry): optional KAFKA_NAMESPACE. v5 and v6 testnet shareL2_NETWORK_ID=TESTNET. Topics and consumer groups derive only from that, so two stacks on one Kafka would read each other's blocks. When set,KAFKA_NAMESPACE=v6prefixes every topic and group (v6.TESTNET__NEW_BLOCK_EVENT). Unset, every name is unchanged.feat(explorer-ui-v2): version picker.VITE_NETWORK_VERSIONnames this build's version.VITE_CHICMOZ_ALL_UI_URLSentries can carry a version and status:Network|URL[|version[|status]], with statuscanonical(default),liveorarchived. Old two-field entries still work.fix(compiler): 6.x compilers.aztec-labs-eng/aztec-nr(theAztecProtocol/aztec-nrmirror stops at v5.2.1), andazteclabs/aztecno longer shipsnargo.Dockerfile.compile-contractsinstalls the pinned Noir release (1.0.0-rc.3 for 6.0.0, sha256-checked) only when the base image has none, and prefetchesaztec-labs-eng/aztec-nronly for tags that exist there, plus poseidon v0.3.0/v0.4.0. It still builds the 4.x/5.x compilers.build_contract_compiler.shpicksazteclabs/aztecfor 6.x.event-cannon: Nargo pins move to the new repo, the v6consume_l1_to_l2_messagesignature is handled, andcreateSchnorrAccountgets a signing key.chore(event-cannon): regenerated artifacts. Compiled with the 6.0.0 compiler image on a native amd64 GitHub runner (bb's transpile and VK steps need CPU features x86 emulation lacks), thenaztec codegen. All three artifacts are transpiled and stampedaztec_version 6.0.0.fix(contract-verification): run tests in child processes. On Linux, vitest 0.34's worker-thread pool exits 1 after every test passes; this package's tests load the Aztec SDK, native modules included. Reproduced onubuntu-latest(default pool exits 1,--no-threadsexits 0). Also in release/v5: Node 24.22.1 (eMudhra), strict boolean env parsing, ARCHIVE_MODE #11.Verification
aztec-listener,ethereum-listener,explorer-api,websocket-event-publisher,compiler-orchestrator,auth,explorer-ui-v2).yarn testpasses: contract-verification 4, message-registry 3, auth 105, aztec-listener 41, explorer-api 62, explorer-ui-v2 9.yarn install && yarn build && yarn teston ubuntu-latest) passes.Known gaps
parseBlockagainst a real V6 node are untested; no public testnet endpoint answered. The first v6 RPC node from thefoundation-iacchange is the place to check this before pointing listeners at it.crs.aztec-labs.comat compile time to derive verification keys. Production compile jobs already have network (theygit clonethe source), so this works; warming the CRS in the image would only make jobs faster.Deploying
This needs
foundation-iacchanges, which come in a separate PR:CHICMOZ_REF;testnetv6network withKAFKA_NAMESPACE=v6;rpc_networksentry onazteclabs/aztec:6.0.0(the image validation currently only allowsaztecprotocol/aztec);deploy-ui.sh.🤖 Generated with Claude Code