Skip to content

feat: merge-train/spartan#22758

Merged
AztecBot merged 8 commits intonextfrom
merge-train/spartan
Apr 24, 2026
Merged

feat: merge-train/spartan#22758
AztecBot merged 8 commits intonextfrom
merge-train/spartan

Conversation

@AztecBot
Copy link
Copy Markdown
Collaborator

@AztecBot AztecBot commented Apr 24, 2026

BEGIN_COMMIT_OVERRIDE
feat(parity): thread prover_id through parity circuits (#22750)
test: refactor n_tps to use WorkerWallet (#22757)
chore: grafana dashboards as config-maps (#22720)
feat: track skipped processed txs (#22756)
test: add nightly 10TPS test (#22760)
END_COMMIT_OVERRIDE

## Motivation

The parity circuits (parity-base, parity-root) were the only non-kernel
server-side circuits whose public inputs did not commit to `prover_id`.
Every other rollup circuit carries `prover_id` as sybil protection — it
stops a single prover from submitting the same proof under multiple
identities. This PR closes that gap so parity is no longer the outlier.

## Approach

`prover_id` is added to `ParityPublicInputs` and
`ParityBasePrivateInputs`. The parity-base circuit emits `prover_id`
publicly from a new private input; parity-root enforces that every child
shares the same `prover_id` (mirroring the existing `vk_tree_root`
consistency loop) and propagates it. Each of the three
`block_root_*_first_rollup` variants now calls
`validate_parity_root(..., constants.prover_id)`, which asserts the
parity root's `prover_id` equals the block's. On the TypeScript side the
orchestrator threads `CheckpointConstantData.proverId` into
`ParityBasePrivateInputs`.

## Changes

- **rollup-lib (Noir)**: added `prover_id` field to
`ParityPublicInputs`, wired it through `parity_base` and `parity_root`,
extended `validate_parity_root` and all three block-root-first callers
- **rollup-lib tests**: wired the orphaned `parity/tests` module into
compilation, fixed `parity_base.execute(...)` →
`parity_base::execute(...)` syntax, added `inconsistent_prover_ids`
negative test, refreshed Poseidon fixture values stale from a prior
domain-separator change
- **stdlib**: mirrored `proverId: Fr` into `ParityPublicInputs` and
`ParityBasePrivateInputs`, plus factory updates
- **noir-protocol-circuits-types**: updated Noir↔TS mappers for the new
field
- **prover-client**: threaded `this.constants.proverId` into `new
ParityBasePrivateInputs(...)` in the checkpoint proving state; updated
`bb_prover_parity` test to share a single `proverId` across all base
proofs (otherwise parity-root consistency would fail the happy path)
- **ivc-integration**: added `prover_id` to the inline Noir input
literal in the base-parity benchmark test

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
alexghr added 3 commits April 24, 2026 14:27
Related to A-943

1. use worker wallet
2. handle anchor blocks going away and recreate tx
3. handle txs mining in "the past" (ie mined in block at index > 0 in a
slot)
4. bump fees
This PR removes the `copy-dashboard` script, instead the helm chart now
renders the files as config maps labelled so that Grafana auto-discovers
them.

This makes the terraform plan significantly smaller because it doesn't
have to render the dashboard json. :)
@alexghr alexghr requested a review from charlielye as a code owner April 24, 2026 13:07
Copy link
Copy Markdown
Collaborator

@ludamad ludamad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Auto-approved

@AztecBot AztecBot added this pull request to the merge queue Apr 24, 2026
@AztecBot
Copy link
Copy Markdown
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

Merged via the queue into next with commit 6cfa370 Apr 24, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants