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: hash logs inside circuit #5934

Merged
merged 38 commits into from
May 2, 2024
Merged

feat: hash logs inside circuit #5934

merged 38 commits into from
May 2, 2024

Conversation

MirandaWood
Copy link
Contributor

@MirandaWood MirandaWood commented Apr 22, 2024

A follow-up to #5718:

Complete, with some caveats. In most cases, whatever log is being broadcast can be converted to bytes with one of the traits (in log_traits) and sha hashed. Note we now need these traits because sha256_slice has (understandably) been removed, so we must define a fixed length input for generic types.

The one exception to this is broadcasting a contract class which ends up emitting up to 518,400 bytes. This is still hashed in ts via a new oracle method emit_contract_class_unencrypted_log. I believe it's fine to hash this outside of the circuit, because correctness will be guaranteed by the bytecode commitment (as opposed to a generic log, where we need the hash to come from the circuit to trust it).

  • - Accumulate logs length inside the circuit

Complete, perhaps we should track lengths of each log to more easily split them into revertible/non-revertible later on?

  • - Flat hash the logs in tail + update documentation

Now that sha256_slice is removed, we would have to flat hash all the empty space up to max logs - unsure whether this would give us any benefit?
EDIT: After some testing, it is more efficient for larger numbers of logs (~9+) in both the circuit and L1, so I have implemented flat hashing.

  • - Add a logsCache, like noteCache, to track logs + ordering in ts in nested executions

Note that the logsCache is only implemented (and required) in the private context for now.
Public calls don't require squashing and removal of logs representing nullified notes, so an array (allUnencryptedLogs) will do. It currently just keeps track of ordering when we have nested calls, but will be useful for removing transient logs (#1641).

  • - Investigate + solve issue with tx.ts error not throwing

I'm not sure why this check exists - the comment:

      // This check is present because each private function invocation creates encrypted FunctionL2Logs object and
      // both public and private function invocations create unencrypted FunctionL2Logs object. Hence "num unencrypted"
      // >= "num encrypted".

implies that functions must emit both types of logs? A tx with one private call, which emits one encrypted log, should fail here, and I don't see why.
EDIT: Have removed the check as it seems redundant.


Note that in nested calls that have more than one side effect, logs will have duplicate side effect counters and so cannot be sorted correctly (#6052). Currently the logs collected in allUnencryptedLogs are the only place that have correctly ordered logs in this case.

@MirandaWood MirandaWood self-assigned this Apr 22, 2024
@AztecBot
Copy link
Collaborator

AztecBot commented Apr 23, 2024

Docs Preview

Hey there! 👋 You can check your preview at https://6633929b48ae560c495b7403--aztec-docs-dev.netlify.app

@AztecBot
Copy link
Collaborator

AztecBot commented Apr 23, 2024

Benchmark results

No metrics with a significant change found.

Detailed results

All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.

This benchmark source data is available in JSON format on S3 here.

L2 block published to L1

Each column represents the number of txs on an L2 block published to L1.

Metric 8 txs 32 txs 64 txs
l1_rollup_calldata_size_in_bytes 740 740 740
l1_rollup_calldata_gas 6,668 6,692 6,680
l1_rollup_execution_gas 586,800 586,824 586,812
l2_block_processing_time_in_ms 1,518 (-10%) 5,448 (-4%) 10,548 (-2%)
l2_block_building_time_in_ms 22,655 89,116 178,829
l2_block_rollup_simulation_time_in_ms 22,453 88,379 177,340
l2_block_public_tx_process_time_in_ms 9,011 35,102 (+1%) 70,223

L2 chain processing

Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric 5 blocks 10 blocks
node_history_sync_time_in_ms 16,831 (-3%) 31,522 (-1%)
node_database_size_in_bytes 20,750,416 37,331,024
pxe_database_size_in_bytes 29,868 59,425

Circuits stats

Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit circuit_simulation_time_in_ms circuit_input_size_in_bytes circuit_output_size_in_bytes
private-kernel-init 173 (-2%) 46,819 28,822
private-kernel-inner 205 76,734 28,822
private-kernel-ordering 227 (-1%) 53,040 42,751
base-parity 71.9 (+5%) 128 64.0
base-rollup 16,622 (+1%) 111,062 925
root-parity 1,669 (+4%) 27,064 64.0
root-rollup 64.3 (-1%) 11,454 789
public-kernel-app-logic 1,964 (-1%) 54,321 22,677
public-kernel-tail 4,928 (+1%) 159,770 3,898
merge-rollup 6,499 2,696 925
public-kernel-teardown 160 (-1%) 54,321 30,042
public-kernel-setup 219 (-1%) 54,321 30,042

Tree insertion stats

The duration to insert a fixed batch of leaves into each tree type.

Metric 1 leaves 16 leaves 64 leaves 128 leaves 512 leaves 1024 leaves 2048 leaves 4096 leaves 32 leaves
batch_insert_into_append_only_tree_16_depth_ms 11.0 17.8 N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_count 16.7 31.8 N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_ms 0.641 0.547 N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_32_depth_ms N/A N/A 51.9 (+1%) 80.0 260 502 980 (-1%) 1,958 N/A
batch_insert_into_append_only_tree_32_depth_hash_count N/A N/A 95.9 159 543 1,055 2,079 4,127 N/A
batch_insert_into_append_only_tree_32_depth_hash_ms N/A N/A 0.531 (+1%) 0.494 0.475 0.469 0.465 (-1%) 0.467 N/A
batch_insert_into_indexed_tree_20_depth_ms N/A N/A 60.6 120 375 741 1,460 (-1%) 2,936 N/A
batch_insert_into_indexed_tree_20_depth_hash_count N/A N/A 105 208 692 1,363 2,707 5,395 N/A
batch_insert_into_indexed_tree_20_depth_hash_ms N/A N/A 0.534 0.538 0.511 0.510 0.507 0.509 N/A
batch_insert_into_indexed_tree_40_depth_ms N/A N/A N/A N/A N/A N/A N/A N/A 66.9
batch_insert_into_indexed_tree_40_depth_hash_count N/A N/A N/A N/A N/A N/A N/A N/A 108
batch_insert_into_indexed_tree_40_depth_hash_ms N/A N/A N/A N/A N/A N/A N/A N/A 0.588

Miscellaneous

Transaction sizes based on how many contract classes are registered in the tx.

Metric 0 registered classes 1 registered classes
tx_size_in_bytes 44,613 535,433

Transaction size based on fee payment method

Metric native fee payment method fpc_public fee payment method fpc_private fee payment method
tx_with_fee_size_in_bytes 897 1,129 (-1%) 1,337 (-1%)

Transaction processing duration by data writes.

Metric 0 new note hashes 1 new note hashes 2 new note hashes
tx_pxe_processing_time_ms 1,386 (-2%) 1,004 (-1%) 3,695 (+1%)
Metric 1 public data writes 2 public data writes 3 public data writes 4 public data writes 5 public data writes 8 public data writes
tx_sequencer_processing_time_ms 891 (+1%) 790 1,432 (+1%) 893 (-4%) 2,196 (+1%) 1,075 (-3%)

@@ -1,222 +0,0 @@
import {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed this file as it only tested the collect logs functionality, which is now removed.

@MirandaWood MirandaWood marked this pull request as ready for review April 29, 2024 16:47
@@ -82,7 +82,7 @@ impl PublicContextInterface for AvmContext {
nullifier_exists(unsiloed_nullifier, address.to_field()) == 1
}

fn emit_unencrypted_log<T>(&mut self, log: T) {
fn emit_unencrypted_log<T,N,M>(&mut self, log: T) {
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 AVM context and interface was only changed to allow the public and private contexts to use traits in logs_traits (these define fixed lengths for many types, so we can sha hash inside the circuit). These don't need to be carried over!

Copy link
Contributor

@LeilaWang LeilaWang left a comment

Choose a reason for hiding this comment

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

Some suggestions (maybe for future PRs). LGTM!

) -> Field {}


unconstrained pub fn emit_contract_class_unencrypted_log_private_internal<N>(
Copy link
Contributor

Choose a reason for hiding this comment

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

Doesn't need to be public.

noir-projects/aztec-nr/aztec/src/context/public_context.nr Outdated Show resolved Hide resolved
yarn-project/simulator/src/client/logs_cache.ts Outdated Show resolved Hide resolved
@@ -76,5 +72,7 @@ export async function executePrivateFunction(
enqueuedPublicFunctionCalls,
encryptedLogs,
unencryptedLogs,
allEncryptedLogs: context.getAllEncryptedLogs(),
allUnencryptedLogs: context.getAllUnencryptedLogs(),
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we still need encryptedLogs/unencryptedLogs?
Wonder if we should only assign all(Un)EncryptedLogs to the top level execution result 🤔

Copy link
Contributor

Choose a reason for hiding this comment

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

Or emitting the counter (and note hash counter) along with the log preimage via oracle, then we can gather all logs from all nested calls to sort and squash them. I think you've suggested this? Sorry I am being slow. This is probably better than outputting them all in one go.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Do we still need encryptedLogs/unencryptedLogs?

I'm not sure really, but I'm keeping them as some tests rely on those logs being specific to the inidvidual call (i.e. not inlcuding extra logs from nested child/parent calls). Protocol-wise maybe it would be good to still keep track of logs per call to avoid confusion?

Or emitting the counter (and note hash counter) along with the log preimage via oracle, then we can gather all logs from all nested calls to sort and squash them.

Yep, I can do this! I just went for this method, because it seemed like the cleanest way of utilising the logs cache (which is intended mostly for removing transient logs) without adding too much extra code.

In this PR I can make the oracles also emit the log counter, then gather them from nested executions rather than populate a big array. The next PR will tackle separating note hash logs anyway, so I can add the note hash counter as part of that?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Have implemented the above ^

Copy link
Contributor

github-actions bot commented May 1, 2024

Changes to circuit sizes

Generated at commit: ecae76f79c0964a4643e7d400557a45be9890213, compared to commit: b39f1db91942096eb1768a37ba9ecfb94d4e1313

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
public_kernel_tail -1,180 ✅ -0.31% -72,246 ✅ -4.93%
private_kernel_tail -3,812 ✅ -3.51% -74,846 ✅ -19.31%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
public_kernel_tail 382,126 (-1,180) -0.31% 1,394,138 (-72,246) -4.93%
private_kernel_tail 104,721 (-3,812) -3.51% 312,704 (-74,846) -19.31%

@MirandaWood MirandaWood requested a review from LeilaWang May 2, 2024 09:23
return !this.log.data.length && !this.counter;
}
}

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 implements IsEmpty so I can take advantage of the existing method sortByCounter. Happy to move to a new file if it's cleaner.

Copy link
Contributor

@LeilaWang LeilaWang left a comment

Choose a reason for hiding this comment

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

Great work!

yarn-project/simulator/src/client/execution_result.ts Outdated Show resolved Hide resolved
@MirandaWood MirandaWood merged commit 6b99527 into master May 2, 2024
61 checks passed
@MirandaWood MirandaWood deleted the mw/logs-hash branch May 2, 2024 13:39
rahul-kothari pushed a commit that referenced this pull request May 7, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.37.1](aztec-package-v0.37.0...aztec-package-v0.37.1)
(2024-05-07)


### Features

* Proving benchmark
([#6051](#6051))
([644bd85](644bd85))
</details>

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

##
[0.37.1](barretenberg.js-v0.37.0...barretenberg.js-v0.37.1)
(2024-05-07)


### Features

* Honk flows exposed through wasm
([#6096](#6096))
([c9b3206](c9b3206))
* Run noir-packages-test in Earthly
([#6174](#6174))
([58e40c9](58e40c9))


### Miscellaneous

* Bump bb.js timeouts
([#6196](#6196))
([acab3de](acab3de))
* Migrate acir tests to earthly
([#6142](#6142))
([18c8ea8](18c8ea8))
</details>

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

##
[0.37.1](aztec-packages-v0.37.0...aztec-packages-v0.37.1)
(2024-05-07)


### Features

* Add ciphertext computation for log header
([#6175](#6175))
([3e05534](3e05534))
* Add proving retries
([#6145](#6145))
([39ab99c](39ab99c))
* Add public teardown to circuit structs
([#6191](#6191))
([03e1b93](03e1b93))
* Always including debug data in a function artifact
([#6223](#6223))
([5d6d22c](5d6d22c))
* **avm:** Add TransactionFee opcode to simulator
([#6210](#6210))
([fcac844](fcac844))
* Complex outputs from acir call
(noir-lang/noir#4952)
([3ed41a0](3ed41a0))
* Expose set_public_teardown_function in private context
([#6199](#6199))
([4d8b51c](4d8b51c))
* Handle empty response foreign calls without an external resolver
(noir-lang/noir#4959)
([3ed41a0](3ed41a0))
* Hash logs inside circuit
([#5934](#5934))
([6b99527](6b99527))
* Honk flows exposed through wasm
([#6096](#6096))
([c9b3206](c9b3206))
* Include transaction fee in txreceipt
([#6139](#6139))
([6785512](6785512))
* Making keys getters complete
([#6171](#6171))
([e85dde9](e85dde9))
* Move noir-tests to earthly
([#6185](#6185))
([4daea40](4daea40))
* Note hash read requests fixes and refactoring
([#6125](#6125))
([9d03f34](9d03f34))
* Optimize array sets in if conditions (alternate version)
(noir-lang/noir#4716)
([3ed41a0](3ed41a0))
* Osxcross
([#6099](#6099))
([6cc924d](6cc924d))
* Parsing non-string assertion payloads in noir js
([#6079](#6079))
([fbd78fd](fbd78fd))
* Proving benchmark
([#6051](#6051))
([644bd85](644bd85))
* Proving the private kernels and app circuits
([#6112](#6112))
([4a43fab](4a43fab))
* Publish transaction_fee
([#6126](#6126))
([6f3a036](6f3a036))
* Recursive folding verifier and decider as ultra circuits and circuit
simulator
([#6150](#6150))
([acc8641](acc8641))
* Run noir-packages-test in Earthly
([#6174](#6174))
([58e40c9](58e40c9))
* Set aztec private functions to be recursive
([#6192](#6192))
([22625f8](22625f8))
* Use actual tx fee in gas token when charging fee
([#6166](#6166))
([8418eac](8418eac))


### Bug Fixes

* **abstract-phase-manager:** Get available gas from latest kernel
output
([#6102](#6102))
([0fa509b](0fa509b))
* Aztec-run not exposing port for builder
([#6241](#6241))
([a80c091](a80c091))
* Boxes use base image
([#6120](#6120))
([ef2589a](ef2589a))
* Correct circuit size estimation for UltraHonk
([#6164](#6164))
([ed84fe3](ed84fe3))
* Docs release ci setup
([#6159](#6159))
([6d5cfe6](6d5cfe6))
* **docs:** Fix broken link in tree implementations page
([#6143](#6143))
([b39f1db](b39f1db))
* **docs:** Update sandbox reference
([#6094](#6094))
([0641085](0641085))
* Increase default number of proving agents
([#6146](#6146))
([5ade36e](5ade36e))
* Install aztec-builder
([#6149](#6149))
([0497dcf](0497dcf))
* **public-kernel:** Only validate start-gas for execution requests
([#6100](#6100))
([3ec9303](3ec9303))
* Scope netlify to yarn bin
([#6162](#6162))
([be8e3c0](be8e3c0))
* Set up the ci runner for doc deployment
([#6160](#6160))
([e295900](e295900))
* Sporadic failure of GoblinRecursionTests.Vanilla
([#6218](#6218))
([f4ecea5](f4ecea5))
* Use annotated type when checking declaration
(noir-lang/noir#4966)
([3ed41a0](3ed41a0))
* Use pushed build images.
([#6154](#6154))
([426f7a7](426f7a7))
* Use random id for proving jobs
([#6084](#6084))
([0e0fc58](0e0fc58))
* Various aztec-builder issues
([#6233](#6233))
([9a644ba](9a644ba))


### Miscellaneous

* **avm-simulator:** Avm's nested calls now stay internal and properly
track PublicExecutionResult
([#6165](#6165))
([9fd4f39](9fd4f39))
* **avm-simulator:** Make shifts take u8
([#5905](#5905))
([4719ff1](4719ff1))
* **avm-simulator:** Track recursive public execution result in
avm-simulator for integration with old kernel
([#6106](#6106))
([df3bcc6](df3bcc6))
* Bump bb.js timeouts
([#6196](#6196))
([acab3de](acab3de))
* Check root parity is only enqueued once its deps are ready
([#6015](#6015))
([c1120d1](c1120d1))
* **ci:** Force earthly prune if corrupted cache
([#6152](#6152))
([3910314](3910314))
* **ci:** Improve dependency structure
([#6200](#6200))
([3abc862](3abc862))
* **ci:** Migrate `protocol-circuits-gate-diff` to earthly
([#6204](#6204))
([4b43295](4b43295))
* **ci:** More stable spot request
([#6212](#6212))
([00156b5](00156b5))
* **ci:** Optimize e2e build
([#6202](#6202))
([4614059](4614059))
* **ci:** Rollback earthly prune
([#6208](#6208))
([3ccc6ac](3ccc6ac))
* **ci:** Try to make base image more stable
([#6144](#6144))
([979a22d](979a22d))
* E2e workaround
([#6158](#6158))
([7794d78](7794d78))
* Migrate acir tests to earthly
([#6142](#6142))
([18c8ea8](18c8ea8))
* Rename instruction checks for side effects
(noir-lang/noir#4945)
([3ed41a0](3ed41a0))
* Replace relative paths to noir-protocol-circuits
([cf543a6](cf543a6))
* Replace relative paths to noir-protocol-circuits
([53cf7bb](53cf7bb))
* Replace relative paths to noir-protocol-circuits
([ca29cea](ca29cea))
* Replace relative paths to noir-protocol-circuits
([08e538b](08e538b))
* Speedup static_call test
([#6157](#6157))
([abe8875](abe8875))
* Switch Noir JS to use execute program instead of circuit
(noir-lang/noir#4965)
([3ed41a0](3ed41a0))
* Use correct call type
([#6064](#6064))
([b3ae289](b3ae289))


### Documentation

* Add GlobalVariables to CombinedConstantData
([#6071](#6071))
([cf026d2](cf026d2))
* Update fees kernel tracking docs
([#6151](#6151))
([7d80428](7d80428))
</details>

<details><summary>barretenberg: 0.37.1</summary>

##
[0.37.1](barretenberg-v0.37.0...barretenberg-v0.37.1)
(2024-05-07)


### Features

* **avm:** Add TransactionFee opcode to simulator
([#6210](#6210))
([fcac844](fcac844))
* Honk flows exposed through wasm
([#6096](#6096))
([c9b3206](c9b3206))
* Osxcross
([#6099](#6099))
([6cc924d](6cc924d))
* Recursive folding verifier and decider as ultra circuits and circuit
simulator
([#6150](#6150))
([acc8641](acc8641))


### Bug Fixes

* Correct circuit size estimation for UltraHonk
([#6164](#6164))
([ed84fe3](ed84fe3))
* Sporadic failure of GoblinRecursionTests.Vanilla
([#6218](#6218))
([f4ecea5](f4ecea5))


### Miscellaneous

* Migrate acir tests to earthly
([#6142](#6142))
([18c8ea8](18c8ea8))
</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 May 8, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.37.1](AztecProtocol/aztec-packages@aztec-package-v0.37.0...aztec-package-v0.37.1)
(2024-05-07)


### Features

* Proving benchmark
([#6051](AztecProtocol/aztec-packages#6051))
([644bd85](AztecProtocol/aztec-packages@644bd85))
</details>

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

##
[0.37.1](AztecProtocol/aztec-packages@barretenberg.js-v0.37.0...barretenberg.js-v0.37.1)
(2024-05-07)


### Features

* Honk flows exposed through wasm
([#6096](AztecProtocol/aztec-packages#6096))
([c9b3206](AztecProtocol/aztec-packages@c9b3206))
* Run noir-packages-test in Earthly
([#6174](AztecProtocol/aztec-packages#6174))
([58e40c9](AztecProtocol/aztec-packages@58e40c9))


### Miscellaneous

* Bump bb.js timeouts
([#6196](AztecProtocol/aztec-packages#6196))
([acab3de](AztecProtocol/aztec-packages@acab3de))
* Migrate acir tests to earthly
([#6142](AztecProtocol/aztec-packages#6142))
([18c8ea8](AztecProtocol/aztec-packages@18c8ea8))
</details>

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

##
[0.37.1](AztecProtocol/aztec-packages@aztec-packages-v0.37.0...aztec-packages-v0.37.1)
(2024-05-07)


### Features

* Add ciphertext computation for log header
([#6175](AztecProtocol/aztec-packages#6175))
([3e05534](AztecProtocol/aztec-packages@3e05534))
* Add proving retries
([#6145](AztecProtocol/aztec-packages#6145))
([39ab99c](AztecProtocol/aztec-packages@39ab99c))
* Add public teardown to circuit structs
([#6191](AztecProtocol/aztec-packages#6191))
([03e1b93](AztecProtocol/aztec-packages@03e1b93))
* Always including debug data in a function artifact
([#6223](AztecProtocol/aztec-packages#6223))
([5d6d22c](AztecProtocol/aztec-packages@5d6d22c))
* **avm:** Add TransactionFee opcode to simulator
([#6210](AztecProtocol/aztec-packages#6210))
([fcac844](AztecProtocol/aztec-packages@fcac844))
* Complex outputs from acir call
(noir-lang/noir#4952)
([3ed41a0](AztecProtocol/aztec-packages@3ed41a0))
* Expose set_public_teardown_function in private context
([#6199](AztecProtocol/aztec-packages#6199))
([4d8b51c](AztecProtocol/aztec-packages@4d8b51c))
* Handle empty response foreign calls without an external resolver
(noir-lang/noir#4959)
([3ed41a0](AztecProtocol/aztec-packages@3ed41a0))
* Hash logs inside circuit
([#5934](AztecProtocol/aztec-packages#5934))
([6b99527](AztecProtocol/aztec-packages@6b99527))
* Honk flows exposed through wasm
([#6096](AztecProtocol/aztec-packages#6096))
([c9b3206](AztecProtocol/aztec-packages@c9b3206))
* Include transaction fee in txreceipt
([#6139](AztecProtocol/aztec-packages#6139))
([6785512](AztecProtocol/aztec-packages@6785512))
* Making keys getters complete
([#6171](AztecProtocol/aztec-packages#6171))
([e85dde9](AztecProtocol/aztec-packages@e85dde9))
* Move noir-tests to earthly
([#6185](AztecProtocol/aztec-packages#6185))
([4daea40](AztecProtocol/aztec-packages@4daea40))
* Note hash read requests fixes and refactoring
([#6125](AztecProtocol/aztec-packages#6125))
([9d03f34](AztecProtocol/aztec-packages@9d03f34))
* Optimize array sets in if conditions (alternate version)
(noir-lang/noir#4716)
([3ed41a0](AztecProtocol/aztec-packages@3ed41a0))
* Osxcross
([#6099](AztecProtocol/aztec-packages#6099))
([6cc924d](AztecProtocol/aztec-packages@6cc924d))
* Parsing non-string assertion payloads in noir js
([#6079](AztecProtocol/aztec-packages#6079))
([fbd78fd](AztecProtocol/aztec-packages@fbd78fd))
* Proving benchmark
([#6051](AztecProtocol/aztec-packages#6051))
([644bd85](AztecProtocol/aztec-packages@644bd85))
* Proving the private kernels and app circuits
([#6112](AztecProtocol/aztec-packages#6112))
([4a43fab](AztecProtocol/aztec-packages@4a43fab))
* Publish transaction_fee
([#6126](AztecProtocol/aztec-packages#6126))
([6f3a036](AztecProtocol/aztec-packages@6f3a036))
* Recursive folding verifier and decider as ultra circuits and circuit
simulator
([#6150](AztecProtocol/aztec-packages#6150))
([acc8641](AztecProtocol/aztec-packages@acc8641))
* Run noir-packages-test in Earthly
([#6174](AztecProtocol/aztec-packages#6174))
([58e40c9](AztecProtocol/aztec-packages@58e40c9))
* Set aztec private functions to be recursive
([#6192](AztecProtocol/aztec-packages#6192))
([22625f8](AztecProtocol/aztec-packages@22625f8))
* Use actual tx fee in gas token when charging fee
([#6166](AztecProtocol/aztec-packages#6166))
([8418eac](AztecProtocol/aztec-packages@8418eac))


### Bug Fixes

* **abstract-phase-manager:** Get available gas from latest kernel
output
([#6102](AztecProtocol/aztec-packages#6102))
([0fa509b](AztecProtocol/aztec-packages@0fa509b))
* Aztec-run not exposing port for builder
([#6241](AztecProtocol/aztec-packages#6241))
([a80c091](AztecProtocol/aztec-packages@a80c091))
* Boxes use base image
([#6120](AztecProtocol/aztec-packages#6120))
([ef2589a](AztecProtocol/aztec-packages@ef2589a))
* Correct circuit size estimation for UltraHonk
([#6164](AztecProtocol/aztec-packages#6164))
([ed84fe3](AztecProtocol/aztec-packages@ed84fe3))
* Docs release ci setup
([#6159](AztecProtocol/aztec-packages#6159))
([6d5cfe6](AztecProtocol/aztec-packages@6d5cfe6))
* **docs:** Fix broken link in tree implementations page
([#6143](AztecProtocol/aztec-packages#6143))
([b39f1db](AztecProtocol/aztec-packages@b39f1db))
* **docs:** Update sandbox reference
([#6094](AztecProtocol/aztec-packages#6094))
([0641085](AztecProtocol/aztec-packages@0641085))
* Increase default number of proving agents
([#6146](AztecProtocol/aztec-packages#6146))
([5ade36e](AztecProtocol/aztec-packages@5ade36e))
* Install aztec-builder
([#6149](AztecProtocol/aztec-packages#6149))
([0497dcf](AztecProtocol/aztec-packages@0497dcf))
* **public-kernel:** Only validate start-gas for execution requests
([#6100](AztecProtocol/aztec-packages#6100))
([3ec9303](AztecProtocol/aztec-packages@3ec9303))
* Scope netlify to yarn bin
([#6162](AztecProtocol/aztec-packages#6162))
([be8e3c0](AztecProtocol/aztec-packages@be8e3c0))
* Set up the ci runner for doc deployment
([#6160](AztecProtocol/aztec-packages#6160))
([e295900](AztecProtocol/aztec-packages@e295900))
* Sporadic failure of GoblinRecursionTests.Vanilla
([#6218](AztecProtocol/aztec-packages#6218))
([f4ecea5](AztecProtocol/aztec-packages@f4ecea5))
* Use annotated type when checking declaration
(noir-lang/noir#4966)
([3ed41a0](AztecProtocol/aztec-packages@3ed41a0))
* Use pushed build images.
([#6154](AztecProtocol/aztec-packages#6154))
([426f7a7](AztecProtocol/aztec-packages@426f7a7))
* Use random id for proving jobs
([#6084](AztecProtocol/aztec-packages#6084))
([0e0fc58](AztecProtocol/aztec-packages@0e0fc58))
* Various aztec-builder issues
([#6233](AztecProtocol/aztec-packages#6233))
([9a644ba](AztecProtocol/aztec-packages@9a644ba))


### Miscellaneous

* **avm-simulator:** Avm's nested calls now stay internal and properly
track PublicExecutionResult
([#6165](AztecProtocol/aztec-packages#6165))
([9fd4f39](AztecProtocol/aztec-packages@9fd4f39))
* **avm-simulator:** Make shifts take u8
([#5905](AztecProtocol/aztec-packages#5905))
([4719ff1](AztecProtocol/aztec-packages@4719ff1))
* **avm-simulator:** Track recursive public execution result in
avm-simulator for integration with old kernel
([#6106](AztecProtocol/aztec-packages#6106))
([df3bcc6](AztecProtocol/aztec-packages@df3bcc6))
* Bump bb.js timeouts
([#6196](AztecProtocol/aztec-packages#6196))
([acab3de](AztecProtocol/aztec-packages@acab3de))
* Check root parity is only enqueued once its deps are ready
([#6015](AztecProtocol/aztec-packages#6015))
([c1120d1](AztecProtocol/aztec-packages@c1120d1))
* **ci:** Force earthly prune if corrupted cache
([#6152](AztecProtocol/aztec-packages#6152))
([3910314](AztecProtocol/aztec-packages@3910314))
* **ci:** Improve dependency structure
([#6200](AztecProtocol/aztec-packages#6200))
([3abc862](AztecProtocol/aztec-packages@3abc862))
* **ci:** Migrate `protocol-circuits-gate-diff` to earthly
([#6204](AztecProtocol/aztec-packages#6204))
([4b43295](AztecProtocol/aztec-packages@4b43295))
* **ci:** More stable spot request
([#6212](AztecProtocol/aztec-packages#6212))
([00156b5](AztecProtocol/aztec-packages@00156b5))
* **ci:** Optimize e2e build
([#6202](AztecProtocol/aztec-packages#6202))
([4614059](AztecProtocol/aztec-packages@4614059))
* **ci:** Rollback earthly prune
([#6208](AztecProtocol/aztec-packages#6208))
([3ccc6ac](AztecProtocol/aztec-packages@3ccc6ac))
* **ci:** Try to make base image more stable
([#6144](AztecProtocol/aztec-packages#6144))
([979a22d](AztecProtocol/aztec-packages@979a22d))
* E2e workaround
([#6158](AztecProtocol/aztec-packages#6158))
([7794d78](AztecProtocol/aztec-packages@7794d78))
* Migrate acir tests to earthly
([#6142](AztecProtocol/aztec-packages#6142))
([18c8ea8](AztecProtocol/aztec-packages@18c8ea8))
* Rename instruction checks for side effects
(noir-lang/noir#4945)
([3ed41a0](AztecProtocol/aztec-packages@3ed41a0))
* Replace relative paths to noir-protocol-circuits
([cf543a6](AztecProtocol/aztec-packages@cf543a6))
* Replace relative paths to noir-protocol-circuits
([53cf7bb](AztecProtocol/aztec-packages@53cf7bb))
* Replace relative paths to noir-protocol-circuits
([ca29cea](AztecProtocol/aztec-packages@ca29cea))
* Replace relative paths to noir-protocol-circuits
([08e538b](AztecProtocol/aztec-packages@08e538b))
* Speedup static_call test
([#6157](AztecProtocol/aztec-packages#6157))
([abe8875](AztecProtocol/aztec-packages@abe8875))
* Switch Noir JS to use execute program instead of circuit
(noir-lang/noir#4965)
([3ed41a0](AztecProtocol/aztec-packages@3ed41a0))
* Use correct call type
([#6064](AztecProtocol/aztec-packages#6064))
([b3ae289](AztecProtocol/aztec-packages@b3ae289))


### Documentation

* Add GlobalVariables to CombinedConstantData
([#6071](AztecProtocol/aztec-packages#6071))
([cf026d2](AztecProtocol/aztec-packages@cf026d2))
* Update fees kernel tracking docs
([#6151](AztecProtocol/aztec-packages#6151))
([7d80428](AztecProtocol/aztec-packages@7d80428))
</details>

<details><summary>barretenberg: 0.37.1</summary>

##
[0.37.1](AztecProtocol/aztec-packages@barretenberg-v0.37.0...barretenberg-v0.37.1)
(2024-05-07)


### Features

* **avm:** Add TransactionFee opcode to simulator
([#6210](AztecProtocol/aztec-packages#6210))
([fcac844](AztecProtocol/aztec-packages@fcac844))
* Honk flows exposed through wasm
([#6096](AztecProtocol/aztec-packages#6096))
([c9b3206](AztecProtocol/aztec-packages@c9b3206))
* Osxcross
([#6099](AztecProtocol/aztec-packages#6099))
([6cc924d](AztecProtocol/aztec-packages@6cc924d))
* Recursive folding verifier and decider as ultra circuits and circuit
simulator
([#6150](AztecProtocol/aztec-packages#6150))
([acc8641](AztecProtocol/aztec-packages@acc8641))


### Bug Fixes

* Correct circuit size estimation for UltraHonk
([#6164](AztecProtocol/aztec-packages#6164))
([ed84fe3](AztecProtocol/aztec-packages@ed84fe3))
* Sporadic failure of GoblinRecursionTests.Vanilla
([#6218](AztecProtocol/aztec-packages#6218))
([f4ecea5](AztecProtocol/aztec-packages@f4ecea5))


### Miscellaneous

* Migrate acir tests to earthly
([#6142](AztecProtocol/aztec-packages#6142))
([18c8ea8](AztecProtocol/aztec-packages@18c8ea8))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
madztheo pushed a commit to zkpassport/aztec-packages that referenced this pull request Jun 26, 2024
🤖 I have created a release *beep* *boop*
---

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

[0.37.1](AztecProtocol/aztec-packages@aztec-package-v0.37.0...aztec-package-v0.37.1)
(2024-05-07)

* Proving benchmark
([AztecProtocol#6051](AztecProtocol#6051))
([644bd85](AztecProtocol@644bd85))
</details>

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

[0.37.1](AztecProtocol/aztec-packages@barretenberg.js-v0.37.0...barretenberg.js-v0.37.1)
(2024-05-07)

* Honk flows exposed through wasm
([AztecProtocol#6096](AztecProtocol#6096))
([c9b3206](AztecProtocol@c9b3206))
* Run noir-packages-test in Earthly
([AztecProtocol#6174](AztecProtocol#6174))
([58e40c9](AztecProtocol@58e40c9))

* Bump bb.js timeouts
([AztecProtocol#6196](AztecProtocol#6196))
([acab3de](AztecProtocol@acab3de))
* Migrate acir tests to earthly
([AztecProtocol#6142](AztecProtocol#6142))
([18c8ea8](AztecProtocol@18c8ea8))
</details>

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

[0.37.1](AztecProtocol/aztec-packages@aztec-packages-v0.37.0...aztec-packages-v0.37.1)
(2024-05-07)

* Add ciphertext computation for log header
([AztecProtocol#6175](AztecProtocol#6175))
([3e05534](AztecProtocol@3e05534))
* Add proving retries
([AztecProtocol#6145](AztecProtocol#6145))
([39ab99c](AztecProtocol@39ab99c))
* Add public teardown to circuit structs
([AztecProtocol#6191](AztecProtocol#6191))
([03e1b93](AztecProtocol@03e1b93))
* Always including debug data in a function artifact
([AztecProtocol#6223](AztecProtocol#6223))
([5d6d22c](AztecProtocol@5d6d22c))
* **avm:** Add TransactionFee opcode to simulator
([AztecProtocol#6210](AztecProtocol#6210))
([fcac844](AztecProtocol@fcac844))
* Complex outputs from acir call
(noir-lang/noir#4952)
([3ed41a0](AztecProtocol@3ed41a0))
* Expose set_public_teardown_function in private context
([AztecProtocol#6199](AztecProtocol#6199))
([4d8b51c](AztecProtocol@4d8b51c))
* Handle empty response foreign calls without an external resolver
(noir-lang/noir#4959)
([3ed41a0](AztecProtocol@3ed41a0))
* Hash logs inside circuit
([AztecProtocol#5934](AztecProtocol#5934))
([6b99527](AztecProtocol@6b99527))
* Honk flows exposed through wasm
([AztecProtocol#6096](AztecProtocol#6096))
([c9b3206](AztecProtocol@c9b3206))
* Include transaction fee in txreceipt
([AztecProtocol#6139](AztecProtocol#6139))
([6785512](AztecProtocol@6785512))
* Making keys getters complete
([AztecProtocol#6171](AztecProtocol#6171))
([e85dde9](AztecProtocol@e85dde9))
* Move noir-tests to earthly
([AztecProtocol#6185](AztecProtocol#6185))
([4daea40](AztecProtocol@4daea40))
* Note hash read requests fixes and refactoring
([AztecProtocol#6125](AztecProtocol#6125))
([9d03f34](AztecProtocol@9d03f34))
* Optimize array sets in if conditions (alternate version)
(noir-lang/noir#4716)
([3ed41a0](AztecProtocol@3ed41a0))
* Osxcross
([AztecProtocol#6099](AztecProtocol#6099))
([6cc924d](AztecProtocol@6cc924d))
* Parsing non-string assertion payloads in noir js
([AztecProtocol#6079](AztecProtocol#6079))
([fbd78fd](AztecProtocol@fbd78fd))
* Proving benchmark
([AztecProtocol#6051](AztecProtocol#6051))
([644bd85](AztecProtocol@644bd85))
* Proving the private kernels and app circuits
([AztecProtocol#6112](AztecProtocol#6112))
([4a43fab](AztecProtocol@4a43fab))
* Publish transaction_fee
([AztecProtocol#6126](AztecProtocol#6126))
([6f3a036](AztecProtocol@6f3a036))
* Recursive folding verifier and decider as ultra circuits and circuit
simulator
([AztecProtocol#6150](AztecProtocol#6150))
([acc8641](AztecProtocol@acc8641))
* Run noir-packages-test in Earthly
([AztecProtocol#6174](AztecProtocol#6174))
([58e40c9](AztecProtocol@58e40c9))
* Set aztec private functions to be recursive
([AztecProtocol#6192](AztecProtocol#6192))
([22625f8](AztecProtocol@22625f8))
* Use actual tx fee in gas token when charging fee
([AztecProtocol#6166](AztecProtocol#6166))
([8418eac](AztecProtocol@8418eac))

* **abstract-phase-manager:** Get available gas from latest kernel
output
([AztecProtocol#6102](AztecProtocol#6102))
([0fa509b](AztecProtocol@0fa509b))
* Aztec-run not exposing port for builder
([AztecProtocol#6241](AztecProtocol#6241))
([a80c091](AztecProtocol@a80c091))
* Boxes use base image
([AztecProtocol#6120](AztecProtocol#6120))
([ef2589a](AztecProtocol@ef2589a))
* Correct circuit size estimation for UltraHonk
([AztecProtocol#6164](AztecProtocol#6164))
([ed84fe3](AztecProtocol@ed84fe3))
* Docs release ci setup
([AztecProtocol#6159](AztecProtocol#6159))
([6d5cfe6](AztecProtocol@6d5cfe6))
* **docs:** Fix broken link in tree implementations page
([AztecProtocol#6143](AztecProtocol#6143))
([b39f1db](AztecProtocol@b39f1db))
* **docs:** Update sandbox reference
([AztecProtocol#6094](AztecProtocol#6094))
([0641085](AztecProtocol@0641085))
* Increase default number of proving agents
([AztecProtocol#6146](AztecProtocol#6146))
([5ade36e](AztecProtocol@5ade36e))
* Install aztec-builder
([AztecProtocol#6149](AztecProtocol#6149))
([0497dcf](AztecProtocol@0497dcf))
* **public-kernel:** Only validate start-gas for execution requests
([AztecProtocol#6100](AztecProtocol#6100))
([3ec9303](AztecProtocol@3ec9303))
* Scope netlify to yarn bin
([AztecProtocol#6162](AztecProtocol#6162))
([be8e3c0](AztecProtocol@be8e3c0))
* Set up the ci runner for doc deployment
([AztecProtocol#6160](AztecProtocol#6160))
([e295900](AztecProtocol@e295900))
* Sporadic failure of GoblinRecursionTests.Vanilla
([AztecProtocol#6218](AztecProtocol#6218))
([f4ecea5](AztecProtocol@f4ecea5))
* Use annotated type when checking declaration
(noir-lang/noir#4966)
([3ed41a0](AztecProtocol@3ed41a0))
* Use pushed build images.
([AztecProtocol#6154](AztecProtocol#6154))
([426f7a7](AztecProtocol@426f7a7))
* Use random id for proving jobs
([AztecProtocol#6084](AztecProtocol#6084))
([0e0fc58](AztecProtocol@0e0fc58))
* Various aztec-builder issues
([AztecProtocol#6233](AztecProtocol#6233))
([9a644ba](AztecProtocol@9a644ba))

* **avm-simulator:** Avm's nested calls now stay internal and properly
track PublicExecutionResult
([AztecProtocol#6165](AztecProtocol#6165))
([9fd4f39](AztecProtocol@9fd4f39))
* **avm-simulator:** Make shifts take u8
([AztecProtocol#5905](AztecProtocol#5905))
([4719ff1](AztecProtocol@4719ff1))
* **avm-simulator:** Track recursive public execution result in
avm-simulator for integration with old kernel
([AztecProtocol#6106](AztecProtocol#6106))
([df3bcc6](AztecProtocol@df3bcc6))
* Bump bb.js timeouts
([AztecProtocol#6196](AztecProtocol#6196))
([acab3de](AztecProtocol@acab3de))
* Check root parity is only enqueued once its deps are ready
([AztecProtocol#6015](AztecProtocol#6015))
([c1120d1](AztecProtocol@c1120d1))
* **ci:** Force earthly prune if corrupted cache
([AztecProtocol#6152](AztecProtocol#6152))
([3910314](AztecProtocol@3910314))
* **ci:** Improve dependency structure
([AztecProtocol#6200](AztecProtocol#6200))
([3abc862](AztecProtocol@3abc862))
* **ci:** Migrate `protocol-circuits-gate-diff` to earthly
([AztecProtocol#6204](AztecProtocol#6204))
([4b43295](AztecProtocol@4b43295))
* **ci:** More stable spot request
([AztecProtocol#6212](AztecProtocol#6212))
([00156b5](AztecProtocol@00156b5))
* **ci:** Optimize e2e build
([AztecProtocol#6202](AztecProtocol#6202))
([4614059](AztecProtocol@4614059))
* **ci:** Rollback earthly prune
([AztecProtocol#6208](AztecProtocol#6208))
([3ccc6ac](AztecProtocol@3ccc6ac))
* **ci:** Try to make base image more stable
([AztecProtocol#6144](AztecProtocol#6144))
([979a22d](AztecProtocol@979a22d))
* E2e workaround
([AztecProtocol#6158](AztecProtocol#6158))
([7794d78](AztecProtocol@7794d78))
* Migrate acir tests to earthly
([AztecProtocol#6142](AztecProtocol#6142))
([18c8ea8](AztecProtocol@18c8ea8))
* Rename instruction checks for side effects
(noir-lang/noir#4945)
([3ed41a0](AztecProtocol@3ed41a0))
* Replace relative paths to noir-protocol-circuits
([cf543a6](AztecProtocol@cf543a6))
* Replace relative paths to noir-protocol-circuits
([53cf7bb](AztecProtocol@53cf7bb))
* Replace relative paths to noir-protocol-circuits
([ca29cea](AztecProtocol@ca29cea))
* Replace relative paths to noir-protocol-circuits
([08e538b](AztecProtocol@08e538b))
* Speedup static_call test
([AztecProtocol#6157](AztecProtocol#6157))
([abe8875](AztecProtocol@abe8875))
* Switch Noir JS to use execute program instead of circuit
(noir-lang/noir#4965)
([3ed41a0](AztecProtocol@3ed41a0))
* Use correct call type
([AztecProtocol#6064](AztecProtocol#6064))
([b3ae289](AztecProtocol@b3ae289))

* Add GlobalVariables to CombinedConstantData
([AztecProtocol#6071](AztecProtocol#6071))
([cf026d2](AztecProtocol@cf026d2))
* Update fees kernel tracking docs
([AztecProtocol#6151](AztecProtocol#6151))
([7d80428](AztecProtocol@7d80428))
</details>

<details><summary>barretenberg: 0.37.1</summary>

[0.37.1](AztecProtocol/aztec-packages@barretenberg-v0.37.0...barretenberg-v0.37.1)
(2024-05-07)

* **avm:** Add TransactionFee opcode to simulator
([AztecProtocol#6210](AztecProtocol#6210))
([fcac844](AztecProtocol@fcac844))
* Honk flows exposed through wasm
([AztecProtocol#6096](AztecProtocol#6096))
([c9b3206](AztecProtocol@c9b3206))
* Osxcross
([AztecProtocol#6099](AztecProtocol#6099))
([6cc924d](AztecProtocol@6cc924d))
* Recursive folding verifier and decider as ultra circuits and circuit
simulator
([AztecProtocol#6150](AztecProtocol#6150))
([acc8641](AztecProtocol@acc8641))

* Correct circuit size estimation for UltraHonk
([AztecProtocol#6164](AztecProtocol#6164))
([ed84fe3](AztecProtocol@ed84fe3))
* Sporadic failure of GoblinRecursionTests.Vanilla
([AztecProtocol#6218](AztecProtocol#6218))
([f4ecea5](AztecProtocol@f4ecea5))

* Migrate acir tests to earthly
([AztecProtocol#6142](AztecProtocol#6142))
([18c8ea8](AztecProtocol@18c8ea8))
</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.

3 participants