-
Notifications
You must be signed in to change notification settings - Fork 234
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: goblin op queue transcript aggregation #2257
Conversation
f98ea5a
to
92a29a3
Compare
92a29a3
to
61cae4a
Compare
// Manually compute the op queue transcript commitments (which would normally be done by the prover) | ||
auto crs_factory_ = barretenberg::srs::get_crs_factory(); | ||
auto commitment_key = CommitmentKey(op_queue->get_current_size(), crs_factory_); | ||
std::array<Point, 4> op_queue_commitments; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4 should probably be a named constant
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
barretenberg/cpp/src/barretenberg/honk/composer/goblin/full_goblin_composer.test.cpp
Show resolved
Hide resolved
/** | ||
* @brief Set self to the right shift of input coefficients | ||
* @details Set the size of self to match the input then set coefficients equal to right shift of input, assuming | ||
* last shift-size many inputs are zero. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does "assuming last shift-size many inputs are zero" mean?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Improved the wording of this comment
auto shifted_evaluation = right_shifted_poly.evaluate(evaluation_point); | ||
|
||
// reconstruct the unshifted evaluation using that p^{shift}(X)/X^m = p(X), where m is the shift magnitude | ||
auto unshifted_eval_reconstructed = shifted_evaluation / evaluation_point.pow(shift_magnitude); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you multiply, you don't have to invert + the zero case can't fail (it's never going to happen anyway, though)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point - changed
@@ -206,6 +206,7 @@ template <typename Flavor> class SumcheckVerifier { | |||
round.compute_next_target_sum(round_univariate, round_challenge); | |||
pow_univariate.partially_evaluate(round_challenge); | |||
|
|||
// TODO(#726): Properly handle this in the recursive setting. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inside the circuit there should be no if at all in this particular case, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah the problem is right now this code is shared by recursive and native verification so some choices need to be made. I'll handle this in a follow on for the issue referenced
@@ -425,6 +425,8 @@ template <typename Flavor> class SumcheckVerifierRound { | |||
// with a simulated builder. | |||
bool sumcheck_round_failed(false); | |||
if constexpr (IsRecursiveFlavor<Flavor>) { | |||
// TODO(#726): Need to constrain this equality and update the native optional return value mechanism for the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should there be an optional return at all? If the recursive proof fails, then the new proof should fail, too, right? So it should simply be enough to assert equality of values
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, just need to figure out how to resolve re: previous comment.
ASSERT(shift_size < size_in); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are you comparing shift size with input size?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Basically just because I'm about to loop through shift-size many coefficients of the input. (Changed to shift_size <= size_in
accordingly). Added a TODO here with reference to existing bberg issue #723 related to allowing the right-shifted transcript polynomials to have size greater than n
.
} | ||
|
||
// Receive claimed evaluations of t_i^{shift}, T_{i-1}, and T_i | ||
FF kappa = transcript.get_challenge("kappa"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't you have to open one of these polynomials in gemini? Why not simply use rho?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
None of these polynomials are currently opened in gemini (only the unshifted t_i). Also, I believe the opening challenge must be produced after hashing the commitments to each of these polys so I think it would be awkward to try to squeeze that into Gemini.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW we had discussed using the optimization of only committing to either t_i or its shift but not both, but it's not clear to me that its efficient in this case since we do not otherwise need to open both in Gemini. (For the other shifts, we already need to include them in Gemini since they're used in relations so there's no additional cost). Something we can continue to think about though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not an issue right now, but you can commit to the polynomials at the same time as all the other wires (or right after). Then, when you receive the output from gemini, you ask for the evaluations for accumulated and previous versions (you have the shifted already).
// TODO(#723): The below assert ensures that M_{i-1} + m_i < n, i.e. the right shifted result can be expressed | ||
// as a size n polynomial. If this is not the case then we should still be able to proceed without increasing | ||
// the circuit size but need to handle with care. | ||
ASSERT(prev_op_queue_size + instance->proving_key->num_ecc_op_gates < circuit_size); // M_{i-1} + m_i < n |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should not be an issue. You should only care that the current ecc op gates fit in the circuit size, but the previous ones should have no influence on the circuit size. Otherwise we'd have to make all the circuits the same size, since you never know how much of the queue you have to fit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right I agree. I made it an issue to deal with later because I think some care needs to be taken since we have not historically allowed polynomials with size > circuit_size
to be floating around. Just want to make sure there are no footguns
} | ||
|
||
// Receive transcript poly evaluations | ||
FF kappa = transcript.get_challenge("kappa"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not use rho from gemini? You have to open the t_shift on it anyway
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See related comment above
// TODO(#423): This function adds valid (but arbitrary) gates to ensure that the circuit which includes | ||
// them will not result in any zero-polynomials. It also ensures that the first coefficient of the wire | ||
// polynomials is zero, which is required for them to be shiftable. | ||
// TODO(luke): Add ECC op gate to ensure op wires are non-zero? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Those would accumulate( Technically, we should never use GolbinUltra if we are not feeding a proof inside anyway, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah this is an old TODO. deleted
ecc_op_wire_3.emplace_back(in.x_hi); | ||
ecc_op_wire_4.emplace_back(in.y_lo); | ||
|
||
ecc_op_wire_1.emplace_back(in.op); // TODO(luke): second op val is sort of a dummy. use "op" again? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mb set to zero? Could you also add an issue number to the todo?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I think 0 is the right thing so updated and removed the TODO
ecc_op_tuple queue_ecc_eq(); | ||
|
||
private: | ||
void populate_ecc_op_wires(const ecc_op_tuple& in); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These functions are not documented
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation for these is in the source (which I generally prefer) but I added a brief comment here: // Functions for adding ECC op queue "gates"
for (size_t j = 0; j < builder.num_ecc_op_gates; ++j) { | ||
auto op_wire_val = builder.variables[builder.ecc_op_wires[i][j]]; | ||
auto ultra_op_val = ultra_ops[i][j]; | ||
info("op_wire_val = ", op_wire_val); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you plan to leave the infos in?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed, thanks
* | ||
* @param op_queue | ||
*/ | ||
void populate_with_mock_initital_data() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you create a todo to delete later?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a TODO with reference to existing issue to make it clear this should eventually go away entirely
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.8.0</summary> ## [0.8.0](aztec-packages-v0.7.10...aztec-packages-v0.8.0) (2023-10-03) ### ⚠ BREAKING CHANGES * Gates command should always return 8 bytes ([#2631](#2631)) ### Features * **1090:** Validate that some arrays are zero-padded on the right ([#2519](#2519)) ([0327b54](0327b54)) * Add --wait/--no-wait flags to certain cli commands ([#2378](#2378)) ([57a2f10](57a2f10)) * Add boxes to CI ([#2456](#2456)) ([a90a185](a90a185)) * Add selector to call_context ([#2626](#2626)) ([8e317be](8e317be)) * AddNote api ([#2535](#2535)) ([bb004f4](bb004f4)) * **aztec_noir:** Abstract storage initialisation ([#2406](#2406)) ([974b037](974b037)) * **aztec.js:** Support AddressLike parameters ([#2430](#2430)) ([5b5f139](5b5f139)) * Barretenberg/crypto/blake3s supports compile-time hashing ([#2556](#2556)) ([da05dd7](da05dd7)) * **bb:** Add `bb --version` command ([#2482](#2482)) ([530676f](530676f)) * **bb:** Avoid initializing CRS for `bb info` command ([#2425](#2425)) ([d22c7b1](d22c7b1)) * Benchmarks ([#2605](#2605)) ([37d9f9c](37d9f9c)) * Bootstrap_docker skips build it can pull from ecr. ([#2545](#2545)) ([466a517](466a517)) * **cli:** Reenable CLI version check ([#2441](#2441)) ([c6ddd23](c6ddd23)) * Collapse interfaces for single implementation ([#2599](#2599)) ([860f340](860f340)) * Consistent pedersen hash (work in progress) ([#1945](#1945)) ([b4ad8f3](b4ad8f3)) * Deprecate assert_contains_and_remove ([#2594](#2594)) ([d225d56](d225d56)) * **docs:** Allow raw code interpolation ([#2447](#2447)) ([e078ff4](e078ff4)) * **docs:** Load current aztec version for aztec.nr dependencies in docs ([#2440](#2440)) ([63cf415](63cf415)) * **docs:** Reenable typedoc for aztec-rpc and aztec.js ([#2452](#2452)) ([85e504c](85e504c)), closes [#2045](#2045) [#2415](#2415) * **docs:** Use preprocessor syntax for including versions ([#2462](#2462)) ([7d315cd](7d315cd)) * **docs:** Use released version of code snippets in docs ([#2439](#2439)) ([76fc2cf](76fc2cf)) * **docs:** Warn if snippet is grabbed from master ([#2544](#2544)) ([36896e7](36896e7)) * **e2e:** Public flow for uniswap ([#2596](#2596)) ([2f871ee](2f871ee)) * Enforce that 0th nullifier is non-zero in private kernel circuit ([#2576](#2576)) ([458a4fe](458a4fe)), closes [#1329](#1329) * Expose registry address in `getNodeInfo` ([#2478](#2478)) ([652bb04](652bb04)) * Expose transaction data from AztecRPC ([#2469](#2469)) ([fc00553](fc00553)) * Extend function documentation ([#2408](#2408)) ([6a75fd0](6a75fd0)) * Goblin op queue transcript aggregation ([#2257](#2257)) ([b7f627a](b7f627a)) * Json type by default in `JsonRpcServer` ([#2504](#2504)) ([be38fcc](be38fcc)), closes [#2479](#2479) * Listing expected args in CLI ([#2423](#2423)) ([b2243ad](b2243ad)) * Log topic and contract address in unencrypted logs ([#2595](#2595)) ([a5b763f](a5b763f)), closes [#2580](#2580) [#2581](#2581) [#2586](#2586) [#2587](#2587) * Parallelization update for polynomials ([#2311](#2311)) ([922fc99](922fc99)) * Restore latest block number ([#2474](#2474)) ([6dc2da7](6dc2da7)) * Serialise L2Block to JSON ([#2496](#2496)) ([714c727](714c727)) * Standalone Aztec Node and RPC Server ([#2522](#2522)) ([8e355bc](8e355bc)) * Unbox empty box ([#2387](#2387)) ([3e3930c](3e3930c)) * Uniswap private flow ([#2559](#2559)) ([39f3a91](39f3a91)) * Update to protogalaxy interfaces ([#2498](#2498)) ([9a3d265](9a3d265)) * YML manifest. Simplify YBP. ([#2353](#2353)) ([bf73bc3](bf73bc3)) ### Bug Fixes * Add aztec/overview redirect ([#2424](#2424)) ([4e30dcd](4e30dcd)) * Add redirects from old docs site urls to new site urls ([#2429](#2429)) ([18fe88a](18fe88a)) * **barretenberg:** Brittle headers caused error compiling for clang-16 on mainframe ([#2547](#2547)) ([cc909da](cc909da)) * Bb rebuild patterns ([#2499](#2499)) ([868cceb](868cceb)) * Bootstrap.sh ([#2524](#2524)) ([bb1fb90](bb1fb90)) * Box injected sandbox tag ([#2555](#2555)) ([069bdc7](069bdc7)) * **build-system:** Don't wait 30s+ always ([#2494](#2494)) ([89d700d](89d700d)) * **build:** CI fixes from previous merges ([#2579](#2579)) ([a9e5d05](a9e5d05)) * Bump foundry version ([#2553](#2553)) ([0dde3d5](0dde3d5)) * Call public fn in contract constructor ([#2549](#2549)) ([14ab6d6](14ab6d6)) * Canary image build ([#2480](#2480)) ([6366be5](6366be5)) * Cli type check arguments and options ([#2571](#2571)) ([ecffc36](ecffc36)) * **cli:** Typos in cli output ([#2428](#2428)) ([08acf90](08acf90)) * Docs: Token tutorial, update links and add note on imports ([#2604](#2604)) ([003d801](003d801)) * **docs:** 'command not found: export' ([#2443](#2443)) ([f56aa02](f56aa02)) * **docs:** Docs correction ([#2437](#2437)) ([6499248](6499248)) * **docs:** Fix imports in token contract tutorial ([#2432](#2432)) ([34ed663](34ed663)) * Drop txs with duplicate nullifiers from the same block ([#2511](#2511)) ([d9ca1d8](d9ca1d8)), closes [#2502](#2502) * E2e browser tests ([#2531](#2531)) ([adf2b1e](adf2b1e)), closes [#2527](#2527) * Fix working dir bug causing stdlib-tests to not run. ([#2495](#2495)) ([6b3402c](6b3402c)) * Foundry ([#2611](#2611)) ([9830fbf](9830fbf)) * Gates command should always return 8 bytes ([#2631](#2631)) ([9668165](9668165)) * JSON-RPC server returns spec-compliant errors ([#2590](#2590)) ([5eafa3d](5eafa3d)) * Loading salt into buffer in the cli ([#2467](#2467)) ([753ac49](753ac49)) * **master:** Remove secret_hash ref ([#2617](#2617)) ([1073bcd](1073bcd)) * Nightly subrepo mirror ([#2520](#2520)) ([bedc8c8](bedc8c8)) * Prevent race conditions around data pulled from L1 ([#2577](#2577)) ([defea83](defea83)) * Readd docs after ci refactor. ([#2514](#2514)) ([1eb1a3c](1eb1a3c)) * Remove "standard" from references to token contracts ([#2533](#2533)) ([f931d56](f931d56)) * Try fix boxes-blank ([#2539](#2539)) ([87b8080](87b8080)) * Try to fix publish bb ([#2529](#2529)) ([7c623c4](7c623c4)) * Try to fix publish-bb.yml ([#2523](#2523)) ([2f6e9bd](2f6e9bd)) * Use #import_code in Token contract tutorial ([#2438](#2438)) ([b58cfb5](b58cfb5)) ### Miscellaneous * `computeContractAddress` as `computeCompleteAddress` ([#1876](#1876)) ([4d95b44](4d95b44)), closes [#1873](#1873) * Add instructions on circleci session for debugging ([#2503](#2503)) ([a4197e7](a4197e7)) * Add output saying how to get the right noir version ([#2622](#2622)) ([10b30e0](10b30e0)) * Aztec-node json-rpc ([#2444](#2444)) ([04efee1](04efee1)) * BI build tweaks ([#2487](#2487)) ([f8b6548](f8b6548)) * Check tree roots in world state sync ([#2543](#2543)) ([314e8a0](314e8a0)) * **circuits:** 2612 - add validation in native private kernel circuit of arrays in accumulated data ([#2614](#2614)) ([f1fe059](f1fe059)) * **circuits:** Remove obsolete comments in native private kernel circuit ([#2570](#2570)) ([a6b6c7b](a6b6c7b)) * **contract_deployment.md:** Don't require main edit ([#2449](#2449)) ([16a3d9c](16a3d9c)) * **deps:** Bump get-func-name from 2.0.0 to 2.0.2 in /yarn-project ([#2630](#2630)) ([5cebf18](5cebf18)) * **deps:** Bump ua-parser-js from 0.7.32 to 0.7.36 in /docs ([#2629](#2629)) ([b2c87c2](b2c87c2)) * Disable pushing/pulling for layer caching in build. ([#2517](#2517)) ([51352ae](51352ae)) * **docs:** Fix tutorial in dapp development ([#2421](#2421)) ([027530f](027530f)) * **docs:** Incorporate docs feedback ([#2434](#2434)) ([4992d5b](4992d5b)) * Embed yq in repo to avoid network hiccups. ([#2560](#2560)) ([84f207f](84f207f)) * Fix box noir versioning ([#2578](#2578)) ([6eaf0c7](6eaf0c7)) * Fixing foundry version ([#2528](#2528)) ([3af0753](3af0753)) * Kill Turbo ([#2442](#2442)) ([c832825](c832825)) * Move hash utils to aztec-nr ([#2583](#2583)) ([78bd1a3](78bd1a3)) * No private key account state ([#2491](#2491)) ([5813fb3](5813fb3)) * Provide cross compile to cjs. ([#2566](#2566)) ([47d0d37](47d0d37)) * Recursion todos ([#2516](#2516)) ([2df107b](2df107b)) * Reenable some ultra honk composer tests ([#2417](#2417)) ([31f4c32](31f4c32)) * Refactor e2e test teardown ([#2513](#2513)) ([2e43248](2e43248)) * Remove `BarretenbergBinderSync` import from typescript bindgen file ([#2607](#2607)) ([43af1a3](43af1a3)) * Remove build system tainting now we have ci cmds in comments. ([#2589](#2589)) ([2040335](2040335)) * Remove composer keyword from stdlib ([#2418](#2418)) ([f3e7d91](f3e7d91)) * Remove debug log in world state sync ([#2613](#2613)) ([177f468](177f468)) * Remove Standard Honk ([#2435](#2435)) ([9b3ee45](9b3ee45)) * Remove unneeded dockerfiles. ([#2588](#2588)) ([d6f903d](d6f903d)) * Rename all the occurrences of `Aztec RPC` ([#2552](#2552)) ([8cc4f69](8cc4f69)), closes [#2451](#2451) * Renaming `@aztec/aztec-rpc` package as `@aztec/pxe` ([#2538](#2538)) ([0dd70aa](0dd70aa)) * Resuscitate private kernel tests related to call stack item check ([#2558](#2558)) ([9e938fc](9e938fc)) * Run formatting:fix for box lint ([#2479](#2479)) ([3995de9](3995de9)) * Run quick-start guide in CI ([#2413](#2413)) ([5f43715](5f43715)) * Simulator ([#2534](#2534)) ([a26198e](a26198e)) * Switch to upstream docusaurus-plugin-typedoc ([#2557](#2557)) ([fdf5fce](fdf5fce)) * Token contract storage cleanup ([#2536](#2536)) ([0b62207](0b62207)) * Typo ([#2546](#2546)) ([8656a3b](8656a3b)) * Unskip test and fix params ([#2454](#2454)) ([e484c5f](e484c5f)) * Update private token box ([#2385](#2385)) ([b730196](b730196)) * Use US spelling ([#2475](#2475)) ([2fe8f5e](2fe8f5e)), closes [#1934](#1934) ### Documentation * Capitalizing x in pxe ([#2564](#2564)) ([2927cf1](2927cf1)) * Common contract errors ([#2471](#2471)) ([a8aec70](a8aec70)), closes [#2468](#2468) * Fixed original minus underflow test ([#2472](#2472)) ([0cf4bdc](0cf4bdc)) * Including sandbox diagrams in the sandbox section ([#2573](#2573)) ([2fa143e](2fa143e)) * Initial storage cleanup ([#2433](#2433)) ([d833483](d833483)) * Misc docs changes ([#2416](#2416)) ([0e789c7](0e789c7)) * More `RPC Server` --> `PXE` naming fixes ([#2574](#2574)) ([b33eea5](b33eea5)) * Portal messaging ([#2419](#2419)) ([7979bb9](7979bb9)) * Update instructions ([#2297](#2297)) ([ab612df](ab612df)), closes [#1827](#1827) * Update sidebar + embed youtube video ([#2470](#2470)) ([a779d11](a779d11)) </details> <details><summary>barretenberg.js: 0.8.0</summary> ## [0.8.0](barretenberg.js-v0.7.10...barretenberg.js-v0.8.0) (2023-10-03) ### ⚠ BREAKING CHANGES * Gates command should always return 8 bytes ([#2631](#2631)) ### Bug Fixes * Gates command should always return 8 bytes ([#2631](#2631)) ([9668165](9668165)) ### Miscellaneous * Provide cross compile to cjs. ([#2566](#2566)) ([47d0d37](47d0d37)) * Remove `BarretenbergBinderSync` import from typescript bindgen file ([#2607](#2607)) ([43af1a3](43af1a3)) * Typo ([#2546](#2546)) ([8656a3b](8656a3b)) </details> <details><summary>barretenberg: 0.8.0</summary> ## [0.8.0](barretenberg-v0.7.10...barretenberg-v0.8.0) (2023-10-03) ### Features * Barretenberg/crypto/blake3s supports compile-time hashing ([#2556](#2556)) ([da05dd7](da05dd7)) * **bb:** Add `bb --version` command ([#2482](#2482)) ([530676f](530676f)) * **bb:** Avoid initializing CRS for `bb info` command ([#2425](#2425)) ([d22c7b1](d22c7b1)) * Consistent pedersen hash (work in progress) ([#1945](#1945)) ([b4ad8f3](b4ad8f3)) * Goblin op queue transcript aggregation ([#2257](#2257)) ([b7f627a](b7f627a)) * Parallelization update for polynomials ([#2311](#2311)) ([922fc99](922fc99)) * Update to protogalaxy interfaces ([#2498](#2498)) ([9a3d265](9a3d265)) * YML manifest. Simplify YBP. ([#2353](#2353)) ([bf73bc3](bf73bc3)) ### Bug Fixes * **barretenberg:** Brittle headers caused error compiling for clang-16 on mainframe ([#2547](#2547)) ([cc909da](cc909da)) * Bb rebuild patterns ([#2499](#2499)) ([868cceb](868cceb)) * Fix working dir bug causing stdlib-tests to not run. ([#2495](#2495)) ([6b3402c](6b3402c)) * Nightly subrepo mirror ([#2520](#2520)) ([bedc8c8](bedc8c8)) ### Miscellaneous * BI build tweaks ([#2487](#2487)) ([f8b6548](f8b6548)) * Kill Turbo ([#2442](#2442)) ([c832825](c832825)) * Provide cross compile to cjs. ([#2566](#2566)) ([47d0d37](47d0d37)) * Recursion todos ([#2516](#2516)) ([2df107b](2df107b)) * Reenable some ultra honk composer tests ([#2417](#2417)) ([31f4c32](31f4c32)) * Remove composer keyword from stdlib ([#2418](#2418)) ([f3e7d91](f3e7d91)) * Remove Standard Honk ([#2435](#2435)) ([9b3ee45](9b3ee45)) ### Documentation * Fixed original minus underflow test ([#2472](#2472)) ([0cf4bdc](0cf4bdc)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.8.0</summary> ## [0.8.0](AztecProtocol/aztec-packages@aztec-packages-v0.7.10...aztec-packages-v0.8.0) (2023-10-03) ### ⚠ BREAKING CHANGES * Gates command should always return 8 bytes ([#2631](AztecProtocol/aztec-packages#2631)) ### Features * **1090:** Validate that some arrays are zero-padded on the right ([#2519](AztecProtocol/aztec-packages#2519)) ([0327b54](AztecProtocol/aztec-packages@0327b54)) * Add --wait/--no-wait flags to certain cli commands ([#2378](AztecProtocol/aztec-packages#2378)) ([57a2f10](AztecProtocol/aztec-packages@57a2f10)) * Add boxes to CI ([#2456](AztecProtocol/aztec-packages#2456)) ([a90a185](AztecProtocol/aztec-packages@a90a185)) * Add selector to call_context ([#2626](AztecProtocol/aztec-packages#2626)) ([8e317be](AztecProtocol/aztec-packages@8e317be)) * AddNote api ([#2535](AztecProtocol/aztec-packages#2535)) ([bb004f4](AztecProtocol/aztec-packages@bb004f4)) * **aztec_noir:** Abstract storage initialisation ([#2406](AztecProtocol/aztec-packages#2406)) ([974b037](AztecProtocol/aztec-packages@974b037)) * **aztec.js:** Support AddressLike parameters ([#2430](AztecProtocol/aztec-packages#2430)) ([5b5f139](AztecProtocol/aztec-packages@5b5f139)) * Barretenberg/crypto/blake3s supports compile-time hashing ([#2556](AztecProtocol/aztec-packages#2556)) ([da05dd7](AztecProtocol/aztec-packages@da05dd7)) * **bb:** Add `bb --version` command ([#2482](AztecProtocol/aztec-packages#2482)) ([530676f](AztecProtocol/aztec-packages@530676f)) * **bb:** Avoid initializing CRS for `bb info` command ([#2425](AztecProtocol/aztec-packages#2425)) ([d22c7b1](AztecProtocol/aztec-packages@d22c7b1)) * Benchmarks ([#2605](AztecProtocol/aztec-packages#2605)) ([37d9f9c](AztecProtocol/aztec-packages@37d9f9c)) * Bootstrap_docker skips build it can pull from ecr. ([#2545](AztecProtocol/aztec-packages#2545)) ([466a517](AztecProtocol/aztec-packages@466a517)) * **cli:** Reenable CLI version check ([#2441](AztecProtocol/aztec-packages#2441)) ([c6ddd23](AztecProtocol/aztec-packages@c6ddd23)) * Collapse interfaces for single implementation ([#2599](AztecProtocol/aztec-packages#2599)) ([860f340](AztecProtocol/aztec-packages@860f340)) * Consistent pedersen hash (work in progress) ([#1945](AztecProtocol/aztec-packages#1945)) ([b4ad8f3](AztecProtocol/aztec-packages@b4ad8f3)) * Deprecate assert_contains_and_remove ([#2594](AztecProtocol/aztec-packages#2594)) ([d225d56](AztecProtocol/aztec-packages@d225d56)) * **docs:** Allow raw code interpolation ([#2447](AztecProtocol/aztec-packages#2447)) ([e078ff4](AztecProtocol/aztec-packages@e078ff4)) * **docs:** Load current aztec version for aztec.nr dependencies in docs ([#2440](AztecProtocol/aztec-packages#2440)) ([63cf415](AztecProtocol/aztec-packages@63cf415)) * **docs:** Reenable typedoc for aztec-rpc and aztec.js ([#2452](AztecProtocol/aztec-packages#2452)) ([85e504c](AztecProtocol/aztec-packages@85e504c)), closes [#2045](AztecProtocol/aztec-packages#2045) [#2415](AztecProtocol/aztec-packages#2415) * **docs:** Use preprocessor syntax for including versions ([#2462](AztecProtocol/aztec-packages#2462)) ([7d315cd](AztecProtocol/aztec-packages@7d315cd)) * **docs:** Use released version of code snippets in docs ([#2439](AztecProtocol/aztec-packages#2439)) ([76fc2cf](AztecProtocol/aztec-packages@76fc2cf)) * **docs:** Warn if snippet is grabbed from master ([#2544](AztecProtocol/aztec-packages#2544)) ([36896e7](AztecProtocol/aztec-packages@36896e7)) * **e2e:** Public flow for uniswap ([#2596](AztecProtocol/aztec-packages#2596)) ([2f871ee](AztecProtocol/aztec-packages@2f871ee)) * Enforce that 0th nullifier is non-zero in private kernel circuit ([#2576](AztecProtocol/aztec-packages#2576)) ([458a4fe](AztecProtocol/aztec-packages@458a4fe)), closes [#1329](AztecProtocol/aztec-packages#1329) * Expose registry address in `getNodeInfo` ([#2478](AztecProtocol/aztec-packages#2478)) ([652bb04](AztecProtocol/aztec-packages@652bb04)) * Expose transaction data from AztecRPC ([#2469](AztecProtocol/aztec-packages#2469)) ([fc00553](AztecProtocol/aztec-packages@fc00553)) * Extend function documentation ([#2408](AztecProtocol/aztec-packages#2408)) ([6a75fd0](AztecProtocol/aztec-packages@6a75fd0)) * Goblin op queue transcript aggregation ([#2257](AztecProtocol/aztec-packages#2257)) ([b7f627a](AztecProtocol/aztec-packages@b7f627a)) * Json type by default in `JsonRpcServer` ([#2504](AztecProtocol/aztec-packages#2504)) ([be38fcc](AztecProtocol/aztec-packages@be38fcc)), closes [#2479](AztecProtocol/aztec-packages#2479) * Listing expected args in CLI ([#2423](AztecProtocol/aztec-packages#2423)) ([b2243ad](AztecProtocol/aztec-packages@b2243ad)) * Log topic and contract address in unencrypted logs ([#2595](AztecProtocol/aztec-packages#2595)) ([a5b763f](AztecProtocol/aztec-packages@a5b763f)), closes [#2580](AztecProtocol/aztec-packages#2580) [#2581](AztecProtocol/aztec-packages#2581) [#2586](AztecProtocol/aztec-packages#2586) [#2587](AztecProtocol/aztec-packages#2587) * Parallelization update for polynomials ([#2311](AztecProtocol/aztec-packages#2311)) ([922fc99](AztecProtocol/aztec-packages@922fc99)) * Restore latest block number ([#2474](AztecProtocol/aztec-packages#2474)) ([6dc2da7](AztecProtocol/aztec-packages@6dc2da7)) * Serialise L2Block to JSON ([#2496](AztecProtocol/aztec-packages#2496)) ([714c727](AztecProtocol/aztec-packages@714c727)) * Standalone Aztec Node and RPC Server ([#2522](AztecProtocol/aztec-packages#2522)) ([8e355bc](AztecProtocol/aztec-packages@8e355bc)) * Unbox empty box ([#2387](AztecProtocol/aztec-packages#2387)) ([3e3930c](AztecProtocol/aztec-packages@3e3930c)) * Uniswap private flow ([#2559](AztecProtocol/aztec-packages#2559)) ([39f3a91](AztecProtocol/aztec-packages@39f3a91)) * Update to protogalaxy interfaces ([#2498](AztecProtocol/aztec-packages#2498)) ([9a3d265](AztecProtocol/aztec-packages@9a3d265)) * YML manifest. Simplify YBP. ([#2353](AztecProtocol/aztec-packages#2353)) ([bf73bc3](AztecProtocol/aztec-packages@bf73bc3)) ### Bug Fixes * Add aztec/overview redirect ([#2424](AztecProtocol/aztec-packages#2424)) ([4e30dcd](AztecProtocol/aztec-packages@4e30dcd)) * Add redirects from old docs site urls to new site urls ([#2429](AztecProtocol/aztec-packages#2429)) ([18fe88a](AztecProtocol/aztec-packages@18fe88a)) * **barretenberg:** Brittle headers caused error compiling for clang-16 on mainframe ([#2547](AztecProtocol/aztec-packages#2547)) ([cc909da](AztecProtocol/aztec-packages@cc909da)) * Bb rebuild patterns ([#2499](AztecProtocol/aztec-packages#2499)) ([868cceb](AztecProtocol/aztec-packages@868cceb)) * Bootstrap.sh ([#2524](AztecProtocol/aztec-packages#2524)) ([bb1fb90](AztecProtocol/aztec-packages@bb1fb90)) * Box injected sandbox tag ([#2555](AztecProtocol/aztec-packages#2555)) ([069bdc7](AztecProtocol/aztec-packages@069bdc7)) * **build-system:** Don't wait 30s+ always ([#2494](AztecProtocol/aztec-packages#2494)) ([89d700d](AztecProtocol/aztec-packages@89d700d)) * **build:** CI fixes from previous merges ([#2579](AztecProtocol/aztec-packages#2579)) ([a9e5d05](AztecProtocol/aztec-packages@a9e5d05)) * Bump foundry version ([#2553](AztecProtocol/aztec-packages#2553)) ([0dde3d5](AztecProtocol/aztec-packages@0dde3d5)) * Call public fn in contract constructor ([#2549](AztecProtocol/aztec-packages#2549)) ([14ab6d6](AztecProtocol/aztec-packages@14ab6d6)) * Canary image build ([#2480](AztecProtocol/aztec-packages#2480)) ([6366be5](AztecProtocol/aztec-packages@6366be5)) * Cli type check arguments and options ([#2571](AztecProtocol/aztec-packages#2571)) ([ecffc36](AztecProtocol/aztec-packages@ecffc36)) * **cli:** Typos in cli output ([#2428](AztecProtocol/aztec-packages#2428)) ([08acf90](AztecProtocol/aztec-packages@08acf90)) * Docs: Token tutorial, update links and add note on imports ([#2604](AztecProtocol/aztec-packages#2604)) ([003d801](AztecProtocol/aztec-packages@003d801)) * **docs:** 'command not found: export' ([#2443](AztecProtocol/aztec-packages#2443)) ([f56aa02](AztecProtocol/aztec-packages@f56aa02)) * **docs:** Docs correction ([#2437](AztecProtocol/aztec-packages#2437)) ([6499248](AztecProtocol/aztec-packages@6499248)) * **docs:** Fix imports in token contract tutorial ([#2432](AztecProtocol/aztec-packages#2432)) ([34ed663](AztecProtocol/aztec-packages@34ed663)) * Drop txs with duplicate nullifiers from the same block ([#2511](AztecProtocol/aztec-packages#2511)) ([d9ca1d8](AztecProtocol/aztec-packages@d9ca1d8)), closes [#2502](AztecProtocol/aztec-packages#2502) * E2e browser tests ([#2531](AztecProtocol/aztec-packages#2531)) ([adf2b1e](AztecProtocol/aztec-packages@adf2b1e)), closes [#2527](AztecProtocol/aztec-packages#2527) * Fix working dir bug causing stdlib-tests to not run. ([#2495](AztecProtocol/aztec-packages#2495)) ([6b3402c](AztecProtocol/aztec-packages@6b3402c)) * Foundry ([#2611](AztecProtocol/aztec-packages#2611)) ([9830fbf](AztecProtocol/aztec-packages@9830fbf)) * Gates command should always return 8 bytes ([#2631](AztecProtocol/aztec-packages#2631)) ([9668165](AztecProtocol/aztec-packages@9668165)) * JSON-RPC server returns spec-compliant errors ([#2590](AztecProtocol/aztec-packages#2590)) ([5eafa3d](AztecProtocol/aztec-packages@5eafa3d)) * Loading salt into buffer in the cli ([#2467](AztecProtocol/aztec-packages#2467)) ([753ac49](AztecProtocol/aztec-packages@753ac49)) * **master:** Remove secret_hash ref ([#2617](AztecProtocol/aztec-packages#2617)) ([1073bcd](AztecProtocol/aztec-packages@1073bcd)) * Nightly subrepo mirror ([#2520](AztecProtocol/aztec-packages#2520)) ([bedc8c8](AztecProtocol/aztec-packages@bedc8c8)) * Prevent race conditions around data pulled from L1 ([#2577](AztecProtocol/aztec-packages#2577)) ([defea83](AztecProtocol/aztec-packages@defea83)) * Readd docs after ci refactor. ([#2514](AztecProtocol/aztec-packages#2514)) ([1eb1a3c](AztecProtocol/aztec-packages@1eb1a3c)) * Remove "standard" from references to token contracts ([#2533](AztecProtocol/aztec-packages#2533)) ([f931d56](AztecProtocol/aztec-packages@f931d56)) * Try fix boxes-blank ([#2539](AztecProtocol/aztec-packages#2539)) ([87b8080](AztecProtocol/aztec-packages@87b8080)) * Try to fix publish bb ([#2529](AztecProtocol/aztec-packages#2529)) ([7c623c4](AztecProtocol/aztec-packages@7c623c4)) * Try to fix publish-bb.yml ([#2523](AztecProtocol/aztec-packages#2523)) ([2f6e9bd](AztecProtocol/aztec-packages@2f6e9bd)) * Use #import_code in Token contract tutorial ([#2438](AztecProtocol/aztec-packages#2438)) ([b58cfb5](AztecProtocol/aztec-packages@b58cfb5)) ### Miscellaneous * `computeContractAddress` as `computeCompleteAddress` ([#1876](AztecProtocol/aztec-packages#1876)) ([4d95b44](AztecProtocol/aztec-packages@4d95b44)), closes [#1873](AztecProtocol/aztec-packages#1873) * Add instructions on circleci session for debugging ([#2503](AztecProtocol/aztec-packages#2503)) ([a4197e7](AztecProtocol/aztec-packages@a4197e7)) * Add output saying how to get the right noir version ([#2622](AztecProtocol/aztec-packages#2622)) ([10b30e0](AztecProtocol/aztec-packages@10b30e0)) * Aztec-node json-rpc ([#2444](AztecProtocol/aztec-packages#2444)) ([04efee1](AztecProtocol/aztec-packages@04efee1)) * BI build tweaks ([#2487](AztecProtocol/aztec-packages#2487)) ([f8b6548](AztecProtocol/aztec-packages@f8b6548)) * Check tree roots in world state sync ([#2543](AztecProtocol/aztec-packages#2543)) ([314e8a0](AztecProtocol/aztec-packages@314e8a0)) * **circuits:** 2612 - add validation in native private kernel circuit of arrays in accumulated data ([#2614](AztecProtocol/aztec-packages#2614)) ([f1fe059](AztecProtocol/aztec-packages@f1fe059)) * **circuits:** Remove obsolete comments in native private kernel circuit ([#2570](AztecProtocol/aztec-packages#2570)) ([a6b6c7b](AztecProtocol/aztec-packages@a6b6c7b)) * **contract_deployment.md:** Don't require main edit ([#2449](AztecProtocol/aztec-packages#2449)) ([16a3d9c](AztecProtocol/aztec-packages@16a3d9c)) * **deps:** Bump get-func-name from 2.0.0 to 2.0.2 in /yarn-project ([#2630](AztecProtocol/aztec-packages#2630)) ([5cebf18](AztecProtocol/aztec-packages@5cebf18)) * **deps:** Bump ua-parser-js from 0.7.32 to 0.7.36 in /docs ([#2629](AztecProtocol/aztec-packages#2629)) ([b2c87c2](AztecProtocol/aztec-packages@b2c87c2)) * Disable pushing/pulling for layer caching in build. ([#2517](AztecProtocol/aztec-packages#2517)) ([51352ae](AztecProtocol/aztec-packages@51352ae)) * **docs:** Fix tutorial in dapp development ([#2421](AztecProtocol/aztec-packages#2421)) ([027530f](AztecProtocol/aztec-packages@027530f)) * **docs:** Incorporate docs feedback ([#2434](AztecProtocol/aztec-packages#2434)) ([4992d5b](AztecProtocol/aztec-packages@4992d5b)) * Embed yq in repo to avoid network hiccups. ([#2560](AztecProtocol/aztec-packages#2560)) ([84f207f](AztecProtocol/aztec-packages@84f207f)) * Fix box noir versioning ([#2578](AztecProtocol/aztec-packages#2578)) ([6eaf0c7](AztecProtocol/aztec-packages@6eaf0c7)) * Fixing foundry version ([#2528](AztecProtocol/aztec-packages#2528)) ([3af0753](AztecProtocol/aztec-packages@3af0753)) * Kill Turbo ([#2442](AztecProtocol/aztec-packages#2442)) ([c832825](AztecProtocol/aztec-packages@c832825)) * Move hash utils to aztec-nr ([#2583](AztecProtocol/aztec-packages#2583)) ([78bd1a3](AztecProtocol/aztec-packages@78bd1a3)) * No private key account state ([#2491](AztecProtocol/aztec-packages#2491)) ([5813fb3](AztecProtocol/aztec-packages@5813fb3)) * Provide cross compile to cjs. ([#2566](AztecProtocol/aztec-packages#2566)) ([47d0d37](AztecProtocol/aztec-packages@47d0d37)) * Recursion todos ([#2516](AztecProtocol/aztec-packages#2516)) ([2df107b](AztecProtocol/aztec-packages@2df107b)) * Reenable some ultra honk composer tests ([#2417](AztecProtocol/aztec-packages#2417)) ([31f4c32](AztecProtocol/aztec-packages@31f4c32)) * Refactor e2e test teardown ([#2513](AztecProtocol/aztec-packages#2513)) ([2e43248](AztecProtocol/aztec-packages@2e43248)) * Remove `BarretenbergBinderSync` import from typescript bindgen file ([#2607](AztecProtocol/aztec-packages#2607)) ([43af1a3](AztecProtocol/aztec-packages@43af1a3)) * Remove build system tainting now we have ci cmds in comments. ([#2589](AztecProtocol/aztec-packages#2589)) ([2040335](AztecProtocol/aztec-packages@2040335)) * Remove composer keyword from stdlib ([#2418](AztecProtocol/aztec-packages#2418)) ([f3e7d91](AztecProtocol/aztec-packages@f3e7d91)) * Remove debug log in world state sync ([#2613](AztecProtocol/aztec-packages#2613)) ([177f468](AztecProtocol/aztec-packages@177f468)) * Remove Standard Honk ([#2435](AztecProtocol/aztec-packages#2435)) ([9b3ee45](AztecProtocol/aztec-packages@9b3ee45)) * Remove unneeded dockerfiles. ([#2588](AztecProtocol/aztec-packages#2588)) ([d6f903d](AztecProtocol/aztec-packages@d6f903d)) * Rename all the occurrences of `Aztec RPC` ([#2552](AztecProtocol/aztec-packages#2552)) ([8cc4f69](AztecProtocol/aztec-packages@8cc4f69)), closes [#2451](AztecProtocol/aztec-packages#2451) * Renaming `@aztec/aztec-rpc` package as `@aztec/pxe` ([#2538](AztecProtocol/aztec-packages#2538)) ([0dd70aa](AztecProtocol/aztec-packages@0dd70aa)) * Resuscitate private kernel tests related to call stack item check ([#2558](AztecProtocol/aztec-packages#2558)) ([9e938fc](AztecProtocol/aztec-packages@9e938fc)) * Run formatting:fix for box lint ([#2479](AztecProtocol/aztec-packages#2479)) ([3995de9](AztecProtocol/aztec-packages@3995de9)) * Run quick-start guide in CI ([#2413](AztecProtocol/aztec-packages#2413)) ([5f43715](AztecProtocol/aztec-packages@5f43715)) * Simulator ([#2534](AztecProtocol/aztec-packages#2534)) ([a26198e](AztecProtocol/aztec-packages@a26198e)) * Switch to upstream docusaurus-plugin-typedoc ([#2557](AztecProtocol/aztec-packages#2557)) ([fdf5fce](AztecProtocol/aztec-packages@fdf5fce)) * Token contract storage cleanup ([#2536](AztecProtocol/aztec-packages#2536)) ([0b62207](AztecProtocol/aztec-packages@0b62207)) * Typo ([#2546](AztecProtocol/aztec-packages#2546)) ([8656a3b](AztecProtocol/aztec-packages@8656a3b)) * Unskip test and fix params ([#2454](AztecProtocol/aztec-packages#2454)) ([e484c5f](AztecProtocol/aztec-packages@e484c5f)) * Update private token box ([#2385](AztecProtocol/aztec-packages#2385)) ([b730196](AztecProtocol/aztec-packages@b730196)) * Use US spelling ([#2475](AztecProtocol/aztec-packages#2475)) ([2fe8f5e](AztecProtocol/aztec-packages@2fe8f5e)), closes [#1934](AztecProtocol/aztec-packages#1934) ### Documentation * Capitalizing x in pxe ([#2564](AztecProtocol/aztec-packages#2564)) ([2927cf1](AztecProtocol/aztec-packages@2927cf1)) * Common contract errors ([#2471](AztecProtocol/aztec-packages#2471)) ([a8aec70](AztecProtocol/aztec-packages@a8aec70)), closes [#2468](AztecProtocol/aztec-packages#2468) * Fixed original minus underflow test ([#2472](AztecProtocol/aztec-packages#2472)) ([0cf4bdc](AztecProtocol/aztec-packages@0cf4bdc)) * Including sandbox diagrams in the sandbox section ([#2573](AztecProtocol/aztec-packages#2573)) ([2fa143e](AztecProtocol/aztec-packages@2fa143e)) * Initial storage cleanup ([#2433](AztecProtocol/aztec-packages#2433)) ([d833483](AztecProtocol/aztec-packages@d833483)) * Misc docs changes ([#2416](AztecProtocol/aztec-packages#2416)) ([0e789c7](AztecProtocol/aztec-packages@0e789c7)) * More `RPC Server` --> `PXE` naming fixes ([#2574](AztecProtocol/aztec-packages#2574)) ([b33eea5](AztecProtocol/aztec-packages@b33eea5)) * Portal messaging ([#2419](AztecProtocol/aztec-packages#2419)) ([7979bb9](AztecProtocol/aztec-packages@7979bb9)) * Update instructions ([#2297](AztecProtocol/aztec-packages#2297)) ([ab612df](AztecProtocol/aztec-packages@ab612df)), closes [#1827](AztecProtocol/aztec-packages#1827) * Update sidebar + embed youtube video ([#2470](AztecProtocol/aztec-packages#2470)) ([a779d11](AztecProtocol/aztec-packages@a779d11)) </details> <details><summary>barretenberg.js: 0.8.0</summary> ## [0.8.0](AztecProtocol/aztec-packages@barretenberg.js-v0.7.10...barretenberg.js-v0.8.0) (2023-10-03) ### ⚠ BREAKING CHANGES * Gates command should always return 8 bytes ([#2631](AztecProtocol/aztec-packages#2631)) ### Bug Fixes * Gates command should always return 8 bytes ([#2631](AztecProtocol/aztec-packages#2631)) ([9668165](AztecProtocol/aztec-packages@9668165)) ### Miscellaneous * Provide cross compile to cjs. ([#2566](AztecProtocol/aztec-packages#2566)) ([47d0d37](AztecProtocol/aztec-packages@47d0d37)) * Remove `BarretenbergBinderSync` import from typescript bindgen file ([#2607](AztecProtocol/aztec-packages#2607)) ([43af1a3](AztecProtocol/aztec-packages@43af1a3)) * Typo ([#2546](AztecProtocol/aztec-packages#2546)) ([8656a3b](AztecProtocol/aztec-packages@8656a3b)) </details> <details><summary>barretenberg: 0.8.0</summary> ## [0.8.0](AztecProtocol/aztec-packages@barretenberg-v0.7.10...barretenberg-v0.8.0) (2023-10-03) ### Features * Barretenberg/crypto/blake3s supports compile-time hashing ([#2556](AztecProtocol/aztec-packages#2556)) ([da05dd7](AztecProtocol/aztec-packages@da05dd7)) * **bb:** Add `bb --version` command ([#2482](AztecProtocol/aztec-packages#2482)) ([530676f](AztecProtocol/aztec-packages@530676f)) * **bb:** Avoid initializing CRS for `bb info` command ([#2425](AztecProtocol/aztec-packages#2425)) ([d22c7b1](AztecProtocol/aztec-packages@d22c7b1)) * Consistent pedersen hash (work in progress) ([#1945](AztecProtocol/aztec-packages#1945)) ([b4ad8f3](AztecProtocol/aztec-packages@b4ad8f3)) * Goblin op queue transcript aggregation ([#2257](AztecProtocol/aztec-packages#2257)) ([b7f627a](AztecProtocol/aztec-packages@b7f627a)) * Parallelization update for polynomials ([#2311](AztecProtocol/aztec-packages#2311)) ([922fc99](AztecProtocol/aztec-packages@922fc99)) * Update to protogalaxy interfaces ([#2498](AztecProtocol/aztec-packages#2498)) ([9a3d265](AztecProtocol/aztec-packages@9a3d265)) * YML manifest. Simplify YBP. ([#2353](AztecProtocol/aztec-packages#2353)) ([bf73bc3](AztecProtocol/aztec-packages@bf73bc3)) ### Bug Fixes * **barretenberg:** Brittle headers caused error compiling for clang-16 on mainframe ([#2547](AztecProtocol/aztec-packages#2547)) ([cc909da](AztecProtocol/aztec-packages@cc909da)) * Bb rebuild patterns ([#2499](AztecProtocol/aztec-packages#2499)) ([868cceb](AztecProtocol/aztec-packages@868cceb)) * Fix working dir bug causing stdlib-tests to not run. ([#2495](AztecProtocol/aztec-packages#2495)) ([6b3402c](AztecProtocol/aztec-packages@6b3402c)) * Nightly subrepo mirror ([#2520](AztecProtocol/aztec-packages#2520)) ([bedc8c8](AztecProtocol/aztec-packages@bedc8c8)) ### Miscellaneous * BI build tweaks ([#2487](AztecProtocol/aztec-packages#2487)) ([f8b6548](AztecProtocol/aztec-packages@f8b6548)) * Kill Turbo ([#2442](AztecProtocol/aztec-packages#2442)) ([c832825](AztecProtocol/aztec-packages@c832825)) * Provide cross compile to cjs. ([#2566](AztecProtocol/aztec-packages#2566)) ([47d0d37](AztecProtocol/aztec-packages@47d0d37)) * Recursion todos ([#2516](AztecProtocol/aztec-packages#2516)) ([2df107b](AztecProtocol/aztec-packages@2df107b)) * Reenable some ultra honk composer tests ([#2417](AztecProtocol/aztec-packages#2417)) ([31f4c32](AztecProtocol/aztec-packages@31f4c32)) * Remove composer keyword from stdlib ([#2418](AztecProtocol/aztec-packages#2418)) ([f3e7d91](AztecProtocol/aztec-packages@f3e7d91)) * Remove Standard Honk ([#2435](AztecProtocol/aztec-packages#2435)) ([9b3ee45](AztecProtocol/aztec-packages@9b3ee45)) ### Documentation * Fixed original minus underflow test ([#2472](AztecProtocol/aztec-packages#2472)) ([0cf4bdc](AztecProtocol/aztec-packages@0cf4bdc)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.8.0</summary> ## [0.8.0](aztec-packages-v0.7.10...aztec-packages-v0.8.0) (2023-10-03) ### ⚠ BREAKING CHANGES * Gates command should always return 8 bytes ([#2631](#2631)) ### Features * **1090:** Validate that some arrays are zero-padded on the right ([#2519](#2519)) ([0327b54](0327b54)) * Add --wait/--no-wait flags to certain cli commands ([#2378](#2378)) ([57a2f10](57a2f10)) * Add boxes to CI ([#2456](#2456)) ([a90a185](a90a185)) * Add selector to call_context ([#2626](#2626)) ([8e317be](8e317be)) * AddNote api ([#2535](#2535)) ([bb004f4](bb004f4)) * **aztec_noir:** Abstract storage initialisation ([#2406](#2406)) ([974b037](974b037)) * **aztec.js:** Support AddressLike parameters ([#2430](#2430)) ([5b5f139](5b5f139)) * Barretenberg/crypto/blake3s supports compile-time hashing ([#2556](#2556)) ([da05dd7](da05dd7)) * **bb:** Add `bb --version` command ([#2482](#2482)) ([530676f](530676f)) * **bb:** Avoid initializing CRS for `bb info` command ([#2425](#2425)) ([d22c7b1](d22c7b1)) * Benchmarks ([#2605](#2605)) ([37d9f9c](37d9f9c)) * Bootstrap_docker skips build it can pull from ecr. ([#2545](#2545)) ([466a517](466a517)) * **cli:** Reenable CLI version check ([#2441](#2441)) ([c6ddd23](c6ddd23)) * Collapse interfaces for single implementation ([#2599](#2599)) ([860f340](860f340)) * Consistent pedersen hash (work in progress) ([#1945](#1945)) ([b4ad8f3](b4ad8f3)) * Deprecate assert_contains_and_remove ([#2594](#2594)) ([d225d56](d225d56)) * **docs:** Allow raw code interpolation ([#2447](#2447)) ([e078ff4](e078ff4)) * **docs:** Load current aztec version for aztec.nr dependencies in docs ([#2440](#2440)) ([63cf415](63cf415)) * **docs:** Reenable typedoc for aztec-rpc and aztec.js ([#2452](#2452)) ([85e504c](85e504c)), closes [#2045](#2045) [#2415](#2415) * **docs:** Use preprocessor syntax for including versions ([#2462](#2462)) ([7d315cd](7d315cd)) * **docs:** Use released version of code snippets in docs ([#2439](#2439)) ([76fc2cf](76fc2cf)) * **docs:** Warn if snippet is grabbed from master ([#2544](#2544)) ([36896e7](36896e7)) * **e2e:** Public flow for uniswap ([#2596](#2596)) ([2f871ee](2f871ee)) * Enforce that 0th nullifier is non-zero in private kernel circuit ([#2576](#2576)) ([458a4fe](458a4fe)), closes [#1329](#1329) * Expose registry address in `getNodeInfo` ([#2478](#2478)) ([652bb04](652bb04)) * Expose transaction data from AztecRPC ([#2469](#2469)) ([fc00553](fc00553)) * Extend function documentation ([#2408](#2408)) ([6a75fd0](6a75fd0)) * Goblin op queue transcript aggregation ([#2257](#2257)) ([b7f627a](b7f627a)) * Json type by default in `JsonRpcServer` ([#2504](#2504)) ([be38fcc](be38fcc)), closes [#2479](#2479) * Listing expected args in CLI ([#2423](#2423)) ([b2243ad](b2243ad)) * Log topic and contract address in unencrypted logs ([#2595](#2595)) ([a5b763f](a5b763f)), closes [#2580](#2580) [#2581](#2581) [#2586](#2586) [#2587](#2587) * Parallelization update for polynomials ([#2311](#2311)) ([922fc99](922fc99)) * Restore latest block number ([#2474](#2474)) ([6dc2da7](6dc2da7)) * Serialise L2Block to JSON ([#2496](#2496)) ([714c727](714c727)) * Standalone Aztec Node and RPC Server ([#2522](#2522)) ([8e355bc](8e355bc)) * Unbox empty box ([#2387](#2387)) ([3e3930c](3e3930c)) * Uniswap private flow ([#2559](#2559)) ([39f3a91](39f3a91)) * Update to protogalaxy interfaces ([#2498](#2498)) ([9a3d265](9a3d265)) * YML manifest. Simplify YBP. ([#2353](#2353)) ([bf73bc3](bf73bc3)) ### Bug Fixes * Add aztec/overview redirect ([#2424](#2424)) ([4e30dcd](4e30dcd)) * Add redirects from old docs site urls to new site urls ([#2429](#2429)) ([18fe88a](18fe88a)) * **barretenberg:** Brittle headers caused error compiling for clang-16 on mainframe ([#2547](#2547)) ([cc909da](cc909da)) * Bb rebuild patterns ([#2499](#2499)) ([868cceb](868cceb)) * Bootstrap.sh ([#2524](#2524)) ([bb1fb90](bb1fb90)) * Box injected sandbox tag ([#2555](#2555)) ([069bdc7](069bdc7)) * **build-system:** Don't wait 30s+ always ([#2494](#2494)) ([89d700d](89d700d)) * **build:** CI fixes from previous merges ([#2579](#2579)) ([a9e5d05](a9e5d05)) * Bump foundry version ([#2553](#2553)) ([0dde3d5](0dde3d5)) * Call public fn in contract constructor ([#2549](#2549)) ([14ab6d6](14ab6d6)) * Canary image build ([#2480](#2480)) ([6366be5](6366be5)) * Cli type check arguments and options ([#2571](#2571)) ([ecffc36](ecffc36)) * **cli:** Typos in cli output ([#2428](#2428)) ([08acf90](08acf90)) * Docs: Token tutorial, update links and add note on imports ([#2604](#2604)) ([003d801](003d801)) * **docs:** 'command not found: export' ([#2443](#2443)) ([f56aa02](f56aa02)) * **docs:** Docs correction ([#2437](#2437)) ([6499248](6499248)) * **docs:** Fix imports in token contract tutorial ([#2432](#2432)) ([34ed663](34ed663)) * Drop txs with duplicate nullifiers from the same block ([#2511](#2511)) ([d9ca1d8](d9ca1d8)), closes [#2502](#2502) * E2e browser tests ([#2531](#2531)) ([adf2b1e](adf2b1e)), closes [#2527](#2527) * Fix working dir bug causing stdlib-tests to not run. ([#2495](#2495)) ([6b3402c](6b3402c)) * Foundry ([#2611](#2611)) ([9830fbf](9830fbf)) * Gates command should always return 8 bytes ([#2631](#2631)) ([9668165](9668165)) * JSON-RPC server returns spec-compliant errors ([#2590](#2590)) ([5eafa3d](5eafa3d)) * Loading salt into buffer in the cli ([#2467](#2467)) ([753ac49](753ac49)) * **master:** Remove secret_hash ref ([#2617](#2617)) ([1073bcd](1073bcd)) * Nightly subrepo mirror ([#2520](#2520)) ([bedc8c8](bedc8c8)) * Prevent race conditions around data pulled from L1 ([#2577](#2577)) ([defea83](defea83)) * Readd docs after ci refactor. ([#2514](#2514)) ([1eb1a3c](1eb1a3c)) * Remove "standard" from references to token contracts ([#2533](#2533)) ([f931d56](f931d56)) * Try fix boxes-blank ([#2539](#2539)) ([87b8080](87b8080)) * Try to fix publish bb ([#2529](#2529)) ([7c623c4](7c623c4)) * Try to fix publish-bb.yml ([#2523](#2523)) ([2f6e9bd](2f6e9bd)) * Use #import_code in Token contract tutorial ([#2438](#2438)) ([b58cfb5](b58cfb5)) ### Miscellaneous * `computeContractAddress` as `computeCompleteAddress` ([#1876](#1876)) ([4d95b44](4d95b44)), closes [#1873](#1873) * Add instructions on circleci session for debugging ([#2503](#2503)) ([a4197e7](a4197e7)) * Add output saying how to get the right noir version ([#2622](#2622)) ([10b30e0](10b30e0)) * Aztec-node json-rpc ([#2444](#2444)) ([04efee1](04efee1)) * BI build tweaks ([#2487](#2487)) ([f8b6548](f8b6548)) * Check tree roots in world state sync ([#2543](#2543)) ([314e8a0](314e8a0)) * **circuits:** 2612 - add validation in native private kernel circuit of arrays in accumulated data ([#2614](#2614)) ([f1fe059](f1fe059)) * **circuits:** Remove obsolete comments in native private kernel circuit ([#2570](#2570)) ([a6b6c7b](a6b6c7b)) * **contract_deployment.md:** Don't require main edit ([#2449](#2449)) ([16a3d9c](16a3d9c)) * **deps:** Bump get-func-name from 2.0.0 to 2.0.2 in /yarn-project ([#2630](#2630)) ([5cebf18](5cebf18)) * **deps:** Bump ua-parser-js from 0.7.32 to 0.7.36 in /docs ([#2629](#2629)) ([b2c87c2](b2c87c2)) * Disable pushing/pulling for layer caching in build. ([#2517](#2517)) ([51352ae](51352ae)) * **docs:** Fix tutorial in dapp development ([#2421](#2421)) ([027530f](027530f)) * **docs:** Incorporate docs feedback ([#2434](#2434)) ([4992d5b](4992d5b)) * Embed yq in repo to avoid network hiccups. ([#2560](#2560)) ([84f207f](84f207f)) * Fix box noir versioning ([#2578](#2578)) ([6eaf0c7](6eaf0c7)) * Fixing foundry version ([#2528](#2528)) ([3af0753](3af0753)) * Kill Turbo ([#2442](#2442)) ([c832825](c832825)) * Move hash utils to aztec-nr ([#2583](#2583)) ([78bd1a3](78bd1a3)) * No private key account state ([#2491](#2491)) ([5813fb3](5813fb3)) * Provide cross compile to cjs. ([#2566](#2566)) ([47d0d37](47d0d37)) * Recursion todos ([#2516](#2516)) ([2df107b](2df107b)) * Reenable some ultra honk composer tests ([#2417](#2417)) ([31f4c32](31f4c32)) * Refactor e2e test teardown ([#2513](#2513)) ([2e43248](2e43248)) * Remove `BarretenbergBinderSync` import from typescript bindgen file ([#2607](#2607)) ([43af1a3](43af1a3)) * Remove build system tainting now we have ci cmds in comments. ([#2589](#2589)) ([2040335](2040335)) * Remove composer keyword from stdlib ([#2418](#2418)) ([f3e7d91](f3e7d91)) * Remove debug log in world state sync ([#2613](#2613)) ([177f468](177f468)) * Remove Standard Honk ([#2435](#2435)) ([9b3ee45](9b3ee45)) * Remove unneeded dockerfiles. ([#2588](#2588)) ([d6f903d](d6f903d)) * Rename all the occurrences of `Aztec RPC` ([#2552](#2552)) ([8cc4f69](8cc4f69)), closes [#2451](#2451) * Renaming `@aztec/aztec-rpc` package as `@aztec/pxe` ([#2538](#2538)) ([0dd70aa](0dd70aa)) * Resuscitate private kernel tests related to call stack item check ([#2558](#2558)) ([9e938fc](9e938fc)) * Run formatting:fix for box lint ([#2479](#2479)) ([3995de9](3995de9)) * Run quick-start guide in CI ([#2413](#2413)) ([5f43715](5f43715)) * Simulator ([#2534](#2534)) ([a26198e](a26198e)) * Switch to upstream docusaurus-plugin-typedoc ([#2557](#2557)) ([fdf5fce](fdf5fce)) * Token contract storage cleanup ([#2536](#2536)) ([0b62207](0b62207)) * Typo ([#2546](#2546)) ([8656a3b](8656a3b)) * Unskip test and fix params ([#2454](#2454)) ([e484c5f](e484c5f)) * Update private token box ([#2385](#2385)) ([b730196](b730196)) * Use US spelling ([#2475](#2475)) ([2fe8f5e](2fe8f5e)), closes [#1934](#1934) ### Documentation * Capitalizing x in pxe ([#2564](#2564)) ([2927cf1](2927cf1)) * Common contract errors ([#2471](#2471)) ([a8aec70](a8aec70)), closes [#2468](#2468) * Fixed original minus underflow test ([#2472](#2472)) ([0cf4bdc](0cf4bdc)) * Including sandbox diagrams in the sandbox section ([#2573](#2573)) ([2fa143e](2fa143e)) * Initial storage cleanup ([#2433](#2433)) ([d833483](d833483)) * Misc docs changes ([#2416](#2416)) ([0e789c7](0e789c7)) * More `RPC Server` --> `PXE` naming fixes ([#2574](#2574)) ([b33eea5](b33eea5)) * Portal messaging ([#2419](#2419)) ([7979bb9](7979bb9)) * Update instructions ([#2297](#2297)) ([ab612df](ab612df)), closes [#1827](#1827) * Update sidebar + embed youtube video ([#2470](#2470)) ([a779d11](a779d11)) </details> <details><summary>barretenberg.js: 0.8.0</summary> ## [0.8.0](barretenberg.js-v0.7.10...barretenberg.js-v0.8.0) (2023-10-03) ### ⚠ BREAKING CHANGES * Gates command should always return 8 bytes ([#2631](#2631)) ### Bug Fixes * Gates command should always return 8 bytes ([#2631](#2631)) ([9668165](9668165)) ### Miscellaneous * Provide cross compile to cjs. ([#2566](#2566)) ([47d0d37](47d0d37)) * Remove `BarretenbergBinderSync` import from typescript bindgen file ([#2607](#2607)) ([43af1a3](43af1a3)) * Typo ([#2546](#2546)) ([8656a3b](8656a3b)) </details> <details><summary>barretenberg: 0.8.0</summary> ## [0.8.0](barretenberg-v0.7.10...barretenberg-v0.8.0) (2023-10-03) ### Features * Barretenberg/crypto/blake3s supports compile-time hashing ([#2556](#2556)) ([da05dd7](da05dd7)) * **bb:** Add `bb --version` command ([#2482](#2482)) ([530676f](530676f)) * **bb:** Avoid initializing CRS for `bb info` command ([#2425](#2425)) ([d22c7b1](d22c7b1)) * Consistent pedersen hash (work in progress) ([#1945](#1945)) ([b4ad8f3](b4ad8f3)) * Goblin op queue transcript aggregation ([#2257](#2257)) ([b7f627a](b7f627a)) * Parallelization update for polynomials ([#2311](#2311)) ([922fc99](922fc99)) * Update to protogalaxy interfaces ([#2498](#2498)) ([9a3d265](9a3d265)) * YML manifest. Simplify YBP. ([#2353](#2353)) ([bf73bc3](bf73bc3)) ### Bug Fixes * **barretenberg:** Brittle headers caused error compiling for clang-16 on mainframe ([#2547](#2547)) ([cc909da](cc909da)) * Bb rebuild patterns ([#2499](#2499)) ([868cceb](868cceb)) * Fix working dir bug causing stdlib-tests to not run. ([#2495](#2495)) ([6b3402c](6b3402c)) * Nightly subrepo mirror ([#2520](#2520)) ([bedc8c8](bedc8c8)) ### Miscellaneous * BI build tweaks ([#2487](#2487)) ([f8b6548](f8b6548)) * Kill Turbo ([#2442](#2442)) ([c832825](c832825)) * Provide cross compile to cjs. ([#2566](#2566)) ([47d0d37](47d0d37)) * Recursion todos ([#2516](#2516)) ([2df107b](2df107b)) * Reenable some ultra honk composer tests ([#2417](#2417)) ([31f4c32](31f4c32)) * Remove composer keyword from stdlib ([#2418](#2418)) ([f3e7d91](f3e7d91)) * Remove Standard Honk ([#2435](#2435)) ([9b3ee45](9b3ee45)) ### Documentation * Fixed original minus underflow test ([#2472](#2472)) ([0cf4bdc](0cf4bdc)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Adds an ECC op queue aggregation protocol to the Goblin proof system. I.e. given a previous aggregate transcript$T_{i-1}$ and the contribution $t_i$ from the circuit being proven, establishes that $T_i = T_{i-1} + X^{M_{i-1}}t_i$ , where $M_{i-1}$ is the size of the aggregate transcript at stage $i-1$ . (Note: each $T_i$ actually represents 4 polynomials, one for each column of the op queue. Similarly for the others).
The protocol is encapsulated into a new prover "round" in between Gemini and Shplonk. The polynomials$T_i, T_{i-1}, t_i^{shift}$ are committed to as univariates, and their univariate opening proofs are appended to the set of claims output from Gemini to be batched together in Shplonk. The verifier confirms the relationship $T_i = T_{i-1} + X^{M_{i-1}}t_i$ via a Shwartz-Zippel check at a random challenge. This logic has been added to both the native and recursive verifiers (
UltraVerifier_
andUltraRecursiveVerifier_
).Some loose ends at this work does not address:
Other notable changes in this PR:
UltraCircuitBuilder
and moved into the newGoblinUltraCircuitBuilder
(defined via inheritance from the former). This facilitates idiomatic differentiation of the two arithmetizations in the stdlib and also isolates all goblin builder functionality in one place. (This was also necessary to avoid breaking many tests that were hard coded with assumptions about the number of constant variables added in the builder composer).BuilderType
which specifies the arithmetization of the circuit. For example, we instantiateUltraRecuirsiveVerifier
withflavor::GoblinUltra<UltraCircuitBuilder>
to obtain a circuit that verifies a Goblin Ultra proof with a conventional Ultra arithmetization.use_goblin
flag from recursive verifier classes. This is now achieved via aIsGoblinBuilder<>
check now that Goblin has its own builder.Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.