refactor: Join-split example Part 1#4965
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. Values are compared against data from master at commit 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 circuit run across all benchmarks.
Tree insertion statsThe duration to insert a fixed batch of leaves into each tree type.
MiscellaneousTransaction sizes based on how many contracts are deployed in the tx.
Transaction processing duration by data writes.
|
| crypto_schnorr_tests | ||
| crypto_sha256_tests | ||
| ecc_tests | ||
| join_split_example_proofs_inner_proof_data_tests |
There was a problem hiding this comment.
Just a serialization tests, not worth illustrating (tests deleted too).
There was a problem hiding this comment.
we have proper serialization tests elsewhere that tests what this test used to test?
|
|
||
| bool proof_result = verifier.verify_proof(proof); | ||
| EXPECT_EQ(proof_result, true); | ||
| EXPECT_EQ(CircuitChecker::check(builder), true); |
There was a problem hiding this comment.
Goal is to illustrate use of stdlib. In particular, no reason to generate proofs.
| } | ||
|
|
||
| template <typename Arithmetization> uint256_t UltraCircuitBuilder_<Arithmetization>::hash_circuit() | ||
| { |
There was a problem hiding this comment.
do we not care about the other member variables in ultra_circuit_builder? like lookup tables and real_variable_tags and num_gates, etc...
| // Some settings can only be configured here. | ||
| // The following are just provided as example. | ||
| "settings": { | ||
| "files.associations": { |
lucasxia01
left a comment
There was a problem hiding this comment.
Seems fine in general, but I'm not convinced we haven't lost testing functionality from deleting those tests. I'm also not sure about the hashing function being complete.
| crypto_schnorr_tests | ||
| crypto_sha256_tests | ||
| ecc_tests | ||
| join_split_example_proofs_inner_proof_data_tests |
There was a problem hiding this comment.
we have proper serialization tests elsewhere that tests what this test used to test?
| sum_of_block_sizes += block.size(); | ||
| } | ||
|
|
||
| size_t num_bytes_in_selectors_and_variables = sizeof(FF) * Arithmetization::NUM_SELECTORS * sum_of_block_sizes; |
There was a problem hiding this comment.
doesn't look like this contains variables?
| } | ||
|
|
||
| template <typename Arithmetization> uint256_t UltraCircuitBuilder_<Arithmetization>::hash_circuit() | ||
| { |
There was a problem hiding this comment.
do we not care about the other member variables in ultra_circuit_builder? like lookup tables and real_variable_tags and num_gates, etc...
|
@lucasxia01 made an issue to follow up on a particular question: AztecProtocol/barretenberg#900 |
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.26.6</summary> ## [0.26.6](aztec-package-v0.26.5...aztec-package-v0.26.6) (2024-03-08) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.26.6</summary> ## [0.26.6](barretenberg.js-v0.26.5...barretenberg.js-v0.26.6) (2024-03-08) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-cli: 0.26.6</summary> ## [0.26.6](aztec-cli-v0.26.5...aztec-cli-v0.26.6) (2024-03-08) ### Features * Show bytecode size per function in CLI inspect-contract ([#5059](#5059)) ([cb9fdc6](cb9fdc6)) </details> <details><summary>aztec-packages: 0.26.6</summary> ## [0.26.6](aztec-packages-v0.26.5...aztec-packages-v0.26.6) (2024-03-08) ### Features * Basic public reverts ([#4870](#4870)) ([5cccc78](5cccc78)) * Deploying new inbox ([#5036](#5036)) ([fed729d](fed729d)) * Detect unknown note type ids in compute_note_hash ([#5086](#5086)) ([6206bec](6206bec)) * Easy deployment of protocol contracts in e2e ([#4983](#4983)) ([480161f](480161f)) * IPA documentation ([#4924](#4924)) ([48bd22e](48bd22e)) * Nullifier read requests in public kernel ([#4910](#4910)) ([0e44247](0e44247)) * Show bytecode size per function in CLI inspect-contract ([#5059](#5059)) ([cb9fdc6](cb9fdc6)) * Updating an SMT solver class ([#4981](#4981)) ([4b94d58](4b94d58)) ### Bug Fixes * Canonical contract address ([#5030](#5030)) ([b2af880](b2af880)) * Flaky deployment test ([#5035](#5035)) ([039eafc](039eafc)) * Pull the correct platform image for noir ([#5097](#5097)) ([3342371](3342371)) * Sleep function memory leak ([#5023](#5023)) ([a72cfea](a72cfea)), closes [#4817](#4817) * Storage v2 ([#5027](#5027)) ([fe3190e](fe3190e)) * Update protogalaxy cmake dependencies ([#5066](#5066)) ([507c374](507c374)) ### Miscellaneous * Address warnings in noir test suite ([#4966](#4966)) ([7ef4ef5](7ef4ef5)) * Bootstrap noir natively if nargo is invalid ([#5034](#5034)) ([df089de](df089de)) * Build avm transpiler if we are on mac ([#5039](#5039)) ([c2966b9](c2966b9)) * **ci:** Re-enable certain bb solidity ACIR tests ([#5065](#5065)) ([58e1ff4](58e1ff4)) * Cleanup of prover and verifier instances ([#4959](#4959)) ([f2fdefd](f2fdefd)) * Delete bootstrap scripts from `noir/noir-repo` ([#5044](#5044)) ([add91ca](add91ca)) * Disable `hello_world_example` noir test in aztec-packages CI ([#5061](#5061)) ([1be9243](1be9243)) * Join-split example Part 1 ([#4965](#4965)) ([b9de0f5](b9de0f5)) * Moving RootRollupInputs impl ([#5087](#5087)) ([f3d9f9b](f3d9f9b)) * Remove eccvm functionality to update the op queue and ensure ultra ops are populated through function ([#5084](#5084)) ([77954ab](77954ab)) ### Documentation * Parity circuit naming fixes ([#5076](#5076)) ([c255255](c255255)) </details> <details><summary>barretenberg: 0.26.6</summary> ## [0.26.6](barretenberg-v0.26.5...barretenberg-v0.26.6) (2024-03-08) ### Features * IPA documentation ([#4924](#4924)) ([48bd22e](48bd22e)) * Updating an SMT solver class ([#4981](#4981)) ([4b94d58](4b94d58)) ### Bug Fixes * Storage v2 ([#5027](#5027)) ([fe3190e](fe3190e)) * Update protogalaxy cmake dependencies ([#5066](#5066)) ([507c374](507c374)) ### Miscellaneous * **ci:** Re-enable certain bb solidity ACIR tests ([#5065](#5065)) ([58e1ff4](58e1ff4)) * Cleanup of prover and verifier instances ([#4959](#4959)) ([f2fdefd](f2fdefd)) * Join-split example Part 1 ([#4965](#4965)) ([b9de0f5](b9de0f5)) * Remove eccvm functionality to update the op queue and ensure ultra ops are populated through function ([#5084](#5084)) ([77954ab](77954ab)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Flatten join_split_example/ and move inside of examples/ Follows: #4965
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.26.6</summary> ## [0.26.6](AztecProtocol/aztec-packages@aztec-package-v0.26.5...aztec-package-v0.26.6) (2024-03-08) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.26.6</summary> ## [0.26.6](AztecProtocol/aztec-packages@barretenberg.js-v0.26.5...barretenberg.js-v0.26.6) (2024-03-08) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-cli: 0.26.6</summary> ## [0.26.6](AztecProtocol/aztec-packages@aztec-cli-v0.26.5...aztec-cli-v0.26.6) (2024-03-08) ### Features * Show bytecode size per function in CLI inspect-contract ([#5059](AztecProtocol/aztec-packages#5059)) ([cb9fdc6](AztecProtocol/aztec-packages@cb9fdc6)) </details> <details><summary>aztec-packages: 0.26.6</summary> ## [0.26.6](AztecProtocol/aztec-packages@aztec-packages-v0.26.5...aztec-packages-v0.26.6) (2024-03-08) ### Features * Basic public reverts ([#4870](AztecProtocol/aztec-packages#4870)) ([5cccc78](AztecProtocol/aztec-packages@5cccc78)) * Deploying new inbox ([#5036](AztecProtocol/aztec-packages#5036)) ([fed729d](AztecProtocol/aztec-packages@fed729d)) * Detect unknown note type ids in compute_note_hash ([#5086](AztecProtocol/aztec-packages#5086)) ([6206bec](AztecProtocol/aztec-packages@6206bec)) * Easy deployment of protocol contracts in e2e ([#4983](AztecProtocol/aztec-packages#4983)) ([480161f](AztecProtocol/aztec-packages@480161f)) * IPA documentation ([#4924](AztecProtocol/aztec-packages#4924)) ([48bd22e](AztecProtocol/aztec-packages@48bd22e)) * Nullifier read requests in public kernel ([#4910](AztecProtocol/aztec-packages#4910)) ([0e44247](AztecProtocol/aztec-packages@0e44247)) * Show bytecode size per function in CLI inspect-contract ([#5059](AztecProtocol/aztec-packages#5059)) ([cb9fdc6](AztecProtocol/aztec-packages@cb9fdc6)) * Updating an SMT solver class ([#4981](AztecProtocol/aztec-packages#4981)) ([4b94d58](AztecProtocol/aztec-packages@4b94d58)) ### Bug Fixes * Canonical contract address ([#5030](AztecProtocol/aztec-packages#5030)) ([b2af880](AztecProtocol/aztec-packages@b2af880)) * Flaky deployment test ([#5035](AztecProtocol/aztec-packages#5035)) ([039eafc](AztecProtocol/aztec-packages@039eafc)) * Pull the correct platform image for noir ([#5097](AztecProtocol/aztec-packages#5097)) ([3342371](AztecProtocol/aztec-packages@3342371)) * Sleep function memory leak ([#5023](AztecProtocol/aztec-packages#5023)) ([a72cfea](AztecProtocol/aztec-packages@a72cfea)), closes [#4817](AztecProtocol/aztec-packages#4817) * Storage v2 ([#5027](AztecProtocol/aztec-packages#5027)) ([fe3190e](AztecProtocol/aztec-packages@fe3190e)) * Update protogalaxy cmake dependencies ([#5066](AztecProtocol/aztec-packages#5066)) ([507c374](AztecProtocol/aztec-packages@507c374)) ### Miscellaneous * Address warnings in noir test suite ([#4966](AztecProtocol/aztec-packages#4966)) ([7ef4ef5](AztecProtocol/aztec-packages@7ef4ef5)) * Bootstrap noir natively if nargo is invalid ([#5034](AztecProtocol/aztec-packages#5034)) ([df089de](AztecProtocol/aztec-packages@df089de)) * Build avm transpiler if we are on mac ([#5039](AztecProtocol/aztec-packages#5039)) ([c2966b9](AztecProtocol/aztec-packages@c2966b9)) * **ci:** Re-enable certain bb solidity ACIR tests ([#5065](AztecProtocol/aztec-packages#5065)) ([58e1ff4](AztecProtocol/aztec-packages@58e1ff4)) * Cleanup of prover and verifier instances ([#4959](AztecProtocol/aztec-packages#4959)) ([f2fdefd](AztecProtocol/aztec-packages@f2fdefd)) * Delete bootstrap scripts from `noir/noir-repo` ([#5044](AztecProtocol/aztec-packages#5044)) ([add91ca](AztecProtocol/aztec-packages@add91ca)) * Disable `hello_world_example` noir test in aztec-packages CI ([#5061](AztecProtocol/aztec-packages#5061)) ([1be9243](AztecProtocol/aztec-packages@1be9243)) * Join-split example Part 1 ([#4965](AztecProtocol/aztec-packages#4965)) ([b9de0f5](AztecProtocol/aztec-packages@b9de0f5)) * Moving RootRollupInputs impl ([#5087](AztecProtocol/aztec-packages#5087)) ([f3d9f9b](AztecProtocol/aztec-packages@f3d9f9b)) * Remove eccvm functionality to update the op queue and ensure ultra ops are populated through function ([#5084](AztecProtocol/aztec-packages#5084)) ([77954ab](AztecProtocol/aztec-packages@77954ab)) ### Documentation * Parity circuit naming fixes ([#5076](AztecProtocol/aztec-packages#5076)) ([c255255](AztecProtocol/aztec-packages@c255255)) </details> <details><summary>barretenberg: 0.26.6</summary> ## [0.26.6](AztecProtocol/aztec-packages@barretenberg-v0.26.5...barretenberg-v0.26.6) (2024-03-08) ### Features * IPA documentation ([#4924](AztecProtocol/aztec-packages#4924)) ([48bd22e](AztecProtocol/aztec-packages@48bd22e)) * Updating an SMT solver class ([#4981](AztecProtocol/aztec-packages#4981)) ([4b94d58](AztecProtocol/aztec-packages@4b94d58)) ### Bug Fixes * Storage v2 ([#5027](AztecProtocol/aztec-packages#5027)) ([fe3190e](AztecProtocol/aztec-packages@fe3190e)) * Update protogalaxy cmake dependencies ([#5066](AztecProtocol/aztec-packages#5066)) ([507c374](AztecProtocol/aztec-packages@507c374)) ### Miscellaneous * **ci:** Re-enable certain bb solidity ACIR tests ([#5065](AztecProtocol/aztec-packages#5065)) ([58e1ff4](AztecProtocol/aztec-packages@58e1ff4)) * Cleanup of prover and verifier instances ([#4959](AztecProtocol/aztec-packages#4959)) ([f2fdefd](AztecProtocol/aztec-packages@f2fdefd)) * Join-split example Part 1 ([#4965](AztecProtocol/aztec-packages#4965)) ([b9de0f5](AztecProtocol/aztec-packages@b9de0f5)) * Remove eccvm functionality to update the op queue and ensure ultra ops are populated through function ([#5084](AztecProtocol/aztec-packages#5084)) ([77954ab](AztecProtocol/aztec-packages@77954ab)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Flatten join_split_example/ and move inside of examples/ Follows: AztecProtocol/aztec-packages#4965
The first of a two-part series to refactor the join-split example, the goal being to focus the tests on circuit writing (no proof construction), update them to reflect our newer idioms, and relocate them. Key changes
The next PR #5016 will move and condense files, and update namespaces.