feat(bb): centralize Chonk pinning around one canonical tarball + auto-regen on VK-UPDATE#23228
Closed
AztecBot wants to merge 1 commit into
Closed
feat(bb): centralize Chonk pinning around one canonical tarball + auto-regen on VK-UPDATE#23228AztecBot wants to merge 1 commit into
AztecBot wants to merge 1 commit into
Conversation
…o-regen on VK-UPDATE
Collaborator
Author
|
Automatically closing this stale claudebox draft PR (no updates for 5+ days). Re-open if still needed. |
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.
Summary
Centralizes every Chonk benchmark and the VK consistency test around a single
pinned IVC-inputs tarball, decouples them from the slow e2e regen path, and
revives an auto-regenerate-on-
VK-UPDATE:mechanism that pushes the new pinback to the PR with
[skip ci].Today there are two parallel artifacts:
bb-chonk-inputs-<hash>.tar.gz(S3,hand-pinned, used only by the VK-consistency test) and
bb-chonk-captures-<hash>.tar.gz(CI cache, regenerated bybuild_benchrunning the e2e client flows, consumed by every chonk benchmark). The
benchmarks therefore pay the full TS + e2e cost on every cache miss, and a VK
update is a manual
--update_inputs+ commit dance.After this PR:
barretenberg/cpp/scripts/chonk-inputs.hash).yarn-project/end-to-end/bootstrap.sh build_benchdefault = download +extract pinned tarball. Set
BUILD_BENCH_REGEN=1to regenerate fromscratch (used only by
regenerate_chonk_inputs.sh).test_chonk_standalone_vks_havent_changed.sh),in-browser memory bench, and
ci_benchmark_ivc_flows.shall consumeexample-app-ivc-inputs-outpopulated by the same pinned download viathe shared
chonk_inputs_lib.shlibrary.ci-fast/ci-fullnow callscripts/ci_vk_update.shon test failure;if the PR contains a
VK-UPDATE: <reason>empty commit, CI runsregenerate_chonk_inputs.sh --pushwhich builds bb (AVM=ON), regeneratesinputs, proves+verifies each flow, uploads the new tarball, rewrites
chonk-inputs.hash, rebases the pin commit onto the latest PR head, andpushes back with
[skip ci]in the commit subject so CI does not loop.The pin commit only ever touches one one-line file, so race conditions
resolve cleanly.
Files
barretenberg/cpp/scripts/chonk-inputs.hash(new) — single source of truth.barretenberg/cpp/scripts/chonk_inputs_lib.sh(new) — sourced helpers:chonk_inputs_hash,chonk_inputs_url,chonk_inputs_s3_uri,chonk_inputs_download,chonk_inputs_upload,chonk_inputs_set_pin.barretenberg/cpp/scripts/regenerate_chonk_inputs.sh(new) — orchestratorwith
--no-commit | --commit | --push+--reason.scripts/ci_vk_update.sh(new) — CI hook that detectsVK-UPDATE:andinvokes the orchestrator with
--push.barretenberg/cpp/scripts/test_chonk_standalone_vks_havent_changed.sh—pin lookup now goes through the library;
--update_inputsdelegates tothe orchestrator; failure message tells authors how to acknowledge.
yarn-project/end-to-end/bootstrap.sh—build_benchdefault is a tinypinned-download;
BUILD_BENCH_REGEN=1keeps the slow e2e regen path.bootstrap.sh—ci-fast/ci-fullinvokeci_vk_update.shon testfailure.
barretenberg/cpp/CLAUDE.md— documents theVK-UPDATE:workflow + newfast-path bootstrap behavior.
Design notes
variable in
test_chonk_standalone_vks_havent_changed.sh. Hash bumps thenproduce a one-line diff and never perturb the script's own
.rebuild_patternshash (avoids the kind of rebuild race that chore: shrink msm test size while maintaining coverage #23226patched around).
VK-UPDATE:convention is the user-facing trigger. There is nodedicated workflow file — the existing
ci3.ymllane already gives usthe right hook point.
[skip ci]is enforced in the commit subject so the auto-push cannotloop. CI on the next manual push picks up the new pin and the VK check
passes.
chonk_inputs_downloadis idempotent and short-circuits when thedestination already contains flow folders, so the bench engine can call
it from many flows in parallel without re-downloading.
Follow-ups (out of scope)
yarn-project/end-to-endandinto
barretenberg/cpp/bootstrap.sh bench_cmds, with the input prepdeclared as a barretenberg-level Make dep. That would let chonk benches
schedule in parallel with TS tests instead of waiting on the bench phase.
/repin-chonk-inputsPR-comment trigger if theVK-UPDATE:empty-commitconvention proves too awkward.
Test plan
bash -non every touched / new script.chonk_inputs_lib.sh(hash/url/s3 helpers print theexpected strings from the new pin file).
through to
parallel … check_circuit_vksexactly as before; the onlyvisible difference is the pin source.
ci_vk_update.sh(noVK-UPDATE:commit → no-op).VK-UPDATE:empty commit on an intentional VKchange to validate the end-to-end auto-push path against current CI.
Created by claudebox · group:
slackbot