Skip to content
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: permutation argument optimizations #10960

Merged
merged 29 commits into from
Jan 9, 2025
Merged

feat: permutation argument optimizations #10960

merged 29 commits into from
Jan 9, 2025

Conversation

ledwards2225
Copy link
Contributor

@ledwards2225 ledwards2225 commented Dec 24, 2024

A handful of optimizations for the large ambient trace setting, mostly to do with the grand product argument. Total savings is about 1s on the "17 in 20" benchmark.

  • Only perform computation for the grand product on active rows of the trace. This means (1) only setting the values of sigma/id on the active rows (they remain zero elsewhere since those values don't contribute to the grand product anyway). And (2) only compute the grand product at active rows then populate the constant regions as a final step. These are both facilitated by constructing a vector active_row_idxs which explicitly contains the indices of the active rows. This makes it easier to multithread and is much more efficient than looping over the entire domain and using something like check_is_active() which itself has low overhead but results in huge disparities in the distribution of actual work across threads.
  • Replace a default initialized std::vector in PG with a Polynomial simply to take advantage of the optimized constructor

Branch "17 in 20" benchmark

ClientIVCBench/Full/6 20075 ms 17763 ms

Master "17 in 20" benchmark

ClientIVCBench/Full/6 21054 ms 18395 ms

The conventional benchmark ("19 in 19") shows a very minor improvement, as expected:

Branch:

ClientIVCBench/Full/6 22231 ms 19857 ms

Master:

ClientIVCBench/Full/6 22505 ms 19536 ms

@ledwards2225 ledwards2225 marked this pull request as ready for review December 24, 2024 14:26
@ledwards2225 ledwards2225 self-assigned this Jan 3, 2025

{

PROFILE_THIS_NAME("ProtogalaxyProver_::compute_row_evaluations");

const size_t polynomial_size = polynomials.get_polynomial_size();
std::vector<FF> aggregated_relation_evaluations(polynomial_size);
Polynomial<FF> aggregated_relation_evaluations(polynomial_size);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using Polynomial here instead of vector simply because it has a much more efficient constructor for initializing all of its elements to zero

current_permutation_poly.at(i) = FF(current_row_idx + num_gates * current_col_idx);
}
ITERATE_OVER_DOMAIN_END;
parallel_for(thread_data.num_threads, [&](size_t j) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This loop now iterates over only the active domain instead of the entire poly domain. Prior to this change, the sigma/id polynomials took non-zero values across the entire domain. Now, they are non-zero only in the active regions of the trace and 0 elsewhere (previously we had sigma_i == id_i in these regions). These values don't contribute to the computation of the grand product anyway so there's no reason to compute them.

@@ -390,7 +396,12 @@ TYPED_TEST(MegaHonkTests, PolySwap)
auto proving_key_2 = std::make_shared<typename TestFixture::DeciderProvingKey>(builder_copy, trace_settings);

// Tamper with the polys of pkey 1 in such a way that verification should fail
proving_key_1->proving_key.polynomials.w_l.at(5) = 10;
for (size_t i = 0; i < proving_key_1->proving_key.circuit_size; ++i) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this didn't need to change, I just wanted to make sure that tampering was a bit more robust. In theory setting a wire value at a row where no gates/copy constraints are active could still (correctly) lead to a verifiable proof

@maramihali
Copy link
Contributor

would be nice to have the timings for what happens in a 2^19 trace as well :)

Copy link
Contributor

@maramihali maramihali left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, small comments/suggestions and a question

@@ -98,6 +98,19 @@ class PrecomputedEntitiesBase {
uint64_t log_circuit_size;
uint64_t num_public_inputs;
};
// Specifies the regions of the execution trace containing non-trivial wire values
struct ActiveRegionData {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't these ranges need to be non-overlapping and in increasing order? maybe there should be a comment of some sort of check

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its a good point. I could add a check on add_range that the input has start >= the previous end. To be safe I suppose I'd also want to make the members private and add getters

const size_t end = thread_data.end[j];
for (size_t i = start; i < end; ++i) {
size_t poly_idx = proving_key->active_region_data.idxs[i];
auto idx = static_cast<ptrdiff_t>(poly_idx);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this cast needed?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also this can be a const and the one above too

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cast is needed since row_idx has type std::shared_ptr<uint32_t[]> which can only be indexed with a ptrdiff_t. (Note this isn't a change introduced in this PR)

{
PROFILE_THIS_NAME("compute_grand_product");

using FF = typename Flavor::FF;
using Polynomial = typename Flavor::Polynomial;
using Accumulator = std::tuple_element_t<0, typename GrandProdRelation::SumcheckArrayOfValuesOverSubrelations>;

const bool active_region_specified = !active_region_data.ranges.empty();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

has_active_regions?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hah I started with that but thought it was misleading because if false it implies that there are NO active regions when really its just that they are implicit and haven't been specified. You're probably right tho that has_active_regions is more clear

row, relation_parameters);
// TODO(https://github.com/AztecProtocol/barretenberg/issues/940):consider avoiding get_row if possible.
auto row_idx = get_active_range_poly_idx(i);
if constexpr (IsUltraFlavor<Flavor>) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if constexpr (!IsPlonkFlavor<Flavor>) would make this more readable I think

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's not quite the same thing though because this code is also used by the ECCVM/Translator which need to be excluded. I think this just comes down to the fact that we need better concepts. Probably isUltraOrMegaHonk

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose I could just add methods to the ECCVM/Trans flavors that just call get_row from get_row_for_permutation_arg. Not sure what's better

for (size_t i = start; i < end; ++i) {
grand_product_polynomial.at(i + 1) = numerator[i] * denominator[i];
auto poly_idx = get_active_range_poly_idx(i + 1);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const size_t

for (size_t j = 0; j < active_region_data.ranges.size() - 1; ++j) {
size_t previous_range_end = active_region_data.ranges[j].second;
size_t next_range_start = active_region_data.ranges[j + 1].first;
// If the index falls in an inactive region, set its value
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment seems incomplete

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

haha its not but I do see what you mean. I reordered to make it sound more natural

@ledwards2225 ledwards2225 merged commit de99603 into master Jan 9, 2025
25 checks passed
@ledwards2225 ledwards2225 deleted the lde/perm_opt branch January 9, 2025 17:33
TomAFrench added a commit that referenced this pull request Jan 9, 2025
* master: (287 commits)
  feat: Sync from noir (#11051)
  chore(docs): Update tx concepts page (#10947)
  chore(docs): Edit Aztec.nr Guide section (#10866)
  chore: test:e2e defaults to no-docker (#10966)
  chore(avm): improve column stats (#11135)
  chore: Sanity checking of proving job IDs (#11134)
  feat: permutation argument optimizations  (#10960)
  feat: single tx block root rollup (#11096)
  refactor: prover db config (#11126)
  feat: monitor event loop lag (#11127)
  chore: Greater stability at 1TPS (#10981)
  chore: Jest reporters for CI (#11125)
  fix: Sequencer times out L1 tx at end of L2 slot (#11112)
  feat: browser chunking (#11102)
  fix: Added start/stop guards to running promise and serial queue (#11120)
  fix: Don't retransmit txs upon node restart (#11123)
  fix: Prover node aborts execution at epoch end (#11111)
  feat: blob sink in sandbox without extra process (#11032)
  chore: log number of instructions executed for call in AVM. Misc fix. (#11110)
  git subrepo push --branch=master noir-projects/aztec-nr
  ...
rahul-kothari pushed a commit that referenced this pull request Jan 15, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.70.0</summary>

##
[0.70.0](aztec-package-v0.69.1...aztec-package-v0.70.0)
(2025-01-15)


### Features

* Blob sink in sandbox without extra process
([#11032](#11032))
([4600f54](4600f54))
* Browser chunking
([#11102](#11102))
([393e843](393e843))


### Miscellaneous

* Greater stability at 1TPS
([#10981](#10981))
([1c23662](1c23662))
* Prover db config
([#11126](#11126))
([9d49393](9d49393)),
closes
[#10267](#10267)
* Rpc server cleanup & misc fixes
([#11145](#11145))
([8a927eb](8a927eb))
</details>

<details><summary>barretenberg.js: 0.70.0</summary>

##
[0.70.0](barretenberg.js-v0.69.1...barretenberg.js-v0.70.0)
(2025-01-15)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-packages: 0.70.0</summary>

##
[0.70.0](aztec-packages-v0.69.1...aztec-packages-v0.70.0)
(2025-01-15)


### ⚠ BREAKING CHANGES

* disallow calling unconstrained functions outside of `unsafe` blocks
and passing unconstrained functions in place of constrained functions
(noir-lang/noir#6938)
* Disable mocks in `execute`
(noir-lang/noir#6869)
* require trait primitive functions/calls to have their trait in scope
(noir-lang/noir#6901)
* Reserve `enum` and `match` keywords
(noir-lang/noir#6961)
* require trait method calls (`foo.bar()`) to have the trait in scope
(imported) (noir-lang/noir#6895)
* type-check trait default methods
(noir-lang/noir#6645)
* update `aes128_encrypt` to return an array
(noir-lang/noir#6973)
* turn TypeIsMorePrivateThenItem into an error
(noir-lang/noir#6953)
* turn CannotReexportItemWithLessVisibility into an error
(noir-lang/noir#6952)

### Features

* `--pedantic-solving` flag
(noir-lang/noir#6716)
([3883a0e](3883a0e))
* 7 bit long `note_type_id`
([#10951](#10951))
([6fc5673](6fc5673))
* **avm2:** Avm redesign init
([#10906](#10906))
([231f017](231f017))
* Blob sink in sandbox without extra process
([#11032](#11032))
([4600f54](4600f54))
* Browser chunking
([#11102](#11102))
([393e843](393e843))
* Build blocks using txs with higher fee first
([#11093](#11093))
([def7cd7](def7cd7)),
closes
[#11084](#11084)
* **cli:** Add CLI option to filter by contract function name
(noir-lang/noir#7018)
([9189120](9189120))
* **comptime:** Implement to_be_bits and to_le_bits in the interpreter
(noir-lang/noir#7008)
([9189120](9189120))
* Contract class must be registered before deployment
([#10949](#10949))
([7176a70](7176a70))
* Dashboard in gcp
([#11201](#11201))
([2790bd7](2790bd7))
* Disable mocks in `execute`
(noir-lang/noir#6869)
([9189120](9189120))
* Disallow calling unconstrained functions outside of `unsafe` blocks
and passing unconstrained functions in place of constrained functions
(noir-lang/noir#6938)
([9189120](9189120))
* Don't report warnings for dependencies
(noir-lang/noir#6926)
([3883a0e](3883a0e))
* Don't simplify SSA instructions when creating them from a string
(noir-lang/noir#6948)
([3883a0e](3883a0e))
* Expose getL2ToL1Membership on the pxe
([#11215](#11215))
([ffd3625](ffd3625))
* Impl Default for U128 (noir-lang/noir#6984)
([3883a0e](3883a0e))
* Inject protocol nullifier conditionally
([#11155](#11155))
([93ade26](93ade26))
* Kickoff tube circuits at the beginning of proving job
([#11139](#11139))
([85d389f](85d389f)),
closes
[#10998](#10998)
* Lock on Nargo.toml on several nargo commands
(noir-lang/noir#6941)
([3883a0e](3883a0e))
* **lsp:** Use trait method docs for trait impl method docs on hover
(noir-lang/noir#7003)
([9189120](9189120))
* Monitor event loop lag
([#11127](#11127))
([422f125](422f125))
* Permutation argument optimizations
([#10960](#10960))
([de99603](de99603))
* PXE db contract store
([#10867](#10867))
([b5d51eb](b5d51eb))
* Require trait function calls (`Foo::bar()`) to have the trait in scope
(imported) (noir-lang/noir#6882)
([3883a0e](3883a0e))
* Require trait method calls (`foo.bar()`) to have the trait in scope
(imported) (noir-lang/noir#6895)
([3883a0e](3883a0e))
* Require trait primitive functions/calls to have their trait in scope
(noir-lang/noir#6901)
([9189120](9189120))
* Simulator split
([#11144](#11144))
([9b99126](9b99126))
* Single tx block root rollup
([#11096](#11096))
([bcc0168](bcc0168))
* SSA globals in monomorphization and SSA gen
(noir-lang/noir#6985)
([9189120](9189120))
* **ssa:** Immediately simplify away RefCount instructions in ACIR
functions (noir-lang/noir#6893)
([3883a0e](3883a0e))
* **test:** Enable the test fuzzer for Wasm
(noir-lang/noir#6835)
([3883a0e](3883a0e))
* Track nodejs runtime metrics
([#11160](#11160))
([1d24fab](1d24fab))
* Turn CannotReexportItemWithLessVisibility into an error
(noir-lang/noir#6952)
([3883a0e](3883a0e))
* Turn TypeIsMorePrivateThenItem into an error
(noir-lang/noir#6953)
([3883a0e](3883a0e))
* Type-check trait default methods
(noir-lang/noir#6645)
([3883a0e](3883a0e))
* Unchecked math operations in SSA
(noir-lang/noir#7011)
([9189120](9189120))
* Update `aes128_encrypt` to return an array
(noir-lang/noir#6973)
([3883a0e](3883a0e))
* Use tail public inputs as transaction hash
([#11100](#11100))
([34be2c3](34be2c3))
* Validator deadline for reexecution
([#11050](#11050))
([1aa34e7](1aa34e7)),
closes
[#10959](#10959)


### Bug Fixes

* Added start/stop guards to running promise and serial queue
([#11120](#11120))
([23e642f](23e642f))
* Allow multiple trait impls for the same trait as long as one is in
scope (noir-lang/noir#6987)
([9189120](9189120))
* **avm:** AVM circuit fixes related calldata, returndata and call_ptr
([#11207](#11207))
([2f05dc0](2f05dc0))
* **avm:** Mac build
([#11195](#11195))
([c4f4452](c4f4452))
* **avm:** Mac build (retry)
([#11197](#11197))
([0a4b763](0a4b763))
* Aztec-spartan config var
([#11137](#11137))
([acbfad4](acbfad4))
* Blob fees & l1-publisher logging
([#11029](#11029))
([c2c0bc6](c2c0bc6))
* **bootstrap:** Don't download bad cache if unstaged changes
([#11198](#11198))
([2bd895b](2bd895b))
* **boxes:** Fix attempt 2
([#11175](#11175))
([e87b11a](e87b11a))
* Bump inotify limits on tester
([#11217](#11217))
([60bdf1d](60bdf1d))
* Do not emit range check for multiplication by bool
(noir-lang/noir#6983)
([3883a0e](3883a0e))
* Do not panic on indices which are not valid `u32`s
(noir-lang/noir#6976)
([3883a0e](3883a0e))
* Docs rebuild patterns
([#11191](#11191))
([1999990](1999990))
* Don't fail parsing macro if there are parser warnings
(noir-lang/noir#6969)
([3883a0e](3883a0e))
* Don't retransmit txs upon node restart
([#11123](#11123))
([39535c9](39535c9))
* Duplicate env vars
([#11166](#11166))
([2507b6f](2507b6f))
* Error on missing function parameters
(noir-lang/noir#6967)
([3883a0e](3883a0e))
* Get_next_power_exponent off by 1
([#11169](#11169))
([80ec19e](80ec19e))
* Let static_assert fail with the provided message
(noir-lang/noir#7005)
([9189120](9189120))
* Max_note_len computation
([#10438](#10438))
([099c17b](099c17b))
* Non-determinism from under constrained checks
(noir-lang/noir#6945)
([3883a0e](3883a0e))
* Prover node aborts execution at epoch end
([#11111](#11111))
([2a77616](2a77616)),
closes
[#10802](#10802)
* Prover node does not err upon an empty epoch
([#11204](#11204))
([2c3ab84](2c3ab84))
* Remove arch tag in sandbox images
([#11233](#11233))
([80a872d](80a872d))
* Remove max lookup table size constant (for now)
([#11095](#11095))
([7e9e268](7e9e268))
* Reproduce and fix bytecode blowup
(noir-lang/noir#6972)
([9189120](9189120))
* Require generic trait impls to be in scope to call them
(noir-lang/noir#6913)
([9189120](9189120))
* Restore upload_logs script in use by acir bench
([2d88497](2d88497))
* Return trait impl method as FuncId if there's only one
(noir-lang/noir#6989)
([9189120](9189120))
* Revert "chore: use L1 Tx Utils"
([#11167](#11167))
([f4e5c79](f4e5c79))
* Sequencer times out L1 tx at end of L2 slot
([#11112](#11112))
([1b88a34](1b88a34))
* Show output of `test_program_is_idempotent` on failure
(noir-lang/noir#6942)
([3883a0e](3883a0e))
* Start RC at 1 again (noir-lang/noir#6958)
([3883a0e](3883a0e))
* Underconstrained bug
([#11174](#11174))
([0b3088b](0b3088b))
* Update fs max user instances for k8s
([#11220](#11220))
([b42da6d](b42da6d))
* Use absolute path for docker bind in e2e-test
([f2885ec](f2885ec))
* Wrong module to lookup trait when using crate or super
(noir-lang/noir#6974)
([3883a0e](3883a0e))


### Miscellaneous

* Add cli option to specify withdrawer address in the add-l1-validator …
([#11199](#11199))
([107f175](107f175))
* Add memsuspend to parallel in bootstrap
([#11040](#11040))
([c78cb82](c78cb82))
* Add more Field use info (noir-lang/noir#7019)
([9189120](9189120))
* Add reproduction case for bignum test failure
(noir-lang/noir#6464)
([3883a0e](3883a0e))
* Add short circuit in ssa-gen for known if conditions
(noir-lang/noir#7007)
([9189120](9189120))
* Also print test output to stdout in CI
(noir-lang/noir#6930)
([3883a0e](3883a0e))
* **avm:** Fix mac build
([#11147](#11147))
([1775e53](1775e53))
* **avm:** Improve column stats
([#11135](#11135))
([535a14c](535a14c))
* **avm:** Re-enable bb-prover tests in CI, change some to
check-circuit-only, enable multi-enqueued call tests
([#11180](#11180))
([3092212](3092212))
* **avm:** Vm2 followup cleanup
([#11186](#11186))
([6de4013](6de4013))
* Block building benchmark via github-action-benchmark
([#11202](#11202))
([c107b6b](c107b6b)),
closes
[#11154](#11154)
* Bump `noir-gates-diff` (noir-lang/noir#6943)
([3883a0e](3883a0e))
* Bump `noir-gates-diff` (noir-lang/noir#6944)
([3883a0e](3883a0e))
* Bump `noir-gates-diff` (noir-lang/noir#6949)
([3883a0e](3883a0e))
* Bump arkworks to version `0.5.0`
(noir-lang/noir#6871)
([3883a0e](3883a0e))
* **ci:** Easier to use mac ci
([#11194](#11194))
([9ab4cee](9ab4cee))
* **ci:** Ensure that prover.toml files in protocol circuits are in sync
([#11141](#11141))
([db769bd](db769bd))
* **ci:** Fail properly in `external-repo-checks`
(noir-lang/noir#6988)
([9189120](9189120))
* **ci:** Try fix boxes-test
([#11162](#11162))
([a66349f](a66349f))
* Clarity fix in docs (noir-lang/noir#7016)
([9189120](9189120))
* Delete a bunch of dead code from `noirc_evaluator`
(noir-lang/noir#6939)
([3883a0e](3883a0e))
* Delete docs for versions which aren't used
(noir-lang/noir#7020)
([9189120](9189120))
* Disable reorg test
([#11176](#11176))
([78bec44](78bec44))
* Disallow inserting ACIR-only instructions into brillig functions
(noir-lang/noir#7017)
([9189120](9189120))
* **docs:** Backport 1.0.0-beta.0 doc fixes
(noir-lang/noir#7014)
([9189120](9189120))
* **docs:** Edit Aztec.nr Guide section
([#10866](#10866))
([4051ba8](4051ba8))
* **docs:** Remove node pages
([#11161](#11161))
([e494f6b](e494f6b))
* **docs:** Update tx concepts page
([#10947](#10947))
([d9d9798](d9d9798))
* Document aztec-nargo in readme
([#11173](#11173))
([927eabf](927eabf))
* Greater stability at 1TPS
([#10981](#10981))
([1c23662](1c23662))
* Jest reporters for CI
([#11125](#11125))
([90cd9d2](90cd9d2))
* Log number of instructions executed for call in AVM. Misc fix.
([#11110](#11110))
([44e01f4](44e01f4))
* Mark `aztec-nr` as expected to compile
(noir-lang/noir#7015)
([9189120](9189120))
* Mark casts as able to be deduplicated
(noir-lang/noir#6996)
([9189120](9189120))
* Missed test account retrieval simplification in one spot
([#11172](#11172))
([b72234e](b72234e))
* Move comment as part of
[#6945](#6945)
(noir-lang/noir#6959)
([3883a0e](3883a0e))
* Move witness computation into class plus some other cleanup
([#11140](#11140))
([d41e9ab](d41e9ab))
* Nuke unused `getSiblingPath` oracle
([#11090](#11090))
([36b640a](36b640a))
* Nuking mental model of "packing into a hash"
([#11200](#11200))
([e1ebcc0](e1ebcc0))
* Only resolved globals monomorphization
(noir-lang/noir#7006)
([9189120](9189120))
* Prover db config
([#11126](#11126))
([9d49393](9d49393)),
closes
[#10267](#10267)
* Redo typo PR by longxiangqiao
([#11109](#11109))
([b8ef30e](b8ef30e))
* Refactor `get_tx_effects_hash_input_helper`
([#11213](#11213))
([5becb99](5becb99))
* Refactor Solidity Transcript and improve error handling in sol_honk
flow
([#11158](#11158))
([58fdf87](58fdf87))
* Remove explicit collector address
([#11227](#11227))
([dfb0db5](dfb0db5))
* Remove resolve_is_unconstrained pass
(noir-lang/noir#7004)
([9189120](9189120))
* Removing noir bug workaround
([#10535](#10535))
([8be882f](8be882f))
* Replace relative paths to noir-protocol-circuits
([d8619fa](d8619fa))
* Replace relative paths to noir-protocol-circuits
([70cad1c](70cad1c))
* Replace relative paths to noir-protocol-circuits
([e962534](e962534))
* Replace relative paths to noir-protocol-circuits
([ba5a589](ba5a589))
* Replace relative paths to noir-protocol-circuits
([b7c3fa2](b7c3fa2))
* Replace relative paths to noir-protocol-circuits
([32840c6](32840c6))
* Require safety doc comment for unsafe instead of
`//[@safety](https://github.com/safety)`
(noir-lang/noir#6992)
([9189120](9189120))
* Reserve `enum` and `match` keywords
(noir-lang/noir#6961)
([9189120](9189120))
* Rpc server cleanup & misc fixes
([#11145](#11145))
([8a927eb](8a927eb))
* Sanity checking of proving job IDs
([#11134](#11134))
([61c3e95](61c3e95))
* Save kind smoke test logs as artifact
([#11212](#11212))
([1389a5b](1389a5b))
* Separate unconstrained functions during monomorphization
(noir-lang/noir#6894)
([3883a0e](3883a0e))
* Simplify a couple of enum variants
(noir-lang/noir#7025)
([9189120](9189120))
* Simplify boolean in a mul of a mul
(noir-lang/noir#6951)
([3883a0e](3883a0e))
* SmallSubgroupIPA tests
([#11106](#11106))
([f034e2a](f034e2a))
* **spartan:** Making the spartan script install jq
([#11231](#11231))
([7e628cc](7e628cc))
* Test:e2e defaults to no-docker
([#10966](#10966))
([15e0d71](15e0d71))
* Turn on averaging for protocol circuits metrics in CI
(noir-lang/noir#6999)
([9189120](9189120))
* Update aztec-spartan.sh script
([#11228](#11228))
([52b3a87](52b3a87))
* Use DFG in SSA printer (noir-lang/noir#6986)
([9189120](9189120))
* Use L1 Tx Utils
([#10759](#10759))
([ccf28f5](ccf28f5)),
closes
[#10464](#10464)
* Use logs for benchmarking
(noir-lang/noir#6911)
([3883a0e](3883a0e))
* VariableMerkleTree readability improvements
([#11165](#11165))
([010d1b0](010d1b0))
* Wait for ethereum in each pod
([#11238](#11238))
([9c08e00](9c08e00))


### Documentation

* Enable protocol specs for docs in dev mode
([#11219](#11219))
([10c8afe](10c8afe))
</details>

<details><summary>barretenberg: 0.70.0</summary>

##
[0.70.0](barretenberg-v0.69.1...barretenberg-v0.70.0)
(2025-01-15)


### Features

* **avm2:** Avm redesign init
([#10906](#10906))
([231f017](231f017))
* Permutation argument optimizations
([#10960](#10960))
([de99603](de99603))
* Use tail public inputs as transaction hash
([#11100](#11100))
([34be2c3](34be2c3))


### Bug Fixes

* **avm:** AVM circuit fixes related calldata, returndata and call_ptr
([#11207](#11207))
([2f05dc0](2f05dc0))
* **avm:** Mac build
([#11195](#11195))
([c4f4452](c4f4452))
* **avm:** Mac build (retry)
([#11197](#11197))
([0a4b763](0a4b763))
* **bootstrap:** Don't download bad cache if unstaged changes
([#11198](#11198))
([2bd895b](2bd895b))
* Remove max lookup table size constant (for now)
([#11095](#11095))
([7e9e268](7e9e268))


### Miscellaneous

* **avm:** Fix mac build
([#11147](#11147))
([1775e53](1775e53))
* **avm:** Improve column stats
([#11135](#11135))
([535a14c](535a14c))
* **avm:** Re-enable bb-prover tests in CI, change some to
check-circuit-only, enable multi-enqueued call tests
([#11180](#11180))
([3092212](3092212))
* **avm:** Vm2 followup cleanup
([#11186](#11186))
([6de4013](6de4013))
* **docs:** Update tx concepts page
([#10947](#10947))
([d9d9798](d9d9798))
* Move witness computation into class plus some other cleanup
([#11140](#11140))
([d41e9ab](d41e9ab))
* Redo typo PR by longxiangqiao
([#11109](#11109))
([b8ef30e](b8ef30e))
* Refactor Solidity Transcript and improve error handling in sol_honk
flow
([#11158](#11158))
([58fdf87](58fdf87))
* SmallSubgroupIPA tests
([#11106](#11106))
([f034e2a](f034e2a))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Jan 16, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.70.0</summary>

##
[0.70.0](AztecProtocol/aztec-packages@aztec-package-v0.69.1...aztec-package-v0.70.0)
(2025-01-15)


### Features

* Blob sink in sandbox without extra process
([#11032](AztecProtocol/aztec-packages#11032))
([4600f54](AztecProtocol/aztec-packages@4600f54))
* Browser chunking
([#11102](AztecProtocol/aztec-packages#11102))
([393e843](AztecProtocol/aztec-packages@393e843))


### Miscellaneous

* Greater stability at 1TPS
([#10981](AztecProtocol/aztec-packages#10981))
([1c23662](AztecProtocol/aztec-packages@1c23662))
* Prover db config
([#11126](AztecProtocol/aztec-packages#11126))
([9d49393](AztecProtocol/aztec-packages@9d49393)),
closes
[#10267](AztecProtocol/aztec-packages#10267)
* Rpc server cleanup & misc fixes
([#11145](AztecProtocol/aztec-packages#11145))
([8a927eb](AztecProtocol/aztec-packages@8a927eb))
</details>

<details><summary>barretenberg.js: 0.70.0</summary>

##
[0.70.0](AztecProtocol/aztec-packages@barretenberg.js-v0.69.1...barretenberg.js-v0.70.0)
(2025-01-15)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-packages: 0.70.0</summary>

##
[0.70.0](AztecProtocol/aztec-packages@aztec-packages-v0.69.1...aztec-packages-v0.70.0)
(2025-01-15)


### ⚠ BREAKING CHANGES

* disallow calling unconstrained functions outside of `unsafe` blocks
and passing unconstrained functions in place of constrained functions
(noir-lang/noir#6938)
* Disable mocks in `execute`
(noir-lang/noir#6869)
* require trait primitive functions/calls to have their trait in scope
(noir-lang/noir#6901)
* Reserve `enum` and `match` keywords
(noir-lang/noir#6961)
* require trait method calls (`foo.bar()`) to have the trait in scope
(imported) (noir-lang/noir#6895)
* type-check trait default methods
(noir-lang/noir#6645)
* update `aes128_encrypt` to return an array
(noir-lang/noir#6973)
* turn TypeIsMorePrivateThenItem into an error
(noir-lang/noir#6953)
* turn CannotReexportItemWithLessVisibility into an error
(noir-lang/noir#6952)

### Features

* `--pedantic-solving` flag
(noir-lang/noir#6716)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* 7 bit long `note_type_id`
([#10951](AztecProtocol/aztec-packages#10951))
([6fc5673](AztecProtocol/aztec-packages@6fc5673))
* **avm2:** Avm redesign init
([#10906](AztecProtocol/aztec-packages#10906))
([231f017](AztecProtocol/aztec-packages@231f017))
* Blob sink in sandbox without extra process
([#11032](AztecProtocol/aztec-packages#11032))
([4600f54](AztecProtocol/aztec-packages@4600f54))
* Browser chunking
([#11102](AztecProtocol/aztec-packages#11102))
([393e843](AztecProtocol/aztec-packages@393e843))
* Build blocks using txs with higher fee first
([#11093](AztecProtocol/aztec-packages#11093))
([def7cd7](AztecProtocol/aztec-packages@def7cd7)),
closes
[#11084](AztecProtocol/aztec-packages#11084)
* **cli:** Add CLI option to filter by contract function name
(noir-lang/noir#7018)
([9189120](AztecProtocol/aztec-packages@9189120))
* **comptime:** Implement to_be_bits and to_le_bits in the interpreter
(noir-lang/noir#7008)
([9189120](AztecProtocol/aztec-packages@9189120))
* Contract class must be registered before deployment
([#10949](AztecProtocol/aztec-packages#10949))
([7176a70](AztecProtocol/aztec-packages@7176a70))
* Dashboard in gcp
([#11201](AztecProtocol/aztec-packages#11201))
([2790bd7](AztecProtocol/aztec-packages@2790bd7))
* Disable mocks in `execute`
(noir-lang/noir#6869)
([9189120](AztecProtocol/aztec-packages@9189120))
* Disallow calling unconstrained functions outside of `unsafe` blocks
and passing unconstrained functions in place of constrained functions
(noir-lang/noir#6938)
([9189120](AztecProtocol/aztec-packages@9189120))
* Don't report warnings for dependencies
(noir-lang/noir#6926)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Don't simplify SSA instructions when creating them from a string
(noir-lang/noir#6948)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Expose getL2ToL1Membership on the pxe
([#11215](AztecProtocol/aztec-packages#11215))
([ffd3625](AztecProtocol/aztec-packages@ffd3625))
* Impl Default for U128 (noir-lang/noir#6984)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Inject protocol nullifier conditionally
([#11155](AztecProtocol/aztec-packages#11155))
([93ade26](AztecProtocol/aztec-packages@93ade26))
* Kickoff tube circuits at the beginning of proving job
([#11139](AztecProtocol/aztec-packages#11139))
([85d389f](AztecProtocol/aztec-packages@85d389f)),
closes
[#10998](AztecProtocol/aztec-packages#10998)
* Lock on Nargo.toml on several nargo commands
(noir-lang/noir#6941)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* **lsp:** Use trait method docs for trait impl method docs on hover
(noir-lang/noir#7003)
([9189120](AztecProtocol/aztec-packages@9189120))
* Monitor event loop lag
([#11127](AztecProtocol/aztec-packages#11127))
([422f125](AztecProtocol/aztec-packages@422f125))
* Permutation argument optimizations
([#10960](AztecProtocol/aztec-packages#10960))
([de99603](AztecProtocol/aztec-packages@de99603))
* PXE db contract store
([#10867](AztecProtocol/aztec-packages#10867))
([b5d51eb](AztecProtocol/aztec-packages@b5d51eb))
* Require trait function calls (`Foo::bar()`) to have the trait in scope
(imported) (noir-lang/noir#6882)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Require trait method calls (`foo.bar()`) to have the trait in scope
(imported) (noir-lang/noir#6895)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Require trait primitive functions/calls to have their trait in scope
(noir-lang/noir#6901)
([9189120](AztecProtocol/aztec-packages@9189120))
* Simulator split
([#11144](AztecProtocol/aztec-packages#11144))
([9b99126](AztecProtocol/aztec-packages@9b99126))
* Single tx block root rollup
([#11096](AztecProtocol/aztec-packages#11096))
([bcc0168](AztecProtocol/aztec-packages@bcc0168))
* SSA globals in monomorphization and SSA gen
(noir-lang/noir#6985)
([9189120](AztecProtocol/aztec-packages@9189120))
* **ssa:** Immediately simplify away RefCount instructions in ACIR
functions (noir-lang/noir#6893)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* **test:** Enable the test fuzzer for Wasm
(noir-lang/noir#6835)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Track nodejs runtime metrics
([#11160](AztecProtocol/aztec-packages#11160))
([1d24fab](AztecProtocol/aztec-packages@1d24fab))
* Turn CannotReexportItemWithLessVisibility into an error
(noir-lang/noir#6952)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Turn TypeIsMorePrivateThenItem into an error
(noir-lang/noir#6953)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Type-check trait default methods
(noir-lang/noir#6645)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Unchecked math operations in SSA
(noir-lang/noir#7011)
([9189120](AztecProtocol/aztec-packages@9189120))
* Update `aes128_encrypt` to return an array
(noir-lang/noir#6973)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Use tail public inputs as transaction hash
([#11100](AztecProtocol/aztec-packages#11100))
([34be2c3](AztecProtocol/aztec-packages@34be2c3))
* Validator deadline for reexecution
([#11050](AztecProtocol/aztec-packages#11050))
([1aa34e7](AztecProtocol/aztec-packages@1aa34e7)),
closes
[#10959](AztecProtocol/aztec-packages#10959)


### Bug Fixes

* Added start/stop guards to running promise and serial queue
([#11120](AztecProtocol/aztec-packages#11120))
([23e642f](AztecProtocol/aztec-packages@23e642f))
* Allow multiple trait impls for the same trait as long as one is in
scope (noir-lang/noir#6987)
([9189120](AztecProtocol/aztec-packages@9189120))
* **avm:** AVM circuit fixes related calldata, returndata and call_ptr
([#11207](AztecProtocol/aztec-packages#11207))
([2f05dc0](AztecProtocol/aztec-packages@2f05dc0))
* **avm:** Mac build
([#11195](AztecProtocol/aztec-packages#11195))
([c4f4452](AztecProtocol/aztec-packages@c4f4452))
* **avm:** Mac build (retry)
([#11197](AztecProtocol/aztec-packages#11197))
([0a4b763](AztecProtocol/aztec-packages@0a4b763))
* Aztec-spartan config var
([#11137](AztecProtocol/aztec-packages#11137))
([acbfad4](AztecProtocol/aztec-packages@acbfad4))
* Blob fees & l1-publisher logging
([#11029](AztecProtocol/aztec-packages#11029))
([c2c0bc6](AztecProtocol/aztec-packages@c2c0bc6))
* **bootstrap:** Don't download bad cache if unstaged changes
([#11198](AztecProtocol/aztec-packages#11198))
([2bd895b](AztecProtocol/aztec-packages@2bd895b))
* **boxes:** Fix attempt 2
([#11175](AztecProtocol/aztec-packages#11175))
([e87b11a](AztecProtocol/aztec-packages@e87b11a))
* Bump inotify limits on tester
([#11217](AztecProtocol/aztec-packages#11217))
([60bdf1d](AztecProtocol/aztec-packages@60bdf1d))
* Do not emit range check for multiplication by bool
(noir-lang/noir#6983)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Do not panic on indices which are not valid `u32`s
(noir-lang/noir#6976)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Docs rebuild patterns
([#11191](AztecProtocol/aztec-packages#11191))
([1999990](AztecProtocol/aztec-packages@1999990))
* Don't fail parsing macro if there are parser warnings
(noir-lang/noir#6969)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Don't retransmit txs upon node restart
([#11123](AztecProtocol/aztec-packages#11123))
([39535c9](AztecProtocol/aztec-packages@39535c9))
* Duplicate env vars
([#11166](AztecProtocol/aztec-packages#11166))
([2507b6f](AztecProtocol/aztec-packages@2507b6f))
* Error on missing function parameters
(noir-lang/noir#6967)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Get_next_power_exponent off by 1
([#11169](AztecProtocol/aztec-packages#11169))
([80ec19e](AztecProtocol/aztec-packages@80ec19e))
* Let static_assert fail with the provided message
(noir-lang/noir#7005)
([9189120](AztecProtocol/aztec-packages@9189120))
* Max_note_len computation
([#10438](AztecProtocol/aztec-packages#10438))
([099c17b](AztecProtocol/aztec-packages@099c17b))
* Non-determinism from under constrained checks
(noir-lang/noir#6945)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Prover node aborts execution at epoch end
([#11111](AztecProtocol/aztec-packages#11111))
([2a77616](AztecProtocol/aztec-packages@2a77616)),
closes
[#10802](AztecProtocol/aztec-packages#10802)
* Prover node does not err upon an empty epoch
([#11204](AztecProtocol/aztec-packages#11204))
([2c3ab84](AztecProtocol/aztec-packages@2c3ab84))
* Remove arch tag in sandbox images
([#11233](AztecProtocol/aztec-packages#11233))
([80a872d](AztecProtocol/aztec-packages@80a872d))
* Remove max lookup table size constant (for now)
([#11095](AztecProtocol/aztec-packages#11095))
([7e9e268](AztecProtocol/aztec-packages@7e9e268))
* Reproduce and fix bytecode blowup
(noir-lang/noir#6972)
([9189120](AztecProtocol/aztec-packages@9189120))
* Require generic trait impls to be in scope to call them
(noir-lang/noir#6913)
([9189120](AztecProtocol/aztec-packages@9189120))
* Restore upload_logs script in use by acir bench
([2d88497](AztecProtocol/aztec-packages@2d88497))
* Return trait impl method as FuncId if there's only one
(noir-lang/noir#6989)
([9189120](AztecProtocol/aztec-packages@9189120))
* Revert "chore: use L1 Tx Utils"
([#11167](AztecProtocol/aztec-packages#11167))
([f4e5c79](AztecProtocol/aztec-packages@f4e5c79))
* Sequencer times out L1 tx at end of L2 slot
([#11112](AztecProtocol/aztec-packages#11112))
([1b88a34](AztecProtocol/aztec-packages@1b88a34))
* Show output of `test_program_is_idempotent` on failure
(noir-lang/noir#6942)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Start RC at 1 again (noir-lang/noir#6958)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Underconstrained bug
([#11174](AztecProtocol/aztec-packages#11174))
([0b3088b](AztecProtocol/aztec-packages@0b3088b))
* Update fs max user instances for k8s
([#11220](AztecProtocol/aztec-packages#11220))
([b42da6d](AztecProtocol/aztec-packages@b42da6d))
* Use absolute path for docker bind in e2e-test
([f2885ec](AztecProtocol/aztec-packages@f2885ec))
* Wrong module to lookup trait when using crate or super
(noir-lang/noir#6974)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))


### Miscellaneous

* Add cli option to specify withdrawer address in the add-l1-validator …
([#11199](AztecProtocol/aztec-packages#11199))
([107f175](AztecProtocol/aztec-packages@107f175))
* Add memsuspend to parallel in bootstrap
([#11040](AztecProtocol/aztec-packages#11040))
([c78cb82](AztecProtocol/aztec-packages@c78cb82))
* Add more Field use info (noir-lang/noir#7019)
([9189120](AztecProtocol/aztec-packages@9189120))
* Add reproduction case for bignum test failure
(noir-lang/noir#6464)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Add short circuit in ssa-gen for known if conditions
(noir-lang/noir#7007)
([9189120](AztecProtocol/aztec-packages@9189120))
* Also print test output to stdout in CI
(noir-lang/noir#6930)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* **avm:** Fix mac build
([#11147](AztecProtocol/aztec-packages#11147))
([1775e53](AztecProtocol/aztec-packages@1775e53))
* **avm:** Improve column stats
([#11135](AztecProtocol/aztec-packages#11135))
([535a14c](AztecProtocol/aztec-packages@535a14c))
* **avm:** Re-enable bb-prover tests in CI, change some to
check-circuit-only, enable multi-enqueued call tests
([#11180](AztecProtocol/aztec-packages#11180))
([3092212](AztecProtocol/aztec-packages@3092212))
* **avm:** Vm2 followup cleanup
([#11186](AztecProtocol/aztec-packages#11186))
([6de4013](AztecProtocol/aztec-packages@6de4013))
* Block building benchmark via github-action-benchmark
([#11202](AztecProtocol/aztec-packages#11202))
([c107b6b](AztecProtocol/aztec-packages@c107b6b)),
closes
[#11154](AztecProtocol/aztec-packages#11154)
* Bump `noir-gates-diff` (noir-lang/noir#6943)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Bump `noir-gates-diff` (noir-lang/noir#6944)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Bump `noir-gates-diff` (noir-lang/noir#6949)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Bump arkworks to version `0.5.0`
(noir-lang/noir#6871)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* **ci:** Easier to use mac ci
([#11194](AztecProtocol/aztec-packages#11194))
([9ab4cee](AztecProtocol/aztec-packages@9ab4cee))
* **ci:** Ensure that prover.toml files in protocol circuits are in sync
([#11141](AztecProtocol/aztec-packages#11141))
([db769bd](AztecProtocol/aztec-packages@db769bd))
* **ci:** Fail properly in `external-repo-checks`
(noir-lang/noir#6988)
([9189120](AztecProtocol/aztec-packages@9189120))
* **ci:** Try fix boxes-test
([#11162](AztecProtocol/aztec-packages#11162))
([a66349f](AztecProtocol/aztec-packages@a66349f))
* Clarity fix in docs (noir-lang/noir#7016)
([9189120](AztecProtocol/aztec-packages@9189120))
* Delete a bunch of dead code from `noirc_evaluator`
(noir-lang/noir#6939)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Delete docs for versions which aren't used
(noir-lang/noir#7020)
([9189120](AztecProtocol/aztec-packages@9189120))
* Disable reorg test
([#11176](AztecProtocol/aztec-packages#11176))
([78bec44](AztecProtocol/aztec-packages@78bec44))
* Disallow inserting ACIR-only instructions into brillig functions
(noir-lang/noir#7017)
([9189120](AztecProtocol/aztec-packages@9189120))
* **docs:** Backport 1.0.0-beta.0 doc fixes
(noir-lang/noir#7014)
([9189120](AztecProtocol/aztec-packages@9189120))
* **docs:** Edit Aztec.nr Guide section
([#10866](AztecProtocol/aztec-packages#10866))
([4051ba8](AztecProtocol/aztec-packages@4051ba8))
* **docs:** Remove node pages
([#11161](AztecProtocol/aztec-packages#11161))
([e494f6b](AztecProtocol/aztec-packages@e494f6b))
* **docs:** Update tx concepts page
([#10947](AztecProtocol/aztec-packages#10947))
([d9d9798](AztecProtocol/aztec-packages@d9d9798))
* Document aztec-nargo in readme
([#11173](AztecProtocol/aztec-packages#11173))
([927eabf](AztecProtocol/aztec-packages@927eabf))
* Greater stability at 1TPS
([#10981](AztecProtocol/aztec-packages#10981))
([1c23662](AztecProtocol/aztec-packages@1c23662))
* Jest reporters for CI
([#11125](AztecProtocol/aztec-packages#11125))
([90cd9d2](AztecProtocol/aztec-packages@90cd9d2))
* Log number of instructions executed for call in AVM. Misc fix.
([#11110](AztecProtocol/aztec-packages#11110))
([44e01f4](AztecProtocol/aztec-packages@44e01f4))
* Mark `aztec-nr` as expected to compile
(noir-lang/noir#7015)
([9189120](AztecProtocol/aztec-packages@9189120))
* Mark casts as able to be deduplicated
(noir-lang/noir#6996)
([9189120](AztecProtocol/aztec-packages@9189120))
* Missed test account retrieval simplification in one spot
([#11172](AztecProtocol/aztec-packages#11172))
([b72234e](AztecProtocol/aztec-packages@b72234e))
* Move comment as part of
[#6945](AztecProtocol/aztec-packages#6945)
(noir-lang/noir#6959)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Move witness computation into class plus some other cleanup
([#11140](AztecProtocol/aztec-packages#11140))
([d41e9ab](AztecProtocol/aztec-packages@d41e9ab))
* Nuke unused `getSiblingPath` oracle
([#11090](AztecProtocol/aztec-packages#11090))
([36b640a](AztecProtocol/aztec-packages@36b640a))
* Nuking mental model of "packing into a hash"
([#11200](AztecProtocol/aztec-packages#11200))
([e1ebcc0](AztecProtocol/aztec-packages@e1ebcc0))
* Only resolved globals monomorphization
(noir-lang/noir#7006)
([9189120](AztecProtocol/aztec-packages@9189120))
* Prover db config
([#11126](AztecProtocol/aztec-packages#11126))
([9d49393](AztecProtocol/aztec-packages@9d49393)),
closes
[#10267](AztecProtocol/aztec-packages#10267)
* Redo typo PR by longxiangqiao
([#11109](AztecProtocol/aztec-packages#11109))
([b8ef30e](AztecProtocol/aztec-packages@b8ef30e))
* Refactor `get_tx_effects_hash_input_helper`
([#11213](AztecProtocol/aztec-packages#11213))
([5becb99](AztecProtocol/aztec-packages@5becb99))
* Refactor Solidity Transcript and improve error handling in sol_honk
flow
([#11158](AztecProtocol/aztec-packages#11158))
([58fdf87](AztecProtocol/aztec-packages@58fdf87))
* Remove explicit collector address
([#11227](AztecProtocol/aztec-packages#11227))
([dfb0db5](AztecProtocol/aztec-packages@dfb0db5))
* Remove resolve_is_unconstrained pass
(noir-lang/noir#7004)
([9189120](AztecProtocol/aztec-packages@9189120))
* Removing noir bug workaround
([#10535](AztecProtocol/aztec-packages#10535))
([8be882f](AztecProtocol/aztec-packages@8be882f))
* Replace relative paths to noir-protocol-circuits
([d8619fa](AztecProtocol/aztec-packages@d8619fa))
* Replace relative paths to noir-protocol-circuits
([70cad1c](AztecProtocol/aztec-packages@70cad1c))
* Replace relative paths to noir-protocol-circuits
([e962534](AztecProtocol/aztec-packages@e962534))
* Replace relative paths to noir-protocol-circuits
([ba5a589](AztecProtocol/aztec-packages@ba5a589))
* Replace relative paths to noir-protocol-circuits
([b7c3fa2](AztecProtocol/aztec-packages@b7c3fa2))
* Replace relative paths to noir-protocol-circuits
([32840c6](AztecProtocol/aztec-packages@32840c6))
* Require safety doc comment for unsafe instead of
`//[@safety](https://github.com/safety)`
(noir-lang/noir#6992)
([9189120](AztecProtocol/aztec-packages@9189120))
* Reserve `enum` and `match` keywords
(noir-lang/noir#6961)
([9189120](AztecProtocol/aztec-packages@9189120))
* Rpc server cleanup & misc fixes
([#11145](AztecProtocol/aztec-packages#11145))
([8a927eb](AztecProtocol/aztec-packages@8a927eb))
* Sanity checking of proving job IDs
([#11134](AztecProtocol/aztec-packages#11134))
([61c3e95](AztecProtocol/aztec-packages@61c3e95))
* Save kind smoke test logs as artifact
([#11212](AztecProtocol/aztec-packages#11212))
([1389a5b](AztecProtocol/aztec-packages@1389a5b))
* Separate unconstrained functions during monomorphization
(noir-lang/noir#6894)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* Simplify a couple of enum variants
(noir-lang/noir#7025)
([9189120](AztecProtocol/aztec-packages@9189120))
* Simplify boolean in a mul of a mul
(noir-lang/noir#6951)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* SmallSubgroupIPA tests
([#11106](AztecProtocol/aztec-packages#11106))
([f034e2a](AztecProtocol/aztec-packages@f034e2a))
* **spartan:** Making the spartan script install jq
([#11231](AztecProtocol/aztec-packages#11231))
([7e628cc](AztecProtocol/aztec-packages@7e628cc))
* Test:e2e defaults to no-docker
([#10966](AztecProtocol/aztec-packages#10966))
([15e0d71](AztecProtocol/aztec-packages@15e0d71))
* Turn on averaging for protocol circuits metrics in CI
(noir-lang/noir#6999)
([9189120](AztecProtocol/aztec-packages@9189120))
* Update aztec-spartan.sh script
([#11228](AztecProtocol/aztec-packages#11228))
([52b3a87](AztecProtocol/aztec-packages@52b3a87))
* Use DFG in SSA printer (noir-lang/noir#6986)
([9189120](AztecProtocol/aztec-packages@9189120))
* Use L1 Tx Utils
([#10759](AztecProtocol/aztec-packages#10759))
([ccf28f5](AztecProtocol/aztec-packages@ccf28f5)),
closes
[#10464](AztecProtocol/aztec-packages#10464)
* Use logs for benchmarking
(noir-lang/noir#6911)
([3883a0e](AztecProtocol/aztec-packages@3883a0e))
* VariableMerkleTree readability improvements
([#11165](AztecProtocol/aztec-packages#11165))
([010d1b0](AztecProtocol/aztec-packages@010d1b0))
* Wait for ethereum in each pod
([#11238](AztecProtocol/aztec-packages#11238))
([9c08e00](AztecProtocol/aztec-packages@9c08e00))


### Documentation

* Enable protocol specs for docs in dev mode
([#11219](AztecProtocol/aztec-packages#11219))
([10c8afe](AztecProtocol/aztec-packages@10c8afe))
</details>

<details><summary>barretenberg: 0.70.0</summary>

##
[0.70.0](AztecProtocol/aztec-packages@barretenberg-v0.69.1...barretenberg-v0.70.0)
(2025-01-15)


### Features

* **avm2:** Avm redesign init
([#10906](AztecProtocol/aztec-packages#10906))
([231f017](AztecProtocol/aztec-packages@231f017))
* Permutation argument optimizations
([#10960](AztecProtocol/aztec-packages#10960))
([de99603](AztecProtocol/aztec-packages@de99603))
* Use tail public inputs as transaction hash
([#11100](AztecProtocol/aztec-packages#11100))
([34be2c3](AztecProtocol/aztec-packages@34be2c3))


### Bug Fixes

* **avm:** AVM circuit fixes related calldata, returndata and call_ptr
([#11207](AztecProtocol/aztec-packages#11207))
([2f05dc0](AztecProtocol/aztec-packages@2f05dc0))
* **avm:** Mac build
([#11195](AztecProtocol/aztec-packages#11195))
([c4f4452](AztecProtocol/aztec-packages@c4f4452))
* **avm:** Mac build (retry)
([#11197](AztecProtocol/aztec-packages#11197))
([0a4b763](AztecProtocol/aztec-packages@0a4b763))
* **bootstrap:** Don't download bad cache if unstaged changes
([#11198](AztecProtocol/aztec-packages#11198))
([2bd895b](AztecProtocol/aztec-packages@2bd895b))
* Remove max lookup table size constant (for now)
([#11095](AztecProtocol/aztec-packages#11095))
([7e9e268](AztecProtocol/aztec-packages@7e9e268))


### Miscellaneous

* **avm:** Fix mac build
([#11147](AztecProtocol/aztec-packages#11147))
([1775e53](AztecProtocol/aztec-packages@1775e53))
* **avm:** Improve column stats
([#11135](AztecProtocol/aztec-packages#11135))
([535a14c](AztecProtocol/aztec-packages@535a14c))
* **avm:** Re-enable bb-prover tests in CI, change some to
check-circuit-only, enable multi-enqueued call tests
([#11180](AztecProtocol/aztec-packages#11180))
([3092212](AztecProtocol/aztec-packages@3092212))
* **avm:** Vm2 followup cleanup
([#11186](AztecProtocol/aztec-packages#11186))
([6de4013](AztecProtocol/aztec-packages@6de4013))
* **docs:** Update tx concepts page
([#10947](AztecProtocol/aztec-packages#10947))
([d9d9798](AztecProtocol/aztec-packages@d9d9798))
* Move witness computation into class plus some other cleanup
([#11140](AztecProtocol/aztec-packages#11140))
([d41e9ab](AztecProtocol/aztec-packages@d41e9ab))
* Redo typo PR by longxiangqiao
([#11109](AztecProtocol/aztec-packages#11109))
([b8ef30e](AztecProtocol/aztec-packages@b8ef30e))
* Refactor Solidity Transcript and improve error handling in sol_honk
flow
([#11158](AztecProtocol/aztec-packages#11158))
([58fdf87](AztecProtocol/aztec-packages@58fdf87))
* SmallSubgroupIPA tests
([#11106](AztecProtocol/aztec-packages#11106))
([f034e2a](AztecProtocol/aztec-packages@f034e2a))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants