-
Notifications
You must be signed in to change notification settings - Fork 268
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: improved ClientIvc #6429
feat: improved ClientIvc #6429
Conversation
Benchmark resultsMetrics with a significant change:
Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. L2 block published to L1Each column represents the number of txs on an L2 block published to L1.
L2 chain processingEach column represents the number of blocks on the L2 chain where each block has 16 txs.
Circuits statsStats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.
Stats on running time collected for app circuits
Tree insertion statsThe duration to insert a fixed batch of leaves into each tree type.
MiscellaneousTransaction sizes based on how many contract classes are registered in the tx.
Transaction size based on fee payment method | Metric | | Transaction processing duration by data writes.
|
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
*/ | ||
void ClientIVC::precompute_folding_verification_keys() | ||
std::vector<std::shared_ptr<ClientIVC::VerificationKey>> ClientIVC::precompute_folding_verification_keys( | ||
std::vector<ClientCircuit> circuits) |
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.
You're intentionally not passing by reference here, 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.
Yes, added an extra comment to ensure this is clear
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.41.0</summary> ## [0.41.0](aztec-package-v0.40.1...aztec-package-v0.41.0) (2024-05-21) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.41.0</summary> ## [0.41.0](barretenberg.js-v0.40.1...barretenberg.js-v0.41.0) (2024-05-21) ### Features * Vk_as_fields, proof_as_fields flows for honk ([#6406](#6406)) ([a6100ad](a6100ad)) ### Miscellaneous * Remove acvmInfo from bb.js CLI ([#6507](#6507)) ([e298c76](e298c76)) </details> <details><summary>aztec-packages: 0.41.0</summary> ## [0.41.0](aztec-packages-v0.40.1...aztec-packages-v0.41.0) (2024-05-21) ### ⚠ BREAKING CHANGES * compile-time incorrect exec environment errors ([#6442](#6442)) * add is_infinite to curve addition opcode ([#6384](#6384)) * remove backend interactions from `nargo` ([#6320](#6320)) ### Features * `npk_m_hash` in all notes + key rotation test ([#6405](#6405)) ([74e98d4](74e98d4)) * Add encrypted log outgoing body ([#6334](#6334)) ([fa9f442](fa9f442)) * Add first version of kernel reset circuit ([#6393](#6393)) ([ed6df8e](ed6df8e)) * Add is_infinite to curve addition opcode ([#6384](#6384)) ([75d81c5](75d81c5)) * Add native rust implementations of pedersen functions (noir-lang/noir#4871) ([8bbbbb6](8bbbbb6)) * Add nullifying key to Token Note ([#6130](#6130)) ([95c6b4a](95c6b4a)) * Adding autogenerated variants for the reset circuit ([#6508](#6508)) ([8e8d2dd](8e8d2dd)) * **avm-simulator:** Cap gas for external calls ([#6479](#6479)) ([c8771ba](c8771ba)) * **avm:** Gzip avm bytecode ([#6475](#6475)) ([29559bd](29559bd)) * **avm:** To_radix gadget ([#6368](#6368)) ([89dd25f](89dd25f)) * Benchmark private proving ([#6409](#6409)) ([e9e5526](e9e5526)) * Compile-time incorrect exec environment errors ([#6442](#6442)) ([0f75efd](0f75efd)) * Do not return databus returndata, keep it private. (noir-lang/noir#5023) ([26f2197](26f2197)) * **docs:** Authwit how tos ([#6220](#6220)) ([78f13d9](78f13d9)) * **docs:** Key rotation / owner -> nullifier key docs ([#6538](#6538)) ([2453ba8](2453ba8)) * Full encryption and decryption of log in ts ([#6348](#6348)) ([0ac83dc](0ac83dc)) * Generic key validation request ([#6474](#6474)) ([948ec38](948ec38)) * Improved ClientIvc ([#6429](#6429)) ([f360b3f](f360b3f)) * Laying out a new recursion constraint for honk ([#6489](#6489)) ([af9fea4](af9fea4)) * New docs structure ([#6195](#6195)) ([9cca814](9cca814)) * Pay out arbitrary fee to coinbase on L1 ([#6436](#6436)) ([1b99de8](1b99de8)) * Remove total logs len from pre tail kernels + add to L1 ([#6466](#6466)) ([66a2d43](66a2d43)) * Run benchmarks for ACIR proving ([#6155](#6155)) ([ebf6fc2](ebf6fc2)) * Squash transient note logs ([#6268](#6268)) ([4574877](4574877)) * Sum transaction fees and pay on l1 ([#6522](#6522)) ([bf441da](bf441da)) * Translator recursive verifier ([#6327](#6327)) ([9321aef](9321aef)) * Update the encrypted note log format ([#6411](#6411)) ([e5cc9dc](e5cc9dc)) * Validate counters ([#6365](#6365)) ([1f28b3a](1f28b3a)) * View functions with static context enforcing ([#6338](#6338)) ([22ad5a5](22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([#6406](#6406)) ([a6100ad](a6100ad)) ### Bug Fixes * Arm ci ([#6480](#6480)) ([237952e](237952e)) * Asset struct serialization does not match Noir internal serialization ([#6494](#6494)) ([9e6a4c3](9e6a4c3)) * **avm-simulator:** Actually wrap oracles ([#6449](#6449)) ([8685acc](8685acc)) * **avm-simulator:** Nested calls should preserve static context ([#6414](#6414)) ([44d7916](44d7916)) * **avm-simulator:** Pending storage and nullifiers should be accessible in grandchild nested calls ([#6428](#6428)) ([84d2e1f](84d2e1f)) * Buggy e2e key registry test setup ([#6496](#6496)) ([52d85d1](52d85d1)) * **ci:** ARM ([#6521](#6521)) ([d1095f6](d1095f6)) * **ci:** Arm concurrency ([#6564](#6564)) ([a265da0](a265da0)) * Disable buggy ClientIVC tests ([#6546](#6546)) ([b61dea3](b61dea3)) * Disk attach edge case ([#6430](#6430)) ([2366ad3](2366ad3)) * **docs:** Clarify content on portals ([#6431](#6431)) ([869df4d](869df4d)) * Don't start multiple runners during RequestLimitExceeded ([#6444](#6444)) ([7c4c822](7c4c822)) * Dont start multiple builders ([#6437](#6437)) ([d67ab1c](d67ab1c)) * Fix no predicates for brillig with intermediate functions (noir-lang/noir#5015) ([26f2197](26f2197)) * Fixed several vulnerabilities in U128, added some tests (noir-lang/noir#5024) ([26f2197](26f2197)) * Increase N_max in Zeromorph ([#6415](#6415)) ([9e643b4](9e643b4)) * Quick fix of [#6405](#6405) by removing context from value note utils ([#6509](#6509)) ([3a4d828](3a4d828)) * Removed plain from path in array args of contract interfaces ([#6497](#6497)) ([2b37729](2b37729)) * Runs-on inconsistency and simplify concurrency keys ([#6433](#6433)) ([80674d9](80674d9)) * Spot retry fixup ([#6476](#6476)) ([784d784](784d784)) ### Miscellaneous * Add benchmarks for pedersen and schnorr verification (noir-lang/noir#5056) ([8bbbbb6](8bbbbb6)) * Add c++ tests for generator derivation ([#6528](#6528)) ([72931bd](72931bd)) * Add script to print lines of code (noir-lang/noir#4991) ([26f2197](26f2197)) * Add some docs on syncing noir ([#6340](#6340)) ([bb68fcd](bb68fcd)) * Anvil kill wrapper now supports mac ([#6520](#6520)) ([2a5d975](2a5d975)) * **avm:** Wrap oracles with unconstrained fns ([#6421](#6421)) ([3e7e094](3e7e094)) * Bump earthly ([#6419](#6419)) ([3d78751](3d78751)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6462](#6462)) ([26eac62](26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6495](#6495)) ([90d8092](90d8092)) * Change some error messages for avm switch ([#6447](#6447)) ([74d6519](74d6519)) * **ci:** Better retry defaults ([#6472](#6472)) ([b23f1fd](b23f1fd)) * **ci:** Consistency as external check ([#6460](#6460)) ([6793a75](6793a75)) * **ci:** Dont detach ebs ([#6441](#6441)) ([f933fc0](f933fc0)) * **ci:** Fix on-demand starting ([#6434](#6434)) ([c3efb9c](c3efb9c)) * **ci:** Increase timeouts ([#6426](#6426)) ([44986fe](44986fe)) * **ci:** Only run circleci on master ([#6525](#6525)) ([c75fbd4](c75fbd4)) * **ci:** Push l1-contracts tests off of critical path ([#6400](#6400)) ([ce0ae6d](ce0ae6d)) * **ci:** Reenable arm build ([#6455](#6455)) ([2862767](2862767)) * **ci:** Require setup in merge-check ([#6454](#6454)) ([ad73061](ad73061)) * **ci:** Spot capacity and reaping ([#6561](#6561)) ([8c639b5](8c639b5)) * Clean up kernel types by removing is_static from function_data ([#6557](#6557)) ([83ba29f](83ba29f)) * Cleanup the encrypted log incoming body ([#6325](#6325)) ([e88c209](e88c209)) * Copy subset of constants to cpp ([#6544](#6544)) ([21dc72a](21dc72a)) * Do not rebuild yarn-projects on bench-comment ([#6396](#6396)) ([797115b](797115b)) * **docs:** Adding analytics ([#6350](#6350)) ([6417cd9](6417cd9)) * **docs:** Restructure improvs ([#6502](#6502)) ([c3b573e](c3b573e)) * Fix linter issues in AVM ([#6057](#6057)) ([c2e72b1](c2e72b1)) * Fix logs upload to S3 ([#6401](#6401)) ([9df0602](9df0602)) * Fix migration notes ([#6458](#6458)) ([bee85a9](bee85a9)) * Fix migration notes ([#6551](#6551)) ([89bc350](89bc350)) * Fix notes 0.41.0 ([#6461](#6461)) ([04b0ec5](04b0ec5)) * Fix poor performance and long compile times in value_note.derement() ([#6523](#6523)) ([002b4aa](002b4aa)) * Fix tester image copy pattern ([#6438](#6438)) ([b892eae](b892eae)) * Get_nullifier_keys cleanup ([#6451](#6451)) ([8a71fd5](8a71fd5)) * Lower max public bytecode to 20k ([#6477](#6477)) ([ce192f0](ce192f0)) * Move `UPLOAD_LOGS` into root earthfile ([#6424](#6424)) ([d723da9](d723da9)) * Nuking `KeyStore` and `KeyPair` interfaces ([#6553](#6553)) ([23e0518](23e0518)) * Parameterise cycle_group by `Builder` rather than `Composer` ([#6565](#6565)) ([ea36bf9](ea36bf9)) * Prefetch noir deps in earthly for caching ([#6556](#6556)) ([8ee9060](8ee9060)) * Private call validation ([#6510](#6510)) ([07dc072](07dc072)) * Purge secret and open keywords ([#6501](#6501)) ([f9c74c4](f9c74c4)), closes [#5538](#5538) * Recommend Noir and rust plugin ([#6558](#6558)) ([298561f](298561f)) * Refactor key rotate and address comments from 6405 ([#6450](#6450)) ([6f3dab8](6f3dab8)) * Remove acvmInfo from bb.js CLI ([#6507](#6507)) ([e298c76](e298c76)) * Remove backend interactions from `nargo` ([#6320](#6320)) ([7a31896](7a31896)) * Replace relative paths to noir-protocol-circuits ([94ab877](94ab877)) * Replace relative paths to noir-protocol-circuits ([9f04bfe](9f04bfe)) * Replace relative paths to noir-protocol-circuits ([67f29e5](67f29e5)) * Replace relative paths to noir-protocol-circuits ([a7a4b86](a7a4b86)) * Replace relative paths to noir-protocol-circuits ([c6f61a4](c6f61a4)) * Share decider with ultra_prover ([#5467](#5467)) ([b3b7376](b3b7376)) * Switch over to constructing gates report in bash ([#6491](#6491)) ([1fa5963](1fa5963)) * **tests:** Change error messages in preparation for AVM ([#6422](#6422)) ([6616dc6](6616dc6)) ### Documentation * Sumcheck documentation ([#5841](#5841)) ([116eef0](116eef0)) * Updating key docs in concepts section ([#6387](#6387)) ([921a7f4](921a7f4)) </details> <details><summary>barretenberg: 0.41.0</summary> ## [0.41.0](barretenberg-v0.40.1...barretenberg-v0.41.0) (2024-05-21) ### ⚠ BREAKING CHANGES * add is_infinite to curve addition opcode ([#6384](#6384)) ### Features * Add is_infinite to curve addition opcode ([#6384](#6384)) ([75d81c5](75d81c5)) * **avm-simulator:** Cap gas for external calls ([#6479](#6479)) ([c8771ba](c8771ba)) * **avm:** Gzip avm bytecode ([#6475](#6475)) ([29559bd](29559bd)) * **avm:** To_radix gadget ([#6368](#6368)) ([89dd25f](89dd25f)) * Full encryption and decryption of log in ts ([#6348](#6348)) ([0ac83dc](0ac83dc)) * Improved ClientIvc ([#6429](#6429)) ([f360b3f](f360b3f)) * Laying out a new recursion constraint for honk ([#6489](#6489)) ([af9fea4](af9fea4)) * Remove total logs len from pre tail kernels + add to L1 ([#6466](#6466)) ([66a2d43](66a2d43)) * Run benchmarks for ACIR proving ([#6155](#6155)) ([ebf6fc2](ebf6fc2)) * Squash transient note logs ([#6268](#6268)) ([4574877](4574877)) * Sum transaction fees and pay on l1 ([#6522](#6522)) ([bf441da](bf441da)) * Translator recursive verifier ([#6327](#6327)) ([9321aef](9321aef)) * View functions with static context enforcing ([#6338](#6338)) ([22ad5a5](22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([#6406](#6406)) ([a6100ad](a6100ad)) ### Bug Fixes * Disable buggy ClientIVC tests ([#6546](#6546)) ([b61dea3](b61dea3)) * Increase N_max in Zeromorph ([#6415](#6415)) ([9e643b4](9e643b4)) ### Miscellaneous * Add c++ tests for generator derivation ([#6528](#6528)) ([72931bd](72931bd)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6462](#6462)) ([26eac62](26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6495](#6495)) ([90d8092](90d8092)) * Copy subset of constants to cpp ([#6544](#6544)) ([21dc72a](21dc72a)) * Lower max public bytecode to 20k ([#6477](#6477)) ([ce192f0](ce192f0)) * Parameterise cycle_group by `Builder` rather than `Composer` ([#6565](#6565)) ([ea36bf9](ea36bf9)) * Private call validation ([#6510](#6510)) ([07dc072](07dc072)) * Share decider with ultra_prover ([#5467](#5467)) ([b3b7376](b3b7376)) ### Documentation * Sumcheck documentation ([#5841](#5841)) ([116eef0](116eef0)) </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-package: 0.41.0</summary> ## [0.41.0](AztecProtocol/aztec-packages@aztec-package-v0.40.1...aztec-package-v0.41.0) (2024-05-21) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.41.0</summary> ## [0.41.0](AztecProtocol/aztec-packages@barretenberg.js-v0.40.1...barretenberg.js-v0.41.0) (2024-05-21) ### Features * Vk_as_fields, proof_as_fields flows for honk ([#6406](AztecProtocol/aztec-packages#6406)) ([a6100ad](AztecProtocol/aztec-packages@a6100ad)) ### Miscellaneous * Remove acvmInfo from bb.js CLI ([#6507](AztecProtocol/aztec-packages#6507)) ([e298c76](AztecProtocol/aztec-packages@e298c76)) </details> <details><summary>aztec-packages: 0.41.0</summary> ## [0.41.0](AztecProtocol/aztec-packages@aztec-packages-v0.40.1...aztec-packages-v0.41.0) (2024-05-21) ### ⚠ BREAKING CHANGES * compile-time incorrect exec environment errors ([#6442](AztecProtocol/aztec-packages#6442)) * add is_infinite to curve addition opcode ([#6384](AztecProtocol/aztec-packages#6384)) * remove backend interactions from `nargo` ([#6320](AztecProtocol/aztec-packages#6320)) ### Features * `npk_m_hash` in all notes + key rotation test ([#6405](AztecProtocol/aztec-packages#6405)) ([74e98d4](AztecProtocol/aztec-packages@74e98d4)) * Add encrypted log outgoing body ([#6334](AztecProtocol/aztec-packages#6334)) ([fa9f442](AztecProtocol/aztec-packages@fa9f442)) * Add first version of kernel reset circuit ([#6393](AztecProtocol/aztec-packages#6393)) ([ed6df8e](AztecProtocol/aztec-packages@ed6df8e)) * Add is_infinite to curve addition opcode ([#6384](AztecProtocol/aztec-packages#6384)) ([75d81c5](AztecProtocol/aztec-packages@75d81c5)) * Add native rust implementations of pedersen functions (noir-lang/noir#4871) ([8bbbbb6](AztecProtocol/aztec-packages@8bbbbb6)) * Add nullifying key to Token Note ([#6130](AztecProtocol/aztec-packages#6130)) ([95c6b4a](AztecProtocol/aztec-packages@95c6b4a)) * Adding autogenerated variants for the reset circuit ([#6508](AztecProtocol/aztec-packages#6508)) ([8e8d2dd](AztecProtocol/aztec-packages@8e8d2dd)) * **avm-simulator:** Cap gas for external calls ([#6479](AztecProtocol/aztec-packages#6479)) ([c8771ba](AztecProtocol/aztec-packages@c8771ba)) * **avm:** Gzip avm bytecode ([#6475](AztecProtocol/aztec-packages#6475)) ([29559bd](AztecProtocol/aztec-packages@29559bd)) * **avm:** To_radix gadget ([#6368](AztecProtocol/aztec-packages#6368)) ([89dd25f](AztecProtocol/aztec-packages@89dd25f)) * Benchmark private proving ([#6409](AztecProtocol/aztec-packages#6409)) ([e9e5526](AztecProtocol/aztec-packages@e9e5526)) * Compile-time incorrect exec environment errors ([#6442](AztecProtocol/aztec-packages#6442)) ([0f75efd](AztecProtocol/aztec-packages@0f75efd)) * Do not return databus returndata, keep it private. (noir-lang/noir#5023) ([26f2197](AztecProtocol/aztec-packages@26f2197)) * **docs:** Authwit how tos ([#6220](AztecProtocol/aztec-packages#6220)) ([78f13d9](AztecProtocol/aztec-packages@78f13d9)) * **docs:** Key rotation / owner -> nullifier key docs ([#6538](AztecProtocol/aztec-packages#6538)) ([2453ba8](AztecProtocol/aztec-packages@2453ba8)) * Full encryption and decryption of log in ts ([#6348](AztecProtocol/aztec-packages#6348)) ([0ac83dc](AztecProtocol/aztec-packages@0ac83dc)) * Generic key validation request ([#6474](AztecProtocol/aztec-packages#6474)) ([948ec38](AztecProtocol/aztec-packages@948ec38)) * Improved ClientIvc ([#6429](AztecProtocol/aztec-packages#6429)) ([f360b3f](AztecProtocol/aztec-packages@f360b3f)) * Laying out a new recursion constraint for honk ([#6489](AztecProtocol/aztec-packages#6489)) ([af9fea4](AztecProtocol/aztec-packages@af9fea4)) * New docs structure ([#6195](AztecProtocol/aztec-packages#6195)) ([9cca814](AztecProtocol/aztec-packages@9cca814)) * Pay out arbitrary fee to coinbase on L1 ([#6436](AztecProtocol/aztec-packages#6436)) ([1b99de8](AztecProtocol/aztec-packages@1b99de8)) * Remove total logs len from pre tail kernels + add to L1 ([#6466](AztecProtocol/aztec-packages#6466)) ([66a2d43](AztecProtocol/aztec-packages@66a2d43)) * Run benchmarks for ACIR proving ([#6155](AztecProtocol/aztec-packages#6155)) ([ebf6fc2](AztecProtocol/aztec-packages@ebf6fc2)) * Squash transient note logs ([#6268](AztecProtocol/aztec-packages#6268)) ([4574877](AztecProtocol/aztec-packages@4574877)) * Sum transaction fees and pay on l1 ([#6522](AztecProtocol/aztec-packages#6522)) ([bf441da](AztecProtocol/aztec-packages@bf441da)) * Translator recursive verifier ([#6327](AztecProtocol/aztec-packages#6327)) ([9321aef](AztecProtocol/aztec-packages@9321aef)) * Update the encrypted note log format ([#6411](AztecProtocol/aztec-packages#6411)) ([e5cc9dc](AztecProtocol/aztec-packages@e5cc9dc)) * Validate counters ([#6365](AztecProtocol/aztec-packages#6365)) ([1f28b3a](AztecProtocol/aztec-packages@1f28b3a)) * View functions with static context enforcing ([#6338](AztecProtocol/aztec-packages#6338)) ([22ad5a5](AztecProtocol/aztec-packages@22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([#6406](AztecProtocol/aztec-packages#6406)) ([a6100ad](AztecProtocol/aztec-packages@a6100ad)) ### Bug Fixes * Arm ci ([#6480](AztecProtocol/aztec-packages#6480)) ([237952e](AztecProtocol/aztec-packages@237952e)) * Asset struct serialization does not match Noir internal serialization ([#6494](AztecProtocol/aztec-packages#6494)) ([9e6a4c3](AztecProtocol/aztec-packages@9e6a4c3)) * **avm-simulator:** Actually wrap oracles ([#6449](AztecProtocol/aztec-packages#6449)) ([8685acc](AztecProtocol/aztec-packages@8685acc)) * **avm-simulator:** Nested calls should preserve static context ([#6414](AztecProtocol/aztec-packages#6414)) ([44d7916](AztecProtocol/aztec-packages@44d7916)) * **avm-simulator:** Pending storage and nullifiers should be accessible in grandchild nested calls ([#6428](AztecProtocol/aztec-packages#6428)) ([84d2e1f](AztecProtocol/aztec-packages@84d2e1f)) * Buggy e2e key registry test setup ([#6496](AztecProtocol/aztec-packages#6496)) ([52d85d1](AztecProtocol/aztec-packages@52d85d1)) * **ci:** ARM ([#6521](AztecProtocol/aztec-packages#6521)) ([d1095f6](AztecProtocol/aztec-packages@d1095f6)) * **ci:** Arm concurrency ([#6564](AztecProtocol/aztec-packages#6564)) ([a265da0](AztecProtocol/aztec-packages@a265da0)) * Disable buggy ClientIVC tests ([#6546](AztecProtocol/aztec-packages#6546)) ([b61dea3](AztecProtocol/aztec-packages@b61dea3)) * Disk attach edge case ([#6430](AztecProtocol/aztec-packages#6430)) ([2366ad3](AztecProtocol/aztec-packages@2366ad3)) * **docs:** Clarify content on portals ([#6431](AztecProtocol/aztec-packages#6431)) ([869df4d](AztecProtocol/aztec-packages@869df4d)) * Don't start multiple runners during RequestLimitExceeded ([#6444](AztecProtocol/aztec-packages#6444)) ([7c4c822](AztecProtocol/aztec-packages@7c4c822)) * Dont start multiple builders ([#6437](AztecProtocol/aztec-packages#6437)) ([d67ab1c](AztecProtocol/aztec-packages@d67ab1c)) * Fix no predicates for brillig with intermediate functions (noir-lang/noir#5015) ([26f2197](AztecProtocol/aztec-packages@26f2197)) * Fixed several vulnerabilities in U128, added some tests (noir-lang/noir#5024) ([26f2197](AztecProtocol/aztec-packages@26f2197)) * Increase N_max in Zeromorph ([#6415](AztecProtocol/aztec-packages#6415)) ([9e643b4](AztecProtocol/aztec-packages@9e643b4)) * Quick fix of [#6405](AztecProtocol/aztec-packages#6405) by removing context from value note utils ([#6509](AztecProtocol/aztec-packages#6509)) ([3a4d828](AztecProtocol/aztec-packages@3a4d828)) * Removed plain from path in array args of contract interfaces ([#6497](AztecProtocol/aztec-packages#6497)) ([2b37729](AztecProtocol/aztec-packages@2b37729)) * Runs-on inconsistency and simplify concurrency keys ([#6433](AztecProtocol/aztec-packages#6433)) ([80674d9](AztecProtocol/aztec-packages@80674d9)) * Spot retry fixup ([#6476](AztecProtocol/aztec-packages#6476)) ([784d784](AztecProtocol/aztec-packages@784d784)) ### Miscellaneous * Add benchmarks for pedersen and schnorr verification (noir-lang/noir#5056) ([8bbbbb6](AztecProtocol/aztec-packages@8bbbbb6)) * Add c++ tests for generator derivation ([#6528](AztecProtocol/aztec-packages#6528)) ([72931bd](AztecProtocol/aztec-packages@72931bd)) * Add script to print lines of code (noir-lang/noir#4991) ([26f2197](AztecProtocol/aztec-packages@26f2197)) * Add some docs on syncing noir ([#6340](AztecProtocol/aztec-packages#6340)) ([bb68fcd](AztecProtocol/aztec-packages@bb68fcd)) * Anvil kill wrapper now supports mac ([#6520](AztecProtocol/aztec-packages#6520)) ([2a5d975](AztecProtocol/aztec-packages@2a5d975)) * **avm:** Wrap oracles with unconstrained fns ([#6421](AztecProtocol/aztec-packages#6421)) ([3e7e094](AztecProtocol/aztec-packages@3e7e094)) * Bump earthly ([#6419](AztecProtocol/aztec-packages#6419)) ([3d78751](AztecProtocol/aztec-packages@3d78751)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6462](AztecProtocol/aztec-packages#6462)) ([26eac62](AztecProtocol/aztec-packages@26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6495](AztecProtocol/aztec-packages#6495)) ([90d8092](AztecProtocol/aztec-packages@90d8092)) * Change some error messages for avm switch ([#6447](AztecProtocol/aztec-packages#6447)) ([74d6519](AztecProtocol/aztec-packages@74d6519)) * **ci:** Better retry defaults ([#6472](AztecProtocol/aztec-packages#6472)) ([b23f1fd](AztecProtocol/aztec-packages@b23f1fd)) * **ci:** Consistency as external check ([#6460](AztecProtocol/aztec-packages#6460)) ([6793a75](AztecProtocol/aztec-packages@6793a75)) * **ci:** Dont detach ebs ([#6441](AztecProtocol/aztec-packages#6441)) ([f933fc0](AztecProtocol/aztec-packages@f933fc0)) * **ci:** Fix on-demand starting ([#6434](AztecProtocol/aztec-packages#6434)) ([c3efb9c](AztecProtocol/aztec-packages@c3efb9c)) * **ci:** Increase timeouts ([#6426](AztecProtocol/aztec-packages#6426)) ([44986fe](AztecProtocol/aztec-packages@44986fe)) * **ci:** Only run circleci on master ([#6525](AztecProtocol/aztec-packages#6525)) ([c75fbd4](AztecProtocol/aztec-packages@c75fbd4)) * **ci:** Push l1-contracts tests off of critical path ([#6400](AztecProtocol/aztec-packages#6400)) ([ce0ae6d](AztecProtocol/aztec-packages@ce0ae6d)) * **ci:** Reenable arm build ([#6455](AztecProtocol/aztec-packages#6455)) ([2862767](AztecProtocol/aztec-packages@2862767)) * **ci:** Require setup in merge-check ([#6454](AztecProtocol/aztec-packages#6454)) ([ad73061](AztecProtocol/aztec-packages@ad73061)) * **ci:** Spot capacity and reaping ([#6561](AztecProtocol/aztec-packages#6561)) ([8c639b5](AztecProtocol/aztec-packages@8c639b5)) * Clean up kernel types by removing is_static from function_data ([#6557](AztecProtocol/aztec-packages#6557)) ([83ba29f](AztecProtocol/aztec-packages@83ba29f)) * Cleanup the encrypted log incoming body ([#6325](AztecProtocol/aztec-packages#6325)) ([e88c209](AztecProtocol/aztec-packages@e88c209)) * Copy subset of constants to cpp ([#6544](AztecProtocol/aztec-packages#6544)) ([21dc72a](AztecProtocol/aztec-packages@21dc72a)) * Do not rebuild yarn-projects on bench-comment ([#6396](AztecProtocol/aztec-packages#6396)) ([797115b](AztecProtocol/aztec-packages@797115b)) * **docs:** Adding analytics ([#6350](AztecProtocol/aztec-packages#6350)) ([6417cd9](AztecProtocol/aztec-packages@6417cd9)) * **docs:** Restructure improvs ([#6502](AztecProtocol/aztec-packages#6502)) ([c3b573e](AztecProtocol/aztec-packages@c3b573e)) * Fix linter issues in AVM ([#6057](AztecProtocol/aztec-packages#6057)) ([c2e72b1](AztecProtocol/aztec-packages@c2e72b1)) * Fix logs upload to S3 ([#6401](AztecProtocol/aztec-packages#6401)) ([9df0602](AztecProtocol/aztec-packages@9df0602)) * Fix migration notes ([#6458](AztecProtocol/aztec-packages#6458)) ([bee85a9](AztecProtocol/aztec-packages@bee85a9)) * Fix migration notes ([#6551](AztecProtocol/aztec-packages#6551)) ([89bc350](AztecProtocol/aztec-packages@89bc350)) * Fix notes 0.41.0 ([#6461](AztecProtocol/aztec-packages#6461)) ([04b0ec5](AztecProtocol/aztec-packages@04b0ec5)) * Fix poor performance and long compile times in value_note.derement() ([#6523](AztecProtocol/aztec-packages#6523)) ([002b4aa](AztecProtocol/aztec-packages@002b4aa)) * Fix tester image copy pattern ([#6438](AztecProtocol/aztec-packages#6438)) ([b892eae](AztecProtocol/aztec-packages@b892eae)) * Get_nullifier_keys cleanup ([#6451](AztecProtocol/aztec-packages#6451)) ([8a71fd5](AztecProtocol/aztec-packages@8a71fd5)) * Lower max public bytecode to 20k ([#6477](AztecProtocol/aztec-packages#6477)) ([ce192f0](AztecProtocol/aztec-packages@ce192f0)) * Move `UPLOAD_LOGS` into root earthfile ([#6424](AztecProtocol/aztec-packages#6424)) ([d723da9](AztecProtocol/aztec-packages@d723da9)) * Nuking `KeyStore` and `KeyPair` interfaces ([#6553](AztecProtocol/aztec-packages#6553)) ([23e0518](AztecProtocol/aztec-packages@23e0518)) * Parameterise cycle_group by `Builder` rather than `Composer` ([#6565](AztecProtocol/aztec-packages#6565)) ([ea36bf9](AztecProtocol/aztec-packages@ea36bf9)) * Prefetch noir deps in earthly for caching ([#6556](AztecProtocol/aztec-packages#6556)) ([8ee9060](AztecProtocol/aztec-packages@8ee9060)) * Private call validation ([#6510](AztecProtocol/aztec-packages#6510)) ([07dc072](AztecProtocol/aztec-packages@07dc072)) * Purge secret and open keywords ([#6501](AztecProtocol/aztec-packages#6501)) ([f9c74c4](AztecProtocol/aztec-packages@f9c74c4)), closes [#5538](AztecProtocol/aztec-packages#5538) * Recommend Noir and rust plugin ([#6558](AztecProtocol/aztec-packages#6558)) ([298561f](AztecProtocol/aztec-packages@298561f)) * Refactor key rotate and address comments from 6405 ([#6450](AztecProtocol/aztec-packages#6450)) ([6f3dab8](AztecProtocol/aztec-packages@6f3dab8)) * Remove acvmInfo from bb.js CLI ([#6507](AztecProtocol/aztec-packages#6507)) ([e298c76](AztecProtocol/aztec-packages@e298c76)) * Remove backend interactions from `nargo` ([#6320](AztecProtocol/aztec-packages#6320)) ([7a31896](AztecProtocol/aztec-packages@7a31896)) * Replace relative paths to noir-protocol-circuits ([94ab877](AztecProtocol/aztec-packages@94ab877)) * Replace relative paths to noir-protocol-circuits ([9f04bfe](AztecProtocol/aztec-packages@9f04bfe)) * Replace relative paths to noir-protocol-circuits ([67f29e5](AztecProtocol/aztec-packages@67f29e5)) * Replace relative paths to noir-protocol-circuits ([a7a4b86](AztecProtocol/aztec-packages@a7a4b86)) * Replace relative paths to noir-protocol-circuits ([c6f61a4](AztecProtocol/aztec-packages@c6f61a4)) * Share decider with ultra_prover ([#5467](AztecProtocol/aztec-packages#5467)) ([b3b7376](AztecProtocol/aztec-packages@b3b7376)) * Switch over to constructing gates report in bash ([#6491](AztecProtocol/aztec-packages#6491)) ([1fa5963](AztecProtocol/aztec-packages@1fa5963)) * **tests:** Change error messages in preparation for AVM ([#6422](AztecProtocol/aztec-packages#6422)) ([6616dc6](AztecProtocol/aztec-packages@6616dc6)) ### Documentation * Sumcheck documentation ([#5841](AztecProtocol/aztec-packages#5841)) ([116eef0](AztecProtocol/aztec-packages@116eef0)) * Updating key docs in concepts section ([#6387](AztecProtocol/aztec-packages#6387)) ([921a7f4](AztecProtocol/aztec-packages@921a7f4)) </details> <details><summary>barretenberg: 0.41.0</summary> ## [0.41.0](AztecProtocol/aztec-packages@barretenberg-v0.40.1...barretenberg-v0.41.0) (2024-05-21) ### ⚠ BREAKING CHANGES * add is_infinite to curve addition opcode ([#6384](AztecProtocol/aztec-packages#6384)) ### Features * Add is_infinite to curve addition opcode ([#6384](AztecProtocol/aztec-packages#6384)) ([75d81c5](AztecProtocol/aztec-packages@75d81c5)) * **avm-simulator:** Cap gas for external calls ([#6479](AztecProtocol/aztec-packages#6479)) ([c8771ba](AztecProtocol/aztec-packages@c8771ba)) * **avm:** Gzip avm bytecode ([#6475](AztecProtocol/aztec-packages#6475)) ([29559bd](AztecProtocol/aztec-packages@29559bd)) * **avm:** To_radix gadget ([#6368](AztecProtocol/aztec-packages#6368)) ([89dd25f](AztecProtocol/aztec-packages@89dd25f)) * Full encryption and decryption of log in ts ([#6348](AztecProtocol/aztec-packages#6348)) ([0ac83dc](AztecProtocol/aztec-packages@0ac83dc)) * Improved ClientIvc ([#6429](AztecProtocol/aztec-packages#6429)) ([f360b3f](AztecProtocol/aztec-packages@f360b3f)) * Laying out a new recursion constraint for honk ([#6489](AztecProtocol/aztec-packages#6489)) ([af9fea4](AztecProtocol/aztec-packages@af9fea4)) * Remove total logs len from pre tail kernels + add to L1 ([#6466](AztecProtocol/aztec-packages#6466)) ([66a2d43](AztecProtocol/aztec-packages@66a2d43)) * Run benchmarks for ACIR proving ([#6155](AztecProtocol/aztec-packages#6155)) ([ebf6fc2](AztecProtocol/aztec-packages@ebf6fc2)) * Squash transient note logs ([#6268](AztecProtocol/aztec-packages#6268)) ([4574877](AztecProtocol/aztec-packages@4574877)) * Sum transaction fees and pay on l1 ([#6522](AztecProtocol/aztec-packages#6522)) ([bf441da](AztecProtocol/aztec-packages@bf441da)) * Translator recursive verifier ([#6327](AztecProtocol/aztec-packages#6327)) ([9321aef](AztecProtocol/aztec-packages@9321aef)) * View functions with static context enforcing ([#6338](AztecProtocol/aztec-packages#6338)) ([22ad5a5](AztecProtocol/aztec-packages@22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([#6406](AztecProtocol/aztec-packages#6406)) ([a6100ad](AztecProtocol/aztec-packages@a6100ad)) ### Bug Fixes * Disable buggy ClientIVC tests ([#6546](AztecProtocol/aztec-packages#6546)) ([b61dea3](AztecProtocol/aztec-packages@b61dea3)) * Increase N_max in Zeromorph ([#6415](AztecProtocol/aztec-packages#6415)) ([9e643b4](AztecProtocol/aztec-packages@9e643b4)) ### Miscellaneous * Add c++ tests for generator derivation ([#6528](AztecProtocol/aztec-packages#6528)) ([72931bd](AztecProtocol/aztec-packages@72931bd)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6462](AztecProtocol/aztec-packages#6462)) ([26eac62](AztecProtocol/aztec-packages@26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6495](AztecProtocol/aztec-packages#6495)) ([90d8092](AztecProtocol/aztec-packages@90d8092)) * Copy subset of constants to cpp ([#6544](AztecProtocol/aztec-packages#6544)) ([21dc72a](AztecProtocol/aztec-packages@21dc72a)) * Lower max public bytecode to 20k ([#6477](AztecProtocol/aztec-packages#6477)) ([ce192f0](AztecProtocol/aztec-packages@ce192f0)) * Parameterise cycle_group by `Builder` rather than `Composer` ([#6565](AztecProtocol/aztec-packages#6565)) ([ea36bf9](AztecProtocol/aztec-packages@ea36bf9)) * Private call validation ([#6510](AztecProtocol/aztec-packages#6510)) ([07dc072](AztecProtocol/aztec-packages@07dc072)) * Share decider with ultra_prover ([#5467](AztecProtocol/aztec-packages#5467)) ([b3b7376](AztecProtocol/aztec-packages@b3b7376)) ### Documentation * Sumcheck documentation ([#5841](AztecProtocol/aztec-packages#5841)) ([116eef0](AztecProtocol/aztec-packages@116eef0)) </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-package: 0.41.0</summary> [0.41.0](AztecProtocol/aztec-packages@aztec-package-v0.40.1...aztec-package-v0.41.0) (2024-05-21) * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.41.0</summary> [0.41.0](AztecProtocol/aztec-packages@barretenberg.js-v0.40.1...barretenberg.js-v0.41.0) (2024-05-21) * Vk_as_fields, proof_as_fields flows for honk ([AztecProtocol#6406](AztecProtocol#6406)) ([a6100ad](AztecProtocol@a6100ad)) * Remove acvmInfo from bb.js CLI ([AztecProtocol#6507](AztecProtocol#6507)) ([e298c76](AztecProtocol@e298c76)) </details> <details><summary>aztec-packages: 0.41.0</summary> [0.41.0](AztecProtocol/aztec-packages@aztec-packages-v0.40.1...aztec-packages-v0.41.0) (2024-05-21) * compile-time incorrect exec environment errors ([AztecProtocol#6442](AztecProtocol#6442)) * add is_infinite to curve addition opcode ([AztecProtocol#6384](AztecProtocol#6384)) * remove backend interactions from `nargo` ([AztecProtocol#6320](AztecProtocol#6320)) * `npk_m_hash` in all notes + key rotation test ([AztecProtocol#6405](AztecProtocol#6405)) ([74e98d4](AztecProtocol@74e98d4)) * Add encrypted log outgoing body ([AztecProtocol#6334](AztecProtocol#6334)) ([fa9f442](AztecProtocol@fa9f442)) * Add first version of kernel reset circuit ([AztecProtocol#6393](AztecProtocol#6393)) ([ed6df8e](AztecProtocol@ed6df8e)) * Add is_infinite to curve addition opcode ([AztecProtocol#6384](AztecProtocol#6384)) ([75d81c5](AztecProtocol@75d81c5)) * Add native rust implementations of pedersen functions (noir-lang/noir#4871) ([8bbbbb6](AztecProtocol@8bbbbb6)) * Add nullifying key to Token Note ([AztecProtocol#6130](AztecProtocol#6130)) ([95c6b4a](AztecProtocol@95c6b4a)) * Adding autogenerated variants for the reset circuit ([AztecProtocol#6508](AztecProtocol#6508)) ([8e8d2dd](AztecProtocol@8e8d2dd)) * **avm-simulator:** Cap gas for external calls ([AztecProtocol#6479](AztecProtocol#6479)) ([c8771ba](AztecProtocol@c8771ba)) * **avm:** Gzip avm bytecode ([AztecProtocol#6475](AztecProtocol#6475)) ([29559bd](AztecProtocol@29559bd)) * **avm:** To_radix gadget ([AztecProtocol#6368](AztecProtocol#6368)) ([89dd25f](AztecProtocol@89dd25f)) * Benchmark private proving ([AztecProtocol#6409](AztecProtocol#6409)) ([e9e5526](AztecProtocol@e9e5526)) * Compile-time incorrect exec environment errors ([AztecProtocol#6442](AztecProtocol#6442)) ([0f75efd](AztecProtocol@0f75efd)) * Do not return databus returndata, keep it private. (noir-lang/noir#5023) ([26f2197](AztecProtocol@26f2197)) * **docs:** Authwit how tos ([AztecProtocol#6220](AztecProtocol#6220)) ([78f13d9](AztecProtocol@78f13d9)) * **docs:** Key rotation / owner -> nullifier key docs ([AztecProtocol#6538](AztecProtocol#6538)) ([2453ba8](AztecProtocol@2453ba8)) * Full encryption and decryption of log in ts ([AztecProtocol#6348](AztecProtocol#6348)) ([0ac83dc](AztecProtocol@0ac83dc)) * Generic key validation request ([AztecProtocol#6474](AztecProtocol#6474)) ([948ec38](AztecProtocol@948ec38)) * Improved ClientIvc ([AztecProtocol#6429](AztecProtocol#6429)) ([f360b3f](AztecProtocol@f360b3f)) * Laying out a new recursion constraint for honk ([AztecProtocol#6489](AztecProtocol#6489)) ([af9fea4](AztecProtocol@af9fea4)) * New docs structure ([AztecProtocol#6195](AztecProtocol#6195)) ([9cca814](AztecProtocol@9cca814)) * Pay out arbitrary fee to coinbase on L1 ([AztecProtocol#6436](AztecProtocol#6436)) ([1b99de8](AztecProtocol@1b99de8)) * Remove total logs len from pre tail kernels + add to L1 ([AztecProtocol#6466](AztecProtocol#6466)) ([66a2d43](AztecProtocol@66a2d43)) * Run benchmarks for ACIR proving ([AztecProtocol#6155](AztecProtocol#6155)) ([ebf6fc2](AztecProtocol@ebf6fc2)) * Squash transient note logs ([AztecProtocol#6268](AztecProtocol#6268)) ([4574877](AztecProtocol@4574877)) * Sum transaction fees and pay on l1 ([AztecProtocol#6522](AztecProtocol#6522)) ([bf441da](AztecProtocol@bf441da)) * Translator recursive verifier ([AztecProtocol#6327](AztecProtocol#6327)) ([9321aef](AztecProtocol@9321aef)) * Update the encrypted note log format ([AztecProtocol#6411](AztecProtocol#6411)) ([e5cc9dc](AztecProtocol@e5cc9dc)) * Validate counters ([AztecProtocol#6365](AztecProtocol#6365)) ([1f28b3a](AztecProtocol@1f28b3a)) * View functions with static context enforcing ([AztecProtocol#6338](AztecProtocol#6338)) ([22ad5a5](AztecProtocol@22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([AztecProtocol#6406](AztecProtocol#6406)) ([a6100ad](AztecProtocol@a6100ad)) * Arm ci ([AztecProtocol#6480](AztecProtocol#6480)) ([237952e](AztecProtocol@237952e)) * Asset struct serialization does not match Noir internal serialization ([AztecProtocol#6494](AztecProtocol#6494)) ([9e6a4c3](AztecProtocol@9e6a4c3)) * **avm-simulator:** Actually wrap oracles ([AztecProtocol#6449](AztecProtocol#6449)) ([8685acc](AztecProtocol@8685acc)) * **avm-simulator:** Nested calls should preserve static context ([AztecProtocol#6414](AztecProtocol#6414)) ([44d7916](AztecProtocol@44d7916)) * **avm-simulator:** Pending storage and nullifiers should be accessible in grandchild nested calls ([AztecProtocol#6428](AztecProtocol#6428)) ([84d2e1f](AztecProtocol@84d2e1f)) * Buggy e2e key registry test setup ([AztecProtocol#6496](AztecProtocol#6496)) ([52d85d1](AztecProtocol@52d85d1)) * **ci:** ARM ([AztecProtocol#6521](AztecProtocol#6521)) ([d1095f6](AztecProtocol@d1095f6)) * **ci:** Arm concurrency ([AztecProtocol#6564](AztecProtocol#6564)) ([a265da0](AztecProtocol@a265da0)) * Disable buggy ClientIVC tests ([AztecProtocol#6546](AztecProtocol#6546)) ([b61dea3](AztecProtocol@b61dea3)) * Disk attach edge case ([AztecProtocol#6430](AztecProtocol#6430)) ([2366ad3](AztecProtocol@2366ad3)) * **docs:** Clarify content on portals ([AztecProtocol#6431](AztecProtocol#6431)) ([869df4d](AztecProtocol@869df4d)) * Don't start multiple runners during RequestLimitExceeded ([AztecProtocol#6444](AztecProtocol#6444)) ([7c4c822](AztecProtocol@7c4c822)) * Dont start multiple builders ([AztecProtocol#6437](AztecProtocol#6437)) ([d67ab1c](AztecProtocol@d67ab1c)) * Fix no predicates for brillig with intermediate functions (noir-lang/noir#5015) ([26f2197](AztecProtocol@26f2197)) * Fixed several vulnerabilities in U128, added some tests (noir-lang/noir#5024) ([26f2197](AztecProtocol@26f2197)) * Increase N_max in Zeromorph ([AztecProtocol#6415](AztecProtocol#6415)) ([9e643b4](AztecProtocol@9e643b4)) * Quick fix of [AztecProtocol#6405](AztecProtocol#6405) by removing context from value note utils ([AztecProtocol#6509](AztecProtocol#6509)) ([3a4d828](AztecProtocol@3a4d828)) * Removed plain from path in array args of contract interfaces ([AztecProtocol#6497](AztecProtocol#6497)) ([2b37729](AztecProtocol@2b37729)) * Runs-on inconsistency and simplify concurrency keys ([AztecProtocol#6433](AztecProtocol#6433)) ([80674d9](AztecProtocol@80674d9)) * Spot retry fixup ([AztecProtocol#6476](AztecProtocol#6476)) ([784d784](AztecProtocol@784d784)) * Add benchmarks for pedersen and schnorr verification (noir-lang/noir#5056) ([8bbbbb6](AztecProtocol@8bbbbb6)) * Add c++ tests for generator derivation ([AztecProtocol#6528](AztecProtocol#6528)) ([72931bd](AztecProtocol@72931bd)) * Add script to print lines of code (noir-lang/noir#4991) ([26f2197](AztecProtocol@26f2197)) * Add some docs on syncing noir ([AztecProtocol#6340](AztecProtocol#6340)) ([bb68fcd](AztecProtocol@bb68fcd)) * Anvil kill wrapper now supports mac ([AztecProtocol#6520](AztecProtocol#6520)) ([2a5d975](AztecProtocol@2a5d975)) * **avm:** Wrap oracles with unconstrained fns ([AztecProtocol#6421](AztecProtocol#6421)) ([3e7e094](AztecProtocol@3e7e094)) * Bump earthly ([AztecProtocol#6419](AztecProtocol#6419)) ([3d78751](AztecProtocol@3d78751)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([AztecProtocol#6462](AztecProtocol#6462)) ([26eac62](AztecProtocol@26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([AztecProtocol#6495](AztecProtocol#6495)) ([90d8092](AztecProtocol@90d8092)) * Change some error messages for avm switch ([AztecProtocol#6447](AztecProtocol#6447)) ([74d6519](AztecProtocol@74d6519)) * **ci:** Better retry defaults ([AztecProtocol#6472](AztecProtocol#6472)) ([b23f1fd](AztecProtocol@b23f1fd)) * **ci:** Consistency as external check ([AztecProtocol#6460](AztecProtocol#6460)) ([6793a75](AztecProtocol@6793a75)) * **ci:** Dont detach ebs ([AztecProtocol#6441](AztecProtocol#6441)) ([f933fc0](AztecProtocol@f933fc0)) * **ci:** Fix on-demand starting ([AztecProtocol#6434](AztecProtocol#6434)) ([c3efb9c](AztecProtocol@c3efb9c)) * **ci:** Increase timeouts ([AztecProtocol#6426](AztecProtocol#6426)) ([44986fe](AztecProtocol@44986fe)) * **ci:** Only run circleci on master ([AztecProtocol#6525](AztecProtocol#6525)) ([c75fbd4](AztecProtocol@c75fbd4)) * **ci:** Push l1-contracts tests off of critical path ([AztecProtocol#6400](AztecProtocol#6400)) ([ce0ae6d](AztecProtocol@ce0ae6d)) * **ci:** Reenable arm build ([AztecProtocol#6455](AztecProtocol#6455)) ([2862767](AztecProtocol@2862767)) * **ci:** Require setup in merge-check ([AztecProtocol#6454](AztecProtocol#6454)) ([ad73061](AztecProtocol@ad73061)) * **ci:** Spot capacity and reaping ([AztecProtocol#6561](AztecProtocol#6561)) ([8c639b5](AztecProtocol@8c639b5)) * Clean up kernel types by removing is_static from function_data ([AztecProtocol#6557](AztecProtocol#6557)) ([83ba29f](AztecProtocol@83ba29f)) * Cleanup the encrypted log incoming body ([AztecProtocol#6325](AztecProtocol#6325)) ([e88c209](AztecProtocol@e88c209)) * Copy subset of constants to cpp ([AztecProtocol#6544](AztecProtocol#6544)) ([21dc72a](AztecProtocol@21dc72a)) * Do not rebuild yarn-projects on bench-comment ([AztecProtocol#6396](AztecProtocol#6396)) ([797115b](AztecProtocol@797115b)) * **docs:** Adding analytics ([AztecProtocol#6350](AztecProtocol#6350)) ([6417cd9](AztecProtocol@6417cd9)) * **docs:** Restructure improvs ([AztecProtocol#6502](AztecProtocol#6502)) ([c3b573e](AztecProtocol@c3b573e)) * Fix linter issues in AVM ([AztecProtocol#6057](AztecProtocol#6057)) ([c2e72b1](AztecProtocol@c2e72b1)) * Fix logs upload to S3 ([AztecProtocol#6401](AztecProtocol#6401)) ([9df0602](AztecProtocol@9df0602)) * Fix migration notes ([AztecProtocol#6458](AztecProtocol#6458)) ([bee85a9](AztecProtocol@bee85a9)) * Fix migration notes ([AztecProtocol#6551](AztecProtocol#6551)) ([89bc350](AztecProtocol@89bc350)) * Fix notes 0.41.0 ([AztecProtocol#6461](AztecProtocol#6461)) ([04b0ec5](AztecProtocol@04b0ec5)) * Fix poor performance and long compile times in value_note.derement() ([AztecProtocol#6523](AztecProtocol#6523)) ([002b4aa](AztecProtocol@002b4aa)) * Fix tester image copy pattern ([AztecProtocol#6438](AztecProtocol#6438)) ([b892eae](AztecProtocol@b892eae)) * Get_nullifier_keys cleanup ([AztecProtocol#6451](AztecProtocol#6451)) ([8a71fd5](AztecProtocol@8a71fd5)) * Lower max public bytecode to 20k ([AztecProtocol#6477](AztecProtocol#6477)) ([ce192f0](AztecProtocol@ce192f0)) * Move `UPLOAD_LOGS` into root earthfile ([AztecProtocol#6424](AztecProtocol#6424)) ([d723da9](AztecProtocol@d723da9)) * Nuking `KeyStore` and `KeyPair` interfaces ([AztecProtocol#6553](AztecProtocol#6553)) ([23e0518](AztecProtocol@23e0518)) * Parameterise cycle_group by `Builder` rather than `Composer` ([AztecProtocol#6565](AztecProtocol#6565)) ([ea36bf9](AztecProtocol@ea36bf9)) * Prefetch noir deps in earthly for caching ([AztecProtocol#6556](AztecProtocol#6556)) ([8ee9060](AztecProtocol@8ee9060)) * Private call validation ([AztecProtocol#6510](AztecProtocol#6510)) ([07dc072](AztecProtocol@07dc072)) * Purge secret and open keywords ([AztecProtocol#6501](AztecProtocol#6501)) ([f9c74c4](AztecProtocol@f9c74c4)), closes [AztecProtocol#5538](AztecProtocol#5538) * Recommend Noir and rust plugin ([AztecProtocol#6558](AztecProtocol#6558)) ([298561f](AztecProtocol@298561f)) * Refactor key rotate and address comments from 6405 ([AztecProtocol#6450](AztecProtocol#6450)) ([6f3dab8](AztecProtocol@6f3dab8)) * Remove acvmInfo from bb.js CLI ([AztecProtocol#6507](AztecProtocol#6507)) ([e298c76](AztecProtocol@e298c76)) * Remove backend interactions from `nargo` ([AztecProtocol#6320](AztecProtocol#6320)) ([7a31896](AztecProtocol@7a31896)) * Replace relative paths to noir-protocol-circuits ([94ab877](AztecProtocol@94ab877)) * Replace relative paths to noir-protocol-circuits ([9f04bfe](AztecProtocol@9f04bfe)) * Replace relative paths to noir-protocol-circuits ([67f29e5](AztecProtocol@67f29e5)) * Replace relative paths to noir-protocol-circuits ([a7a4b86](AztecProtocol@a7a4b86)) * Replace relative paths to noir-protocol-circuits ([c6f61a4](AztecProtocol@c6f61a4)) * Share decider with ultra_prover ([AztecProtocol#5467](AztecProtocol#5467)) ([b3b7376](AztecProtocol@b3b7376)) * Switch over to constructing gates report in bash ([AztecProtocol#6491](AztecProtocol#6491)) ([1fa5963](AztecProtocol@1fa5963)) * **tests:** Change error messages in preparation for AVM ([AztecProtocol#6422](AztecProtocol#6422)) ([6616dc6](AztecProtocol@6616dc6)) * Sumcheck documentation ([AztecProtocol#5841](AztecProtocol#5841)) ([116eef0](AztecProtocol@116eef0)) * Updating key docs in concepts section ([AztecProtocol#6387](AztecProtocol#6387)) ([921a7f4](AztecProtocol@921a7f4)) </details> <details><summary>barretenberg: 0.41.0</summary> [0.41.0](AztecProtocol/aztec-packages@barretenberg-v0.40.1...barretenberg-v0.41.0) (2024-05-21) * add is_infinite to curve addition opcode ([AztecProtocol#6384](AztecProtocol#6384)) * Add is_infinite to curve addition opcode ([AztecProtocol#6384](AztecProtocol#6384)) ([75d81c5](AztecProtocol@75d81c5)) * **avm-simulator:** Cap gas for external calls ([AztecProtocol#6479](AztecProtocol#6479)) ([c8771ba](AztecProtocol@c8771ba)) * **avm:** Gzip avm bytecode ([AztecProtocol#6475](AztecProtocol#6475)) ([29559bd](AztecProtocol@29559bd)) * **avm:** To_radix gadget ([AztecProtocol#6368](AztecProtocol#6368)) ([89dd25f](AztecProtocol@89dd25f)) * Full encryption and decryption of log in ts ([AztecProtocol#6348](AztecProtocol#6348)) ([0ac83dc](AztecProtocol@0ac83dc)) * Improved ClientIvc ([AztecProtocol#6429](AztecProtocol#6429)) ([f360b3f](AztecProtocol@f360b3f)) * Laying out a new recursion constraint for honk ([AztecProtocol#6489](AztecProtocol#6489)) ([af9fea4](AztecProtocol@af9fea4)) * Remove total logs len from pre tail kernels + add to L1 ([AztecProtocol#6466](AztecProtocol#6466)) ([66a2d43](AztecProtocol@66a2d43)) * Run benchmarks for ACIR proving ([AztecProtocol#6155](AztecProtocol#6155)) ([ebf6fc2](AztecProtocol@ebf6fc2)) * Squash transient note logs ([AztecProtocol#6268](AztecProtocol#6268)) ([4574877](AztecProtocol@4574877)) * Sum transaction fees and pay on l1 ([AztecProtocol#6522](AztecProtocol#6522)) ([bf441da](AztecProtocol@bf441da)) * Translator recursive verifier ([AztecProtocol#6327](AztecProtocol#6327)) ([9321aef](AztecProtocol@9321aef)) * View functions with static context enforcing ([AztecProtocol#6338](AztecProtocol#6338)) ([22ad5a5](AztecProtocol@22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([AztecProtocol#6406](AztecProtocol#6406)) ([a6100ad](AztecProtocol@a6100ad)) * Disable buggy ClientIVC tests ([AztecProtocol#6546](AztecProtocol#6546)) ([b61dea3](AztecProtocol@b61dea3)) * Increase N_max in Zeromorph ([AztecProtocol#6415](AztecProtocol#6415)) ([9e643b4](AztecProtocol@9e643b4)) * Add c++ tests for generator derivation ([AztecProtocol#6528](AztecProtocol#6528)) ([72931bd](AztecProtocol@72931bd)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([AztecProtocol#6462](AztecProtocol#6462)) ([26eac62](AztecProtocol@26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([AztecProtocol#6495](AztecProtocol#6495)) ([90d8092](AztecProtocol@90d8092)) * Copy subset of constants to cpp ([AztecProtocol#6544](AztecProtocol#6544)) ([21dc72a](AztecProtocol@21dc72a)) * Lower max public bytecode to 20k ([AztecProtocol#6477](AztecProtocol#6477)) ([ce192f0](AztecProtocol@ce192f0)) * Parameterise cycle_group by `Builder` rather than `Composer` ([AztecProtocol#6565](AztecProtocol#6565)) ([ea36bf9](AztecProtocol@ea36bf9)) * Private call validation ([AztecProtocol#6510](AztecProtocol#6510)) ([07dc072](AztecProtocol@07dc072)) * Share decider with ultra_prover ([AztecProtocol#5467](AztecProtocol#5467)) ([b3b7376](AztecProtocol@b3b7376)) * Sumcheck documentation ([AztecProtocol#5841](AztecProtocol#5841)) ([116eef0](AztecProtocol@116eef0)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
The goal is to make
ClientIvc
more flexible and user friendly, primarily through making recursive folding verification an internal component to the class. E.g. given an arbitrary collection of circuits in containercircuits
, I can now simply do this:where
proof
, if verified, establishes knowledge of a witness satisfying all 10 circuits. Previously this was not the case unless the required recursive folding verifiers were baked into the circuits being accumulated (as was the case with the kernel). Now,accumulate
automatically appends a recursive folding verifier to each circuit (beginning with the third call to accumulate since prior to that no fold proof exists). Note that this is already how we were handling the recursive merge verification.This has the advantage of removing details of the IVC scheme from the kernel itself, generalizing ClientIvc for use on an arbitrary set of circuits, and improving the interface in all cases.
As expected, the benchmark does not change in any substantial way. (To the extent it does change, its because the gate counts in the circuits have changed slightly due to this new structure).