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

fix: AVM witgen track gas for nested calls and external halts #10731

Merged
merged 12 commits into from
Dec 17, 2024

Conversation

dbanks12
Copy link
Collaborator

@dbanks12 dbanks12 commented Dec 13, 2024

Resolves #10033
Resolves #10374

This PR does the following:

  • Witgen handles out-of-gas errors for all opcodes
  • all halts (return/revert/exceptional) work as follows:
    • charge gas for the problematic instruction as always, adding a row to the gas trace
    • pop the parent/caller's latest gas from the stack
    • call a helper function on the gas trace to mutate that most recent gas row, returning to the parent's latest gas minus any consumed gas (all gas consumed on exceptional halt)
  • GasTraceEntry includes a field is_halt_or_first_row_in_nested_call which lets us break gas rules on a halt or when starting a nested call because in both cases gas will jump.
  • constrain_gas returns a bool out_of_gas so that opcode implementations can handle out of gas
  • write_to_memory now has an option to skip the "jump back to correct pc" which was problematic when halting because the jump wouldn't result in a next row with the right pc

Explanation on how gas works for calls:

  • Parent snapshots its gas right before a nested call in ctx.*_gas_left
  • Nested call is given a ctx.start_*_gas_left and the gas trace is forced to that same value
  • throughout the nested call, the gas trace operates normally, charging per instruction
  • when any halt is encountered, the instruction that halted must have its gas charged normally, but then we call a helper function on the gas trace to mutate the most recent row, flagging it to eventually become a sort of "fake" row that skips some constraints
  • the mutation of the halting row resets the gas to the parents last gas before the call (minus however much gas was consumed by the nested call... if exceptional halt, that is all allocated gas)

Follow-up work

  • properly constrain gas for nested calls, returns, reverts and exceptional halts
  • if jump exceptionally halts (i.e. out of gas), it should be okay that the next row doesn't have the target pc
  • Handle the edge case when an error is encountered on return/revert/call, but after the stack has already been modified

Comment on lines -840 to +848
check_bytecode_membership);
/*check_membership=*/false);
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

don't need to check membership when we're returning to parent's byecode

Comment on lines 4099 to 4103

if (is_ok(error)) {
error = AvmError::REVERT_OPCODE;
}
// if (is_ok(error)) {
// error = AvmError::REVERT_OPCODE;
// }

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Treating errors as exceptional halts that consume all gas. Explicit reverts do not. I could alternatively this error type in execution.cpp in a special way.

Comment on lines 66 to 71
//TODO(8945): clean up fake row related code
#[L2_GAS_NO_DECREMENT_FAKE_ROW]
is_fake_row * (l2_gas_remaining - l2_gas_remaining') = 0;
#[DA_GAS_NO_DECREMENT_FAKE_ROW]
is_fake_row * (da_gas_remaining - da_gas_remaining') = 0;
//#[L2_GAS_NO_DECREMENT_FAKE_ROW]
//is_fake_row * (l2_gas_remaining - l2_gas_remaining') = 0;
//#[DA_GAS_NO_DECREMENT_FAKE_ROW]
//is_fake_row * (da_gas_remaining - da_gas_remaining') = 0;

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The concept of "fake rows" is now reused for rows that halt (for any reason). Rows that halt have a jump in gas as they return to the parent's gas with the nested call's used gas consumed.

@dbanks12 dbanks12 added the e2e-all CI: Deprecated, use ci-full. Enable all master checks. label Dec 17, 2024
@dbanks12 dbanks12 marked this pull request as ready for review December 17, 2024 03:41
Comment on lines -441 to +446
while (is_ok(error) && (pc = trace_builder.get_pc()) < bytecode.size()) {
while ((pc = trace_builder.get_pc()) < bytecode.size()) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

we break on error now

bool isCanonical(FF contract_address)
bool is_canonical(FF contract_address)
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fix case

@IlyasRidhuan
Copy link
Contributor

LGTM!

Copy link
Contributor

github-actions bot commented Dec 17, 2024

Changes to public function bytecode sizes

Generated at commit: 73f7090cb26d52b743842aa37cadf89311c89aa8, compared to commit: 1516d7f7bd6a2adbb650bd7cdd572b33db98dbfc

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
AvmTest::public_dispatch +1,791 ❌ +2.88%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
AvmTest::public_dispatch 64,027 (+1,791) +2.88%

@dbanks12 dbanks12 enabled auto-merge (squash) December 17, 2024 14:10
@dbanks12 dbanks12 disabled auto-merge December 17, 2024 22:14
@dbanks12 dbanks12 merged commit b8bdb52 into master Dec 17, 2024
114 of 116 checks passed
@dbanks12 dbanks12 deleted the db/gas-halts branch December 17, 2024 22:14
ludamad pushed a commit that referenced this pull request Dec 18, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.67.1](aztec-package-v0.67.0...aztec-package-v0.67.1)
(2024-12-17)


### Miscellaneous

* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
</details>

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

##
[0.67.1](barretenberg.js-v0.67.0...barretenberg.js-v0.67.1)
(2024-12-17)


### Features

* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))


### Bug Fixes

* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
</details>

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

##
[0.67.1](aztec-packages-v0.67.0...aztec-packages-v0.67.1)
(2024-12-17)


### Features

* `nargo test -q` (or `nargo test --format terse`)
(noir-lang/noir#6776)
([8956e28](8956e28))
* Add `(x | 1)` optimization for booleans
(noir-lang/noir#6795)
([8956e28](8956e28))
* Add `nargo test --format json`
(noir-lang/noir#6796)
([d74d0fc](d74d0fc))
* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* **avm:** Migrate simulator memory to a map
([#10715](#10715))
([64d5f2b](64d5f2b)),
closes
[#10370](#10370)
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Blobs 2.
([#10188](#10188))
([d0a4b2f](d0a4b2f))
* **blobs:** Add consensus client url to config
([#10059](#10059))
([1e15bf5](1e15bf5))
* Check max fees per gas
([#10283](#10283))
([4e59b06](4e59b06))
* **cli:** Verify `return` against ABI and `Prover.toml`
(noir-lang/noir#6765)
([8956e28](8956e28))
* Don't store every block number in block indices DB
([#10658](#10658))
([a3fba84](a3fba84))
* Json output for get_node_info
([#10771](#10771))
([b086c52](b086c52))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* **p2p:** Activate gossipsub tx validators
([#10695](#10695))
([9cce2c6](9cce2c6))
* **p2p:** Attestation pool persistence
([#10667](#10667))
([dacef9f](dacef9f))
* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))
* **ssa:** Bring back tracking of RC instructions during DIE
(noir-lang/noir#6783)
([308c5ce](308c5ce))
* **ssa:** Hoist MakeArray instructions during loop invariant code
motion (noir-lang/noir#6782)
([8956e28](8956e28))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))
* TXE detects duplicate nullifiers
([#10764](#10764))
([7f70110](7f70110))


### Bug Fixes

* Always remove nullified notes
([#10722](#10722))
([5e4b46d](5e4b46d))
* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](#10731))
([b8bdb52](b8bdb52))
* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Block building test timeout
([#10812](#10812))
([2cad3e5](2cad3e5))
* Cache
([#10692](#10692))
([1b1306c](1b1306c))
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
* **ci:** Network-test timing
([#10725](#10725))
([9c9a2dc](9c9a2dc))
* Disable failure persistance in nargo test fuzzing
(noir-lang/noir#6777)
([8956e28](8956e28))
* Get e2e jobs
([#10689](#10689))
([37e1999](37e1999))
* Give build:fast a try in build
([#10702](#10702))
([32095f6](32095f6))
* Minimal change to avoid reverting entire PR
[#6685](#6685)
(noir-lang/noir#6778)
([8956e28](8956e28))
* Optimizer to keep track of changing opcode locations
(noir-lang/noir#6781)
([8956e28](8956e28))
* Race condition in block stream
([#10779](#10779))
([64bccd0](64bccd0))
* Race condition when cleaning epoch proof quotes
([#10795](#10795))
([f540fbe](f540fbe))
* **testdata:** Relative path calculation
([#10791](#10791))
([5a530db](5a530db))
* Try fix e2e epochs in CI
([#10804](#10804))
([ba28788](ba28788))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))
* Use extension in docs link so it also works on GitHub
(noir-lang/noir#6787)
([8956e28](8956e28))
* Use throw instead of reject in broker facade
([#10735](#10735))
([cc6a72b](cc6a72b))


### Miscellaneous

* `getLogsByTags` request batching in `syncTaggedLogs`
([#10716](#10716))
([bbbf38b](bbbf38b))
* Add `Instruction::map_values_mut`
(noir-lang/noir#6756)
([308c5ce](308c5ce))
* Add errors to abis
([#10697](#10697))
([5c8e017](5c8e017))
* Add retries for prover node p2p test
([#10699](#10699))
([4115bf9](4115bf9))
* Add spans to proving job
([#10794](#10794))
([df3c51b](df3c51b))
* Average alerts across namespace for 1 hour
([#10827](#10827))
([962a7a2](962a7a2))
* **avm:** Disable fake avm recursive verifier from the public base
rollup
([#10690](#10690))
([b6c9c41](b6c9c41))
* **avm:** Radix opcode - remove immediates
([#10696](#10696))
([4ac13e6](4ac13e6)),
closes
[#10371](#10371)
* Better reqresp logging + handle empty responses in snappy
([#10657](#10657))
([934107f](934107f))
* Bump metrics and node pool
([#10745](#10745))
([9bb88bf](9bb88bf))
* Change Id to use a u32 (noir-lang/noir#6807)
([d74d0fc](d74d0fc))
* **ci:** Active rollup circuits in compilation report
(noir-lang/noir#6813)
([308c5ce](308c5ce))
* **ci:** Add bloblib to external checks
(noir-lang/noir#6818)
([381b0b8](381b0b8))
* Cleanup after e2e tests
([#10748](#10748))
([284b0a4](284b0a4))
* Disable ARM CI
([#10682](#10682))
([b16945b](b16945b))
* Do not print entire functions when running debug trace
(noir-lang/noir#6814)
([308c5ce](308c5ce))
* **docs:** Update migration notes
([#10829](#10829))
([be7cadf](be7cadf))
* **docs:** Workaround (noir-lang/noir#6819)
([381b0b8](381b0b8))
* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Log error in retry module
([#10719](#10719))
([84ea539](84ea539))
* Manage call stacks using a tree
(noir-lang/noir#6791)
([381b0b8](381b0b8))
* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
* **p2p:** Move services into folders
([#10694](#10694))
([e28d12a](e28d12a))
* **prover:** Prover node should not gossip attestations
([#10672](#10672))
([41fc0f0](41fc0f0))
* Remove default export for noir contracts js
([#10762](#10762))
([c8e7763](c8e7763))
* Remove sinon in favor of a date provider
([#10705](#10705))
([3d3fabb](3d3fabb))
* Remove spurious echo
([#10774](#10774))
([5538f8c](5538f8c))
* Replace relative paths to noir-protocol-circuits
([f85fa3f](f85fa3f))
* Replace relative paths to noir-protocol-circuits
([b19c561](b19c561))
* Set max txs in spam test
([#10717](#10717))
([a50ff6c](a50ff6c))
* Slack notifications for networks
([#10784](#10784))
([bab9f85](bab9f85))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* **ssa:** Activate loop invariant code motion on ACIR functions
(noir-lang/noir#6785)
([8956e28](8956e28))
* Sync grafana dashboard
([#10792](#10792))
([421fb65](421fb65))
* Tagging cleanup
([#10675](#10675))
([52b541a](52b541a))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
* Update external joiner script for new networks
([#10810](#10810))
([5f11cf4](5f11cf4))
</details>

<details><summary>barretenberg: 0.67.1</summary>

##
[0.67.1](barretenberg-v0.67.0...barretenberg-v0.67.1)
(2024-12-17)


### Features

* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Don't store every block number in block indices DB
([#10658](#10658))
([a3fba84](a3fba84))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))


### Bug Fixes

* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](#10731))
([b8bdb52](b8bdb52))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))


### Miscellaneous

* **avm:** Radix opcode - remove immediates
([#10696](#10696))
([4ac13e6](4ac13e6)),
closes
[#10371](#10371)
* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
</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 Dec 18, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.67.1](AztecProtocol/aztec-packages@aztec-package-v0.67.0...aztec-package-v0.67.1)
(2024-12-17)


### Miscellaneous

* Granular CLI imports to reduce start time
([#10778](AztecProtocol/aztec-packages#10778))
([e2fd046](AztecProtocol/aztec-packages@e2fd046))
* Split up protocol contract artifacts
([#10765](AztecProtocol/aztec-packages#10765))
([5a9ca18](AztecProtocol/aztec-packages@5a9ca18))
* Trace and handle errors in running promises
([#10645](AztecProtocol/aztec-packages#10645))
([4cc0a6d](AztecProtocol/aztec-packages@4cc0a6d))
</details>

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

##
[0.67.1](AztecProtocol/aztec-packages@barretenberg.js-v0.67.0...barretenberg.js-v0.67.1)
(2024-12-17)


### Features

* PXE browser proving
([#10704](AztecProtocol/aztec-packages#10704))
([46da3cc](AztecProtocol/aztec-packages@46da3cc))


### Bug Fixes

* **bb.js:** Use globalThis instead of self
([#10747](AztecProtocol/aztec-packages#10747))
([309b5f7](AztecProtocol/aztec-packages@309b5f7)),
closes
[#10741](AztecProtocol/aztec-packages#10741)
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](AztecProtocol/aztec-packages#10769))
([6a5bcfd](AztecProtocol/aztec-packages@6a5bcfd))
</details>

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

##
[0.67.1](AztecProtocol/aztec-packages@aztec-packages-v0.67.0...aztec-packages-v0.67.1)
(2024-12-17)


### Features

* `nargo test -q` (or `nargo test --format terse`)
(noir-lang/noir#6776)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Add `(x | 1)` optimization for booleans
(noir-lang/noir#6795)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Add `nargo test --format json`
(noir-lang/noir#6796)
([d74d0fc](AztecProtocol/aztec-packages@d74d0fc))
* Add tree equality assertions
([#10756](AztecProtocol/aztec-packages#10756))
([923826a](AztecProtocol/aztec-packages@923826a))
* **avm:** Migrate simulator memory to a map
([#10715](AztecProtocol/aztec-packages#10715))
([64d5f2b](AztecProtocol/aztec-packages@64d5f2b)),
closes
[#10370](AztecProtocol/aztec-packages#10370)
* Better initialization for permutation mapping components
([#10750](AztecProtocol/aztec-packages#10750))
([1516d7f](AztecProtocol/aztec-packages@1516d7f))
* Blobs 2.
([#10188](AztecProtocol/aztec-packages#10188))
([d0a4b2f](AztecProtocol/aztec-packages@d0a4b2f))
* **blobs:** Add consensus client url to config
([#10059](AztecProtocol/aztec-packages#10059))
([1e15bf5](AztecProtocol/aztec-packages@1e15bf5))
* Check max fees per gas
([#10283](AztecProtocol/aztec-packages#10283))
([4e59b06](AztecProtocol/aztec-packages@4e59b06))
* **cli:** Verify `return` against ABI and `Prover.toml`
(noir-lang/noir#6765)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Don't store every block number in block indices DB
([#10658](AztecProtocol/aztec-packages#10658))
([a3fba84](AztecProtocol/aztec-packages@a3fba84))
* Json output for get_node_info
([#10771](AztecProtocol/aztec-packages#10771))
([b086c52](AztecProtocol/aztec-packages@b086c52))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](AztecProtocol/aztec-packages#10649))
([a437e73](AztecProtocol/aztec-packages@a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](AztecProtocol/aztec-packages#10777))
([9fbcff6](AztecProtocol/aztec-packages@9fbcff6))
* Note hash management in the AVM
([#10666](AztecProtocol/aztec-packages#10666))
([e077980](AztecProtocol/aztec-packages@e077980))
* **p2p:** Activate gossipsub tx validators
([#10695](AztecProtocol/aztec-packages#10695))
([9cce2c6](AztecProtocol/aztec-packages@9cce2c6))
* **p2p:** Attestation pool persistence
([#10667](AztecProtocol/aztec-packages#10667))
([dacef9f](AztecProtocol/aztec-packages@dacef9f))
* PXE browser proving
([#10704](AztecProtocol/aztec-packages#10704))
([46da3cc](AztecProtocol/aztec-packages@46da3cc))
* **ssa:** Bring back tracking of RC instructions during DIE
(noir-lang/noir#6783)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* **ssa:** Hoist MakeArray instructions during loop invariant code
motion (noir-lang/noir#6782)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Sumcheck with disabled rows
([#10068](AztecProtocol/aztec-packages#10068))
([abd2226](AztecProtocol/aztec-packages@abd2226))
* TXE detects duplicate nullifiers
([#10764](AztecProtocol/aztec-packages#10764))
([7f70110](AztecProtocol/aztec-packages@7f70110))


### Bug Fixes

* Always remove nullified notes
([#10722](AztecProtocol/aztec-packages#10722))
([5e4b46d](AztecProtocol/aztec-packages@5e4b46d))
* Avm gas and non-member
([#10709](AztecProtocol/aztec-packages#10709))
([dd8cc7b](AztecProtocol/aztec-packages@dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](AztecProtocol/aztec-packages#10731))
([b8bdb52](AztecProtocol/aztec-packages@b8bdb52))
* **bb.js:** Use globalThis instead of self
([#10747](AztecProtocol/aztec-packages#10747))
([309b5f7](AztecProtocol/aztec-packages@309b5f7)),
closes
[#10741](AztecProtocol/aztec-packages#10741)
* Block building test timeout
([#10812](AztecProtocol/aztec-packages#10812))
([2cad3e5](AztecProtocol/aztec-packages@2cad3e5))
* Cache
([#10692](AztecProtocol/aztec-packages#10692))
([1b1306c](AztecProtocol/aztec-packages@1b1306c))
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](AztecProtocol/aztec-packages#10769))
([6a5bcfd](AztecProtocol/aztec-packages@6a5bcfd))
* **ci:** Network-test timing
([#10725](AztecProtocol/aztec-packages#10725))
([9c9a2dc](AztecProtocol/aztec-packages@9c9a2dc))
* Disable failure persistance in nargo test fuzzing
(noir-lang/noir#6777)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Get e2e jobs
([#10689](AztecProtocol/aztec-packages#10689))
([37e1999](AztecProtocol/aztec-packages@37e1999))
* Give build:fast a try in build
([#10702](AztecProtocol/aztec-packages#10702))
([32095f6](AztecProtocol/aztec-packages@32095f6))
* Minimal change to avoid reverting entire PR
[#6685](AztecProtocol/aztec-packages#6685)
(noir-lang/noir#6778)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Optimizer to keep track of changing opcode locations
(noir-lang/noir#6781)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Race condition in block stream
([#10779](AztecProtocol/aztec-packages#10779))
([64bccd0](AztecProtocol/aztec-packages@64bccd0))
* Race condition when cleaning epoch proof quotes
([#10795](AztecProtocol/aztec-packages#10795))
([f540fbe](AztecProtocol/aztec-packages@f540fbe))
* **testdata:** Relative path calculation
([#10791](AztecProtocol/aztec-packages#10791))
([5a530db](AztecProtocol/aztec-packages@5a530db))
* Try fix e2e epochs in CI
([#10804](AztecProtocol/aztec-packages#10804))
([ba28788](AztecProtocol/aztec-packages@ba28788))
* Use correct size for databus_id
([#10673](AztecProtocol/aztec-packages#10673))
([95eb658](AztecProtocol/aztec-packages@95eb658))
* Use extension in docs link so it also works on GitHub
(noir-lang/noir#6787)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Use throw instead of reject in broker facade
([#10735](AztecProtocol/aztec-packages#10735))
([cc6a72b](AztecProtocol/aztec-packages@cc6a72b))


### Miscellaneous

* `getLogsByTags` request batching in `syncTaggedLogs`
([#10716](AztecProtocol/aztec-packages#10716))
([bbbf38b](AztecProtocol/aztec-packages@bbbf38b))
* Add `Instruction::map_values_mut`
(noir-lang/noir#6756)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* Add errors to abis
([#10697](AztecProtocol/aztec-packages#10697))
([5c8e017](AztecProtocol/aztec-packages@5c8e017))
* Add retries for prover node p2p test
([#10699](AztecProtocol/aztec-packages#10699))
([4115bf9](AztecProtocol/aztec-packages@4115bf9))
* Add spans to proving job
([#10794](AztecProtocol/aztec-packages#10794))
([df3c51b](AztecProtocol/aztec-packages@df3c51b))
* Average alerts across namespace for 1 hour
([#10827](AztecProtocol/aztec-packages#10827))
([962a7a2](AztecProtocol/aztec-packages@962a7a2))
* **avm:** Disable fake avm recursive verifier from the public base
rollup
([#10690](AztecProtocol/aztec-packages#10690))
([b6c9c41](AztecProtocol/aztec-packages@b6c9c41))
* **avm:** Radix opcode - remove immediates
([#10696](AztecProtocol/aztec-packages#10696))
([4ac13e6](AztecProtocol/aztec-packages@4ac13e6)),
closes
[#10371](AztecProtocol/aztec-packages#10371)
* Better reqresp logging + handle empty responses in snappy
([#10657](AztecProtocol/aztec-packages#10657))
([934107f](AztecProtocol/aztec-packages@934107f))
* Bump metrics and node pool
([#10745](AztecProtocol/aztec-packages#10745))
([9bb88bf](AztecProtocol/aztec-packages@9bb88bf))
* Change Id to use a u32 (noir-lang/noir#6807)
([d74d0fc](AztecProtocol/aztec-packages@d74d0fc))
* **ci:** Active rollup circuits in compilation report
(noir-lang/noir#6813)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* **ci:** Add bloblib to external checks
(noir-lang/noir#6818)
([381b0b8](AztecProtocol/aztec-packages@381b0b8))
* Cleanup after e2e tests
([#10748](AztecProtocol/aztec-packages#10748))
([284b0a4](AztecProtocol/aztec-packages@284b0a4))
* Disable ARM CI
([#10682](AztecProtocol/aztec-packages#10682))
([b16945b](AztecProtocol/aztec-packages@b16945b))
* Do not print entire functions when running debug trace
(noir-lang/noir#6814)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* **docs:** Update migration notes
([#10829](AztecProtocol/aztec-packages#10829))
([be7cadf](AztecProtocol/aztec-packages@be7cadf))
* **docs:** Workaround (noir-lang/noir#6819)
([381b0b8](AztecProtocol/aztec-packages@381b0b8))
* Granular CLI imports to reduce start time
([#10778](AztecProtocol/aztec-packages#10778))
([e2fd046](AztecProtocol/aztec-packages@e2fd046))
* Log error in retry module
([#10719](AztecProtocol/aztec-packages#10719))
([84ea539](AztecProtocol/aztec-packages@84ea539))
* Manage call stacks using a tree
(noir-lang/noir#6791)
([381b0b8](AztecProtocol/aztec-packages@381b0b8))
* Move decider PK allocation to methods
([#10670](AztecProtocol/aztec-packages#10670))
([1ab9e30](AztecProtocol/aztec-packages@1ab9e30))
* **p2p:** Move services into folders
([#10694](AztecProtocol/aztec-packages#10694))
([e28d12a](AztecProtocol/aztec-packages@e28d12a))
* **prover:** Prover node should not gossip attestations
([#10672](AztecProtocol/aztec-packages#10672))
([41fc0f0](AztecProtocol/aztec-packages@41fc0f0))
* Remove default export for noir contracts js
([#10762](AztecProtocol/aztec-packages#10762))
([c8e7763](AztecProtocol/aztec-packages@c8e7763))
* Remove sinon in favor of a date provider
([#10705](AztecProtocol/aztec-packages#10705))
([3d3fabb](AztecProtocol/aztec-packages@3d3fabb))
* Remove spurious echo
([#10774](AztecProtocol/aztec-packages#10774))
([5538f8c](AztecProtocol/aztec-packages@5538f8c))
* Replace relative paths to noir-protocol-circuits
([f85fa3f](AztecProtocol/aztec-packages@f85fa3f))
* Replace relative paths to noir-protocol-circuits
([b19c561](AztecProtocol/aztec-packages@b19c561))
* Set max txs in spam test
([#10717](AztecProtocol/aztec-packages#10717))
([a50ff6c](AztecProtocol/aztec-packages@a50ff6c))
* Slack notifications for networks
([#10784](AztecProtocol/aztec-packages#10784))
([bab9f85](AztecProtocol/aztec-packages@bab9f85))
* Split up protocol contract artifacts
([#10765](AztecProtocol/aztec-packages#10765))
([5a9ca18](AztecProtocol/aztec-packages@5a9ca18))
* **ssa:** Activate loop invariant code motion on ACIR functions
(noir-lang/noir#6785)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Sync grafana dashboard
([#10792](AztecProtocol/aztec-packages#10792))
([421fb65](AztecProtocol/aztec-packages@421fb65))
* Tagging cleanup
([#10675](AztecProtocol/aztec-packages#10675))
([52b541a](AztecProtocol/aztec-packages@52b541a))
* Trace and handle errors in running promises
([#10645](AztecProtocol/aztec-packages#10645))
([4cc0a6d](AztecProtocol/aztec-packages@4cc0a6d))
* Update external joiner script for new networks
([#10810](AztecProtocol/aztec-packages#10810))
([5f11cf4](AztecProtocol/aztec-packages@5f11cf4))
</details>

<details><summary>barretenberg: 0.67.1</summary>

##
[0.67.1](AztecProtocol/aztec-packages@barretenberg-v0.67.0...barretenberg-v0.67.1)
(2024-12-17)


### Features

* Add tree equality assertions
([#10756](AztecProtocol/aztec-packages#10756))
([923826a](AztecProtocol/aztec-packages@923826a))
* Better initialization for permutation mapping components
([#10750](AztecProtocol/aztec-packages#10750))
([1516d7f](AztecProtocol/aztec-packages@1516d7f))
* Don't store every block number in block indices DB
([#10658](AztecProtocol/aztec-packages#10658))
([a3fba84](AztecProtocol/aztec-packages@a3fba84))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](AztecProtocol/aztec-packages#10649))
([a437e73](AztecProtocol/aztec-packages@a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](AztecProtocol/aztec-packages#10777))
([9fbcff6](AztecProtocol/aztec-packages@9fbcff6))
* Note hash management in the AVM
([#10666](AztecProtocol/aztec-packages#10666))
([e077980](AztecProtocol/aztec-packages@e077980))
* Sumcheck with disabled rows
([#10068](AztecProtocol/aztec-packages#10068))
([abd2226](AztecProtocol/aztec-packages@abd2226))


### Bug Fixes

* Avm gas and non-member
([#10709](AztecProtocol/aztec-packages#10709))
([dd8cc7b](AztecProtocol/aztec-packages@dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](AztecProtocol/aztec-packages#10731))
([b8bdb52](AztecProtocol/aztec-packages@b8bdb52))
* Use correct size for databus_id
([#10673](AztecProtocol/aztec-packages#10673))
([95eb658](AztecProtocol/aztec-packages@95eb658))


### Miscellaneous

* **avm:** Radix opcode - remove immediates
([#10696](AztecProtocol/aztec-packages#10696))
([4ac13e6](AztecProtocol/aztec-packages@4ac13e6)),
closes
[#10371](AztecProtocol/aztec-packages#10371)
* Move decider PK allocation to methods
([#10670](AztecProtocol/aztec-packages#10670))
([1ab9e30](AztecProtocol/aztec-packages@1ab9e30))
</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
e2e-all CI: Deprecated, use ci-full. Enable all master checks.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Exceptional halts consume remaining gas in witgen AVM witgen handles "out of gas" errors
2 participants