chore(bb): refresh pinned Chonk IVC inputs after protocol-circuit changes#23744
Closed
AztecBot wants to merge 1 commit into
Closed
chore(bb): refresh pinned Chonk IVC inputs after protocol-circuit changes#23744AztecBot wants to merge 1 commit into
AztecBot wants to merge 1 commit into
Conversation
Collaborator
Author
|
Automatically closing this stale claudebox draft PR (no updates for 5+ days). Re-open if still needed. |
AztecBot
added a commit
that referenced
this pull request
Jun 8, 2026
… --ci-refresh-chonk ## What Refreshes the pinned Chonk IVC inputs (`barretenberg/cpp/scripts/chonk-inputs.hash`) so the **Nightly Debug Build** goes green again. This PR carries the `ci-refresh-chonk` label **and** a `--ci-refresh-chonk` head-commit marker. PR CI's post-action (`ci_update_chonk_inputs.sh`) regenerates the pinned inputs, uploads the new tarball to S3, verifies the smallest flow through `ChonkPinnedIvcInputsTest.AllPinnedFlows`, and pushes a follow-up commit replacing the placeholder hash in this PR with the freshly-pinned value. **Do not merge until that follow-up commit lands** — the hash here is a `0000…` placeholder until then. Supersedes the earlier closed-unmerged refresh attempt #23744; the pin is still at the 2026-05-21 value (`209dde8e69a27c9f`), so the nightly has stayed red. ## Root cause Nightly debug build run [27085031299](https://github.com/AztecProtocol/aztec-packages/actions/runs/27085031299) failed in: ``` FAILED: barretenberg/cpp/scripts/run_test.sh bbapi_tests ChonkPinnedIvcInputsTest.AllPinnedFlows (code: 1) ``` The failure is on circuit 10/10 (`hiding_kernel`) of the `deploy_ecdsar1+sponsored_fpc` pinned flow: ``` Pub inputs offset mismatch: 669 vs 673 Commitment mismatch: Q_M, Q_C, Q_L, Q_R, Q_O, Q_4, Q_5, Q_ARITH, Q_SORT, ... C++ exception: Assertion failed: (kernel_return_data_match) Reason: kernel_return_data mismatch: proof contains { 0x183227397098d014..., 0x0 } but kernel_calldata commitment is { 0x..01, 0x..02 } ``` The `hiding_kernel` circuit's public-input layout changed (offset 669 → 673, plus selector-commitment changes), so the **precomputed VK and proof baked into the pinned `ivc-inputs.msgpack` are stale**. The reconstructed `kernel_return_data` from the stale public inputs reads a sentinel `{1, 2}` (the BN254 generator, i.e. an empty databus column) instead of the real return-data commitment, tripping the consistency check. That check is `BB_ASSERT_DEBUG(kernel_return_data_match, ...)` at `barretenberg/cpp/src/barretenberg/chonk/chonk.cpp:169` — a **debug-only** assertion compiled out of release/PR CI. Only the nightly *debug* build exercises it, which is why the stale pin slips past merge-queue CI. The pin was last bumped 2026-05-21. Circuit-affecting barretenberg changes have since landed on `next` without `ci-refresh-chonk`, most notably: - #23484 *fix: harden batch chonk verifier* — adds an independent batched-SRS MSM check in `IPA::batch_reduce_verify` (`commitment_schemes/ipa/ipa.hpp`); the IPA verifier lives inside the hiding kernel, which accounts for the new public inputs and changed selector commitments. - #23615 *feat: optimize sumcheck in ECCVM and Translator*. ## Fix Regenerate and re-pin the Chonk inputs via the standard `ci-refresh-chonk` flow (this PR). No source changes are needed — the pinned fixtures just need to track the current circuits. ## Follow-up (separate) Because the assertion is debug-only, circuit changes can stale the pin with no PR-CI signal, and refresh PRs have repeatedly been opened and closed without landing. Worth deciding whether `chonk_inputs.sh check` should exercise the pinned-flow IVC with debug asserts at PR time (or whether the nightly should hard-block), so this is caught before it reaches the nightly. Tracking separately. --- *Created by [claudebox](https://claudebox.work/v2/sessions/1bec730eb3623e82) · group: `slackbot`*
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.
What
Trigger a refresh of the pinned Chonk IVC inputs (
barretenberg/cpp/scripts/chonk-inputs.hash) via theci-refresh-chonklabel. CI regenerates the inputs from the current protocol circuits, uploads the new tarball to S3, proves one small refreshed flow in C++ and bb.js, and pushes the updated hash back onto this branch.The only meaningful diff this PR introduces is the refreshed
chonk-inputs.hash(the trailing-newline tweak below is just a placeholder so the branch has a diff for CI to overwrite).Why — root cause of the nightly debug build failure
Nightly Debug Build run 26676520589 failed in
bbapi_tests ChonkPinnedIvcInputsTest.AllPinnedFlowswith:This is the databus consistency check in
barretenberg/cpp/src/barretenberg/chonk/chonk.cpp(process_public_inputs_and_consistency_checks). It is guarded byBB_ASSERT_DEBUG, which is compiled out of release/default builds — so only the nightly debug build exercises it, which is why regular PR CI was green. The{1,2}commitment is the BN254 generator, i.e. an empty databus column, while the proof carries real return data: the frozen pinned flow no longer reconstructs consistently against the current protocol circuits.Timeline:
209dde8e69a27c9f.example-app-ivc-inputs-out) to the frozen S3 tarball (barretenberg/cpp/chonk-pinned-flows).multi_call_entrypoint), feat(aztec-nr)!: remove set_sender_for_tags oracle, use builder pattern for sender override #23619 (removeset_sender_for_tagsoracle), plusconstants.nr/ address / public-key packing changes. The C++ chonk verifier itself was unchanged in this window.The pinned inputs are meant to track the protocol circuits; the breaking PRs should have carried
ci-refresh-chonkbut were merged via release CI where the debug assert is absent. This PR performs the missing refresh.Verification
CI's
ci-refresh-chonkpost-action regenerates the inputs and proves the smallest refreshed flow in both C++ and bb.js before committing the new hash, which directly reproduces and clears the failing assertion. After the bot pushes the refreshed hash, confirm the run is green before merging.Created by claudebox · group:
slackbot