Repository navigation
chore(bb)!: remove Starknet/Garaga flavors - #25730
Merged
Merged
Conversation
Fold the custom-IV sponge overload into hash_internal, remove the unused OracleHashType/parse_oracle_hash_type, fix backend.ts formatting, refresh the Garaga docs link and drop the stale Garaga dictionary word.
iakovenkos
marked this pull request as ready for review
November 4, 2026 15:30
iakovenkos
approved these changes
Nov 4, 2026
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.
Why
Barretenberg carries
UltraStarknetFlavor,UltraStarknetZKFlavor, a stark252 curve, a Starknet Poseidon and a matching transcript, all behindSTARKNET_GARAGA_FLAVORS. Garaga was the only known consumer. Its current Noir docs use--oracle_hash keccakwithultra_keccak_zk_honk, and its maintainers have confirmed they no longer need this code.Reachability
No preset, script or CMake file defines
STARKNET_GARAGA_FLAVORS; every occurrence in the tree is an#ifdef. So the flavors, their template instantiations and their test parameterizations don't compile in any build we produce, and the code goes unexercised by CI.The guarded code had also bit-rotted. It refers to
Transcript_,KeccakTranscriptParamsand a single-parameterBaseTranscript. Onnext,Transcript_andKeccakTranscriptParamsare defined nowhere andBaseTranscripttakes two template parameters, so turning the flag on should no longer compile. That comes from reading the source; I didn't try the build.What changed
barretenberg/cpp/src/barretenberg/ext/and its CMake wiring.ext_starknet_crypto_poseidonis no longer linked intotranscript,stdlib_poseidon2,poseidon2_benchor thebarretenbergobjects.#ifdefbranches, keeping the non-Starknet side, across flavors, Oink, Ultra prover/verifier,TraceToPolynomials,SmallSubgroupIPAand the test type lists.static_assert(Params::modulus_0 != 1)infield_declarations.hpp. It was commented out only because stark252 violates it, andmodulus_minus_twounderflows without it.crypto::FieldSponge::hash_internal(input, iv)overload into the single-argumenthash_internal. It was added for the Starknet Poseidon, which was its only outside caller. Poseidon2 output doesn't change: the IV is stillin_len << 64, converted toFFthe same way.OracleHashTypeandparse_oracle_hash_typefrombbapi_shared.hpp. They had no callers, and proof settings dispatch on theoracle_hash_typestring.starknetandstarknet-no-zkfrom the CLI, along with theStarknet Garaga Extensionsbanner line, the bb.jsverifierTargetvalues and the current docs.Garagafromdocs/docs-words.txt, since nothing in that spellcheck's scope uses it, and pointed the Garaga link inbarretenberg/docs/docs/index.mdat its current URL.Breaking changes
bb:--verifier_target starknet,--verifier_target starknet-no-zkand--oracle_hash starknetnow fail at argument parsing. Default builds already failed on these later, withInvalid proof system settings.verifierTarget: 'starknet' | 'starknet-no-zk'and the deprecatedstarknet/starknetZKoptions are removed fromUltraHonkBackendOptions.Left in place
CHANGELOG.mdandversioned_docsare historical.barretenberg/docs/docs/index.mdstill cites Garaga as a third-party verifier implementation, which remains true.starknetstays in the rootcspell.jsonbecauseCHANGELOG.mdstill contains it and isn't in that file'signorePaths.Testing
Run locally on the
clang20-no-avmpreset with the AVM transpiler disabled:bb,ultra_honk_tests,flavor_tests,transcript_tests,crypto_poseidon2_tests,stdlib_poseidon2_tests,bbapi_testsandposeidon2_bench.flavor_testsandposeidon2_benchwere built before the follow-up commit and not rebuilt after it.crypto_poseidon2_tests12 of 12,stdlib_poseidon2_tests29 of 29,transcript_tests69 of 71 with 2 skipped (TranscriptTests/1and/2.ProverToVerifierConversion).flavor_tests28 of 28, and a filteredultra_honk_testssubset of 63 tests (transcript, permutation, one range-constraint flavor, proof length).bbapi_testshas 1 failure,ChonkPinnedIvcInputsTest.AllPinnedFlows, which stops at its assertion that pinned flows exist because the inputs aren't downloaded in this checkout. I didn't read the rest of that run's output, so CI is the real result for this target.bbrejects bothstarknetspellings, andstarknetno longer appears inbborbb prove --helpoutput.backend.tswith the repo's options but without the import-sort plugin, which isn't installed here.Not run locally: ESLint, the bb.js typecheck, the wasm build and the full test suite. Those are left to CI.
Created by claudebox · group:
slackbot· requested by Sergei · Slack thread