feat: remove ram tables in note_getter#7434
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. Proof generationEach column represents the number of threads used in proof generation.
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 8 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
AVM SimulationTime to simulate various public functions in the AVM.
Public DB AccessTime to access various public DBs.
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 | | |
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.46.3</summary> ## [0.46.3](aztec-package-v0.46.2...aztec-package-v0.46.3) (2024-07-11) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.46.3</summary> ## [0.46.3](barretenberg.js-v0.46.2...barretenberg.js-v0.46.3) (2024-07-11) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.46.3</summary> ## [0.46.3](aztec-packages-v0.46.2...aztec-packages-v0.46.3) (2024-07-11) ### Features * Add CLI argument for debugging comptime blocks (noir-lang/noir#5192) ([97ecff5](97ecff5)) * Add reset tiny and optimize tail ([#7422](#7422)) ([399917b](399917b)) * **avm:** Calldatacopy and return gadget ([#7415](#7415)) ([ec39e4e](ec39e4e)), closes [#7381](#7381) [#7211](#7211) * **avm:** Make ProverPolynomials::get_row return references ([#7419](#7419)) ([108fc5f](108fc5f)) * Integrate new proving systems in e2e ([#6971](#6971)) ([723a0c1](723a0c1)) * Lsp rename/find-all-references for struct members (noir-lang/noir#5443) ([97ecff5](97ecff5)) * MSM sorting ([#7351](#7351)) ([5cbdc54](5cbdc54)) * **optimization:** Deduplicate more instructions (noir-lang/noir#5457) ([97ecff5](97ecff5)) * Prefix operator overload trait dispatch (noir-lang/noir#5423) ([97ecff5](97ecff5)) * Remove proof from L1 Rollup process ([#7347](#7347)) ([2645eab](2645eab)), closes [#7346](#7346) * Remove ram tables in note_getter ([#7434](#7434)) ([fd67da3](fd67da3)) * Sync from aztec-packages (noir-lang/noir#5467) ([97ecff5](97ecff5)) * Typing return values of embedded_curve_ops ([#7413](#7413)) ([db96077](db96077)) ### Bug Fixes * **avm:** Fixes AVM full tests and decrease timeout to 35 minutes ([#7438](#7438)) ([2a7494b](2a7494b)) * Memory init with no other ops gate counting ([#7427](#7427)) ([e7177ba](e7177ba)) * Pass secrets to ci-arm.yml ([#7436](#7436)) ([619501d](619501d)) * Remove compile-time error for invalid indices (noir-lang/noir#5466) ([97ecff5](97ecff5)) * Using different generators in private refund ([#7414](#7414)) ([59b92ca](59b92ca)), closes [#7320](#7320) ### Miscellaneous * **bb:** Fix double increment ([#7428](#7428)) ([7870a58](7870a58)) * **boxes:** Adding an init command for an empty project ([#7398](#7398)) ([a6a605d](a6a605d)) * Bump bb to 0.45.1 (noir-lang/noir#5469) ([97ecff5](97ecff5)) * Disable flaky cheat code test ([7b8c2ba](7b8c2ba)) * Document EmbeddedCurvePoint (noir-lang/noir#5468) ([97ecff5](97ecff5)) * Minimize usage of get_row in inverse computation ([#7431](#7431)) ([f177887](f177887)) * Private refund cleanup ([#7403](#7403)) ([ebec8ff](ebec8ff)) * Replace relative paths to noir-protocol-circuits ([842f6d1](842f6d1)) * Unbundle `check_array_is_initialized` (noir-lang/noir#5451) ([97ecff5](97ecff5)) </details> <details><summary>barretenberg: 0.46.3</summary> ## [0.46.3](barretenberg-v0.46.2...barretenberg-v0.46.3) (2024-07-11) ### Features * **avm:** Calldatacopy and return gadget ([#7415](#7415)) ([ec39e4e](ec39e4e)), closes [#7381](#7381) [#7211](#7211) * **avm:** Make ProverPolynomials::get_row return references ([#7419](#7419)) ([108fc5f](108fc5f)) * Integrate new proving systems in e2e ([#6971](#6971)) ([723a0c1](723a0c1)) * MSM sorting ([#7351](#7351)) ([5cbdc54](5cbdc54)) ### Bug Fixes * **avm:** Fixes AVM full tests and decrease timeout to 35 minutes ([#7438](#7438)) ([2a7494b](2a7494b)) * Memory init with no other ops gate counting ([#7427](#7427)) ([e7177ba](e7177ba)) ### Miscellaneous * **bb:** Fix double increment ([#7428](#7428)) ([7870a58](7870a58)) * Minimize usage of get_row in inverse computation ([#7431](#7431)) ([f177887](f177887)) </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.46.3</summary> ## [0.46.3](AztecProtocol/aztec-packages@aztec-package-v0.46.2...aztec-package-v0.46.3) (2024-07-11) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.46.3</summary> ## [0.46.3](AztecProtocol/aztec-packages@barretenberg.js-v0.46.2...barretenberg.js-v0.46.3) (2024-07-11) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.46.3</summary> ## [0.46.3](AztecProtocol/aztec-packages@aztec-packages-v0.46.2...aztec-packages-v0.46.3) (2024-07-11) ### Features * Add CLI argument for debugging comptime blocks (noir-lang/noir#5192) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Add reset tiny and optimize tail ([#7422](AztecProtocol/aztec-packages#7422)) ([399917b](AztecProtocol/aztec-packages@399917b)) * **avm:** Calldatacopy and return gadget ([#7415](AztecProtocol/aztec-packages#7415)) ([ec39e4e](AztecProtocol/aztec-packages@ec39e4e)), closes [#7381](AztecProtocol/aztec-packages#7381) [#7211](AztecProtocol/aztec-packages#7211) * **avm:** Make ProverPolynomials::get_row return references ([#7419](AztecProtocol/aztec-packages#7419)) ([108fc5f](AztecProtocol/aztec-packages@108fc5f)) * Integrate new proving systems in e2e ([#6971](AztecProtocol/aztec-packages#6971)) ([723a0c1](AztecProtocol/aztec-packages@723a0c1)) * Lsp rename/find-all-references for struct members (noir-lang/noir#5443) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * MSM sorting ([#7351](AztecProtocol/aztec-packages#7351)) ([5cbdc54](AztecProtocol/aztec-packages@5cbdc54)) * **optimization:** Deduplicate more instructions (noir-lang/noir#5457) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Prefix operator overload trait dispatch (noir-lang/noir#5423) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Remove proof from L1 Rollup process ([#7347](AztecProtocol/aztec-packages#7347)) ([2645eab](AztecProtocol/aztec-packages@2645eab)), closes [#7346](AztecProtocol/aztec-packages#7346) * Remove ram tables in note_getter ([#7434](AztecProtocol/aztec-packages#7434)) ([fd67da3](AztecProtocol/aztec-packages@fd67da3)) * Sync from aztec-packages (noir-lang/noir#5467) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Typing return values of embedded_curve_ops ([#7413](AztecProtocol/aztec-packages#7413)) ([db96077](AztecProtocol/aztec-packages@db96077)) ### Bug Fixes * **avm:** Fixes AVM full tests and decrease timeout to 35 minutes ([#7438](AztecProtocol/aztec-packages#7438)) ([2a7494b](AztecProtocol/aztec-packages@2a7494b)) * Memory init with no other ops gate counting ([#7427](AztecProtocol/aztec-packages#7427)) ([e7177ba](AztecProtocol/aztec-packages@e7177ba)) * Pass secrets to ci-arm.yml ([#7436](AztecProtocol/aztec-packages#7436)) ([619501d](AztecProtocol/aztec-packages@619501d)) * Remove compile-time error for invalid indices (noir-lang/noir#5466) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Using different generators in private refund ([#7414](AztecProtocol/aztec-packages#7414)) ([59b92ca](AztecProtocol/aztec-packages@59b92ca)), closes [#7320](AztecProtocol/aztec-packages#7320) ### Miscellaneous * **bb:** Fix double increment ([#7428](AztecProtocol/aztec-packages#7428)) ([7870a58](AztecProtocol/aztec-packages@7870a58)) * **boxes:** Adding an init command for an empty project ([#7398](AztecProtocol/aztec-packages#7398)) ([a6a605d](AztecProtocol/aztec-packages@a6a605d)) * Bump bb to 0.45.1 (noir-lang/noir#5469) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Disable flaky cheat code test ([7b8c2ba](AztecProtocol/aztec-packages@7b8c2ba)) * Document EmbeddedCurvePoint (noir-lang/noir#5468) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) * Minimize usage of get_row in inverse computation ([#7431](AztecProtocol/aztec-packages#7431)) ([f177887](AztecProtocol/aztec-packages@f177887)) * Private refund cleanup ([#7403](AztecProtocol/aztec-packages#7403)) ([ebec8ff](AztecProtocol/aztec-packages@ebec8ff)) * Replace relative paths to noir-protocol-circuits ([842f6d1](AztecProtocol/aztec-packages@842f6d1)) * Unbundle `check_array_is_initialized` (noir-lang/noir#5451) ([97ecff5](AztecProtocol/aztec-packages@97ecff5)) </details> <details><summary>barretenberg: 0.46.3</summary> ## [0.46.3](AztecProtocol/aztec-packages@barretenberg-v0.46.2...barretenberg-v0.46.3) (2024-07-11) ### Features * **avm:** Calldatacopy and return gadget ([#7415](AztecProtocol/aztec-packages#7415)) ([ec39e4e](AztecProtocol/aztec-packages@ec39e4e)), closes [#7381](AztecProtocol/aztec-packages#7381) [#7211](AztecProtocol/aztec-packages#7211) * **avm:** Make ProverPolynomials::get_row return references ([#7419](AztecProtocol/aztec-packages#7419)) ([108fc5f](AztecProtocol/aztec-packages@108fc5f)) * Integrate new proving systems in e2e ([#6971](AztecProtocol/aztec-packages#6971)) ([723a0c1](AztecProtocol/aztec-packages@723a0c1)) * MSM sorting ([#7351](AztecProtocol/aztec-packages#7351)) ([5cbdc54](AztecProtocol/aztec-packages@5cbdc54)) ### Bug Fixes * **avm:** Fixes AVM full tests and decrease timeout to 35 minutes ([#7438](AztecProtocol/aztec-packages#7438)) ([2a7494b](AztecProtocol/aztec-packages@2a7494b)) * Memory init with no other ops gate counting ([#7427](AztecProtocol/aztec-packages#7427)) ([e7177ba](AztecProtocol/aztec-packages@e7177ba)) ### Miscellaneous * **bb:** Fix double increment ([#7428](AztecProtocol/aztec-packages#7428)) ([7870a58](AztecProtocol/aztec-packages@7870a58)) * Minimize usage of get_row in inverse computation ([#7431](AztecProtocol/aztec-packages#7431)) ([f177887](AztecProtocol/aztec-packages@f177887)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
With the work from #7050, we can now use the
collapsefunction introduced in #7016 to makenote_getteruse rom tables instead of ram, resulting in smaller circuits (see #7016 for details re. why this is the case). Nothing changed in terms of functionality, except that we no longer require the oracle to produce fewer notes than the limit (assuming the filter removes some).This does require however that most notes implement the
Eqtrait, whichcollapserequires in order to verify the hint. I don't imagine this would be an issue, sinceEqimplementations should be trivial, and automatically implemented once we have metaprogramming.