Skip to content

chore(fast-inbox): single canonical path for rollup sample-input regeneration (A-1435)#24795

Open
spalladino wants to merge 4 commits into
spl/a-1434-inbox-constants-genfrom
spl/a-1435-regen-dedup
Open

chore(fast-inbox): single canonical path for rollup sample-input regeneration (A-1435)#24795
spalladino wants to merge 4 commits into
spl/a-1434-inbox-constants-genfrom
spl/a-1435-regen-dedup

Conversation

@spalladino

@spalladino spalladino commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Deduplicates how the committed rollup protocol-circuit sample inputs (noir-projects/noir-protocol-circuits/crates/rollup-*/Prover.toml) get regenerated. Two paths previously both wrote rollup-block-root-first, rollup-block-root-first-single-tx, rollup-checkpoint-root-single-block, rollup-checkpoint-merge, and rollup-root, so the committed fixtures drifted depending on which ran last.

  • Makes the prover-client regenerate_rollup_sample_inputs.test.ts suite the sole owner of every rollup circuit at or above the transaction merge: the block-root variants, block-merge, both checkpoint roots, checkpoint-merge, tx-merge, and root.
  • Stops the e2e full.test.ts dump from writing the block-root and checkpoint samples it overlapped on. The e2e dump now regenerates only what needs real client-proved transactions the simulated orchestrator cannot produce: the private-kernel circuits and the transaction-base rollups (rollup-tx-base-private, rollup-tx-base-public).
  • Adds a dedicated three-tx scenario to the suite to restore rollup-tx-merge coverage, which was dropped when orchestrator_single_checkpoint.test.ts was deleted and replaced by this suite. A block with three txs forces one tx-merge before the two-input block root, whereas one- or two-tx blocks feed the block root directly.
  • Updates the regen docs (barretenberg/cpp/CLAUDE.md, the update-prover-toml and gate-counts skills, and the updateProtocolCircuitSampleInputs JSDoc) to the two-command split and removes the dead orchestrator_single_checkpoint.test.ts references.

Ownership after this change (each committed rollup Prover.toml has exactly one writer, no overlap):

  • prover-client suite (AZTEC_GENERATE_TEST_DATA=1 yarn workspace @aztec/prover-client test regenerate_rollup_sample_inputs): the 11 block-root / block-merge / checkpoint / tx-merge / root tomls.
  • e2e (AZTEC_GENERATE_TEST_DATA=1 FAKE_PROOFS=1 full.test): private-kernel circuits plus rollup-tx-base-private / rollup-tx-base-public.

Part of the Fast Inbox (AZIP-22) cleanup stack, on top of #24784..#24794.

Validation: neither regeneration path runs in this environment (the prover-client build here has stale artifacts and e2e needs a full L1/anvil stack), so the actual fixture regeneration and the downstream nargo execute checks are validated on CI. Locally verified statically that the suite's scenario dump arrays plus the e2e list exactly cover all 13 committed rollup tomls with no overlap, and that a three-tx block routes through getTxMergeRollupProof and captures rollup-tx-merge test data.

Review follow-up (phase-2 final review)

Post-flip a zero-tx non-first block carrying a bundle is a live shape routed through the msgs-only block root (wired in #24789), so the regen suite gains a per-block-distribution scenario dumping rollup-block-root-msgs-only, and the circuit joins the CI nargo execute list — the first regen run must create and commit its Prover.toml. The documented e2e regen command also moves to the file's real location (single-node/prover/server/full.test; the old e2e_prover/full.test jest pattern matches nothing).

@spalladino
spalladino force-pushed the spl/a-1434-inbox-constants-gen branch from 57e98bd to beda331 Compare July 19, 2026 01:25
@spalladino
spalladino requested a review from LeilaWang as a code owner July 19, 2026 01:25
@spalladino
spalladino force-pushed the spl/a-1435-regen-dedup branch from 884dd6e to 4e4b32c Compare July 19, 2026 01:25
@spalladino
spalladino force-pushed the spl/a-1434-inbox-constants-gen branch from beda331 to c49ff84 Compare July 19, 2026 14:05
@spalladino
spalladino force-pushed the spl/a-1435-regen-dedup branch from 4e4b32c to 336c977 Compare July 19, 2026 14:05
@spalladino
spalladino force-pushed the spl/a-1434-inbox-constants-gen branch from c49ff84 to eaae5fb Compare July 19, 2026 15:10
@spalladino
spalladino force-pushed the spl/a-1435-regen-dedup branch 2 times, most recently from 7b88209 to de28e00 Compare July 19, 2026 15:36
@spalladino
spalladino force-pushed the spl/a-1434-inbox-constants-gen branch 2 times, most recently from 2d2d3cf to a63553a Compare July 19, 2026 17:57
@spalladino
spalladino force-pushed the spl/a-1435-regen-dedup branch 2 times, most recently from 7b4f10a to 5539a94 Compare July 19, 2026 18:02
@spalladino
spalladino force-pushed the spl/a-1434-inbox-constants-gen branch 2 times, most recently from 17bdffa to 9d89bdc Compare July 19, 2026 18:08
@spalladino
spalladino force-pushed the spl/a-1435-regen-dedup branch 2 times, most recently from 2e84e2e to a6dbe2a Compare July 19, 2026 20:30
@spalladino
spalladino force-pushed the spl/a-1434-inbox-constants-gen branch from 9d89bdc to b6660d3 Compare July 19, 2026 20:30
@spalladino
spalladino force-pushed the spl/a-1435-regen-dedup branch from a6dbe2a to bd8896e Compare July 19, 2026 20:48
spalladino and others added 4 commits July 19, 2026 17:51
…neration (A-1435)

Make the prover-client regenerate_rollup_sample_inputs suite the sole owner of
every block-root, block-merge, checkpoint, tx-merge, and root rollup Prover.toml,
and stop the e2e full.test dump from writing the block-root and checkpoint samples
it overlapped on. The two paths previously both wrote rollup-block-root-first,
rollup-block-root-first-single-tx, rollup-checkpoint-root-single-block,
rollup-checkpoint-merge, and rollup-root, so the committed fixtures drifted
depending on which ran last.

The e2e dump now regenerates only what needs real client-proved transactions the
simulated orchestrator cannot produce: the private-kernel circuits and the
transaction-base rollups. A dedicated three-tx scenario restores rollup-tx-merge
coverage (dropped when orchestrator_single_checkpoint.test.ts was replaced), so
the suite covers every rollup circuit at or above the transaction merge.

Update the regen docs (barretenberg cpp CLAUDE.md, update-prover-toml and
gate-counts skills) to the two-command split and drop the dead
orchestrator_single_checkpoint references.
…en and fix stale regen command patterns (A-1435)

Post-flip a zero-tx non-first block carrying a message bundle is a live block
shape routed through the msgs-only block root, so the regen suite gains a
scenario with a per-block message distribution that dumps
rollup-block-root-msgs-only, and the circuit joins the CI nargo-execute list.
The first regen run creates crates/rollup-block-root-msgs-only/Prover.toml,
which must be committed alongside the other regenerated tomls.

Also fixes the documented e2e regen command: the prover full test lives at
single-node/prover/server/full.test.ts, so the old e2e_prover/full.test jest
pattern matches nothing.
…-1435)

makeCheckpoint concentrates every scenario message into the first block, whose bundle pads to
MAX_L1_TO_L2_MSGS_PER_BLOCK (256), so seeding scenarios with the per-checkpoint cap (1024) threw
on regeneration. Also distribute messages across both blocks of the rollup-block-root scenario so
the committed non-first block-root sample carries a non-empty bundle.
@spalladino
spalladino force-pushed the spl/a-1434-inbox-constants-gen branch from 05ce596 to ab7ddb2 Compare July 19, 2026 20:51
@spalladino
spalladino force-pushed the spl/a-1435-regen-dedup branch from bd8896e to 05b40c5 Compare July 19, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant