Conversation
## 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>
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. :)
Part of A-973
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.
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