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

test: Fast tests for blocks and proofs landing on various slot combinations #9809

Closed
spalladino opened this issue Nov 7, 2024 · 0 comments · Fixed by #10045 or #10043
Closed

test: Fast tests for blocks and proofs landing on various slot combinations #9809

spalladino opened this issue Nov 7, 2024 · 0 comments · Fixed by #10045 or #10043
Assignees

Comments

@spalladino
Copy link
Collaborator

We have hit an error in a long running manual test caused by a race condition between the last block in an epoch and its corresponding proof. We want to build a suite of tests that runs considerably faster and can reproduce this kind of issues.

We need to de-enshrine epoch and slot durations as constants, and create an e2e test that uses very fast slots and small epochs. This test should manipulate sequencer and prover nodes so that their txs land on specific L1 blocks, to test different combinations, starting with the one that triggered the error above.

@spalladino spalladino self-assigned this Nov 7, 2024
spalladino added a commit that referenced this issue Nov 8, 2024
De-enshrines the following constants and turns them into config:

```
ETHEREUM_SLOT_DURATION = 12;
AZTEC_SLOT_DURATION = 24;
AZTEC_EPOCH_DURATION = 16;
AZTEC_TARGET_COMMITTEE_SIZE = 48;
AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS = 13;
```

These can now be set via env vars. On L1, they are set as immutable
variables across all contracts that require them. As for circuits, none
of them was needed, except for the epoch duration to be able to
dimension the fees array. This was handled by introducing a new
MAX_EPOCH_DURATION constant (32) which sets the max length of the array.

This is a prerequisite to #9809
spalladino added a commit that referenced this issue Nov 8, 2024
De-enshrines the following constants and turns them into config:

```
ETHEREUM_SLOT_DURATION = 12;
AZTEC_SLOT_DURATION = 24;
AZTEC_EPOCH_DURATION = 16;
AZTEC_TARGET_COMMITTEE_SIZE = 48;
AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS = 13;
```

These can now be set via env vars. On L1, they are set as immutable
variables across all contracts that require them. As for circuits, none
of them was needed, except for the epoch duration to be able to
dimension the fees array. This was handled by introducing a new
MAX_EPOCH_DURATION constant (32) which sets the max length of the array.

This is a prerequisite to #9809
spalladino added a commit that referenced this issue Nov 8, 2024
De-enshrines the following constants and turns them into config:

```
ETHEREUM_SLOT_DURATION = 12;
AZTEC_SLOT_DURATION = 24;
AZTEC_EPOCH_DURATION = 16;
AZTEC_TARGET_COMMITTEE_SIZE = 48;
AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS = 13;
```

These can now be set via env vars. On L1, they are set as immutable
variables across all contracts that require them. As for circuits, none
of them was needed, except for the epoch duration to be able to
dimension the fees array. This was handled by introducing a new
MAX_EPOCH_DURATION constant (32) which sets the max length of the array.

This is a prerequisite to #9809
spalladino added a commit that referenced this issue Nov 8, 2024
De-enshrines the following constants and turns them into config:

```
ETHEREUM_SLOT_DURATION = 12;
AZTEC_SLOT_DURATION = 24;
AZTEC_EPOCH_DURATION = 16;
AZTEC_TARGET_COMMITTEE_SIZE = 48;
AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS = 13;
```

These can now be set via env vars. On L1, they are set as immutable
variables across all contracts that require them. As for circuits, none
of them was needed, except for the epoch duration to be able to
dimension the fees array. This was handled by introducing a new
MAX_EPOCH_DURATION constant (32) which sets the max length of the array.

This is a prerequisite to #9809
spalladino added a commit that referenced this issue Nov 8, 2024
De-enshrines the following constants and turns them into config:

```
ETHEREUM_SLOT_DURATION = 12;
AZTEC_SLOT_DURATION = 24;
AZTEC_EPOCH_DURATION = 16;
AZTEC_TARGET_COMMITTEE_SIZE = 48;
AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS = 13;
```

These can now be set via env vars. On L1, they are set as immutable
variables across all contracts that require them. As for circuits, none
of them was needed, except for the epoch duration to be able to
dimension the fees array. This was handled by introducing a new
MAX_EPOCH_DURATION constant (32) which sets the max length of the array.

This is a prerequisite to #9809
spalladino added a commit that referenced this issue Nov 8, 2024
De-enshrines the following constants and turns them into config:

```
ETHEREUM_SLOT_DURATION = 12;
AZTEC_SLOT_DURATION = 24;
AZTEC_EPOCH_DURATION = 16;
AZTEC_TARGET_COMMITTEE_SIZE = 48;
AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS = 13;
```

These can now be set via env vars. On L1, they are set as immutable
variables across all contracts that require them. As for circuits, none
of them was needed, except for the epoch duration to be able to
dimension the fees array. This was handled by introducing a new
MAX_EPOCH_DURATION constant (32) which sets the max length of the array.

This is a prerequisite to #9809
spalladino added a commit that referenced this issue Nov 8, 2024
De-enshrines the following constants and turns them into config:

```
ETHEREUM_SLOT_DURATION = 12;
AZTEC_SLOT_DURATION = 24;
AZTEC_EPOCH_DURATION = 16;
AZTEC_TARGET_COMMITTEE_SIZE = 48;
AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS = 13;
```

These can now be set via env vars. On L1, they are set as immutable
variables across all contracts that require them. As for circuits, none
of them was needed, except for the epoch duration to be able to
dimension the fees array. This was handled by introducing a new
MAX_EPOCH_DURATION constant (32) which sets the max length of the array.

This is a prerequisite to #9809
spalladino added a commit that referenced this issue Nov 9, 2024
De-enshrines the following constants and turns them into config:

```
ETHEREUM_SLOT_DURATION = 12;
AZTEC_SLOT_DURATION = 24;
AZTEC_EPOCH_DURATION = 16;
AZTEC_TARGET_COMMITTEE_SIZE = 48;
AZTEC_EPOCH_PROOF_CLAIM_WINDOW_IN_L2_SLOTS = 13;
```

These can now be set via env vars. On L1, they are set as immutable
variables across all contracts that require them. As for circuits, none
of them was needed, except for the epoch duration to be able to
dimension the fees array. This was handled by introducing a new
MAX_EPOCH_DURATION constant (32) which sets the max length of the array.

This is a prerequisite to #9809
spalladino added a commit that referenced this issue Nov 22, 2024
Adds a fast (as in 1 minute) e2e test for building epochs. Checks that
the epoch is properly reorg'd, and that the prover proof cannot land
outside the epoch even if not blocks have been submitted.

- Introduces a tx delayer that lets us pick in which L1 block or
timestamp a transaction sent by the L1 publisher will land.
- Includes the fix from #10084 as a cherry-picked commit.
- Allows properly setting slot and epoch duration in e2e setup.
- Adds a `LOG_ELAPSED_TIME` env var to log the total elapsed times in
debug logs.
- Adds a `rollup` wrapper for the Rollup contract, so we don't need to
deal with viem explicitly.
- Moves `startAnvil` to the `aztec/ethereum` package

Fixes #9809
critesjosh pushed a commit that referenced this issue Nov 25, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.64.0](aztec-package-v0.63.1...aztec-package-v0.64.0)
(2024-11-25)


### Features

* Unify anvil versions
([#10143](#10143))
([adae143](adae143))


### Miscellaneous

* Fast epoch building test
([#10045](#10045))
([fb791a2](fb791a2)),
closes
[#9809](#9809)
</details>

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

##
[0.64.0](barretenberg.js-v0.63.1...barretenberg.js-v0.64.0)
(2024-11-25)


### Features

* Single commitment key allocation in CIVC
([#9974](#9974))
([a0551ee](a0551ee))


### Bug Fixes

* Strip wasm debug
([#9987](#9987))
([62a6b66](62a6b66))


### Documentation

* Add docs to enable multi-threading in bb.js
([#10064](#10064))
([8b4ebd1](8b4ebd1))
</details>

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

##
[0.64.0](aztec-packages-v0.63.1...aztec-packages-v0.64.0)
(2024-11-25)


### ⚠ BREAKING CHANGES

* rename SharedMutable methods
([#10165](#10165))
* add AztecAddress.isValid and make random be valid
([#10081](#10081))
* Always Check Arithmetic Generics at Monomorphization
(noir-lang/noir#6329)

### Features

* Add AztecAddress.isValid and make random be valid
([#10081](#10081))
([fbdf6b0](fbdf6b0))
* Always Check Arithmetic Generics at Monomorphization
(noir-lang/noir#6329)
([b8bace9](b8bace9))
* **avm:** Error handling for address resolution
([#9994](#9994))
([ceaeda5](ceaeda5)),
closes
[#9131](#9131)
* **avm:** Integrate ephemeral trees
([#9917](#9917))
([fbe1128](fbe1128))
* **avm:** More efficient low leaf search
([#9870](#9870))
([f7bbd83](f7bbd83))
* Avoid unnecessary ssa passes while loop unrolling
(noir-lang/noir#6509)
([b8bace9](b8bace9))
* Bb-prover AVM test crafts a test TX & properly plumbs
AvmCircuitPublicInputs to witgen
([#10083](#10083))
([55564aa](55564aa))
* Calls to non-existent contracts in the AVM simulator return failure
([#10051](#10051))
([133384c](133384c))
* Compute base-fee on l1
([#9986](#9986))
([4ab46fe](4ab46fe))
* Deduplicate instructions across blocks
(noir-lang/noir#6499)
([b8bace9](b8bace9))
* E2e metrics reporting
([#9776](#9776))
([9cab121](9cab121))
* Gating test
([#9918](#9918))
([c6b65ab](c6b65ab)),
closes
[#9883](#9883)
* Google Kubernetes Engine - Prover Agent Spot Node Support
([#10031](#10031))
([4d6da9b](4d6da9b))
* Improve trace utilization tracking
([#10008](#10008))
([4c560ab](4c560ab))
* Improved data storage metrics
([#10020](#10020))
([c6ab0c9](c6ab0c9))
* Initial gas oracle
([#9952](#9952))
([e740d42](e740d42))
* Insert public data tree leaves one by one
([#9989](#9989))
([a2c0701](a2c0701))
* Integrate base fee computation into rollup
([#10076](#10076))
([3417b22](3417b22))
* IPA accumulators setup for Rollup
([#10040](#10040))
([4129e27](4129e27))
* New proving agent
([#9999](#9999))
([9ad24dd](9ad24dd))
* **profiler:** Reduce memory in Brillig execution flamegraph
(noir-lang/noir#6538)
([b8bace9](b8bace9))
* Public network deployments
([#10089](#10089))
([570f70a](570f70a))
* PXE handles reorgs
([#9913](#9913))
([aafef9c](aafef9c))
* Rename SharedMutable methods
([#10165](#10165))
([4fd70e8](4fd70e8))
* Reset pxe indexes
([#10093](#10093))
([3848c01](3848c01))
* Simplify constant MSM calls in SSA
(noir-lang/noir#6547)
([b8bace9](b8bace9))
* Single commitment key allocation in CIVC
([#9974](#9974))
([a0551ee](a0551ee))
* SSA parser (noir-lang/noir#6489)
([b8bace9](b8bace9))
* **ssa:** Unroll small loops in brillig
(noir-lang/noir#6505)
([b8bace9](b8bace9))
* Sync from aztec-packages (noir-lang/noir#6557)
([b8bace9](b8bace9))
* Sync tags as sender
([#10071](#10071))
([122d2e4](122d2e4))
* Terraform for release deployments
([#10091](#10091))
([dc528da](dc528da)),
closes
[#10144](#10144)
* Trait aliases (noir-lang/noir#6431)
([b8bace9](b8bace9))
* Unify anvil versions
([#10143](#10143))
([adae143](adae143))
* Updating consensus payload
([#10017](#10017))
([85c8a3b](85c8a3b))
* Use a full `BlackBoxFunctionSolver` implementation when execution
brillig during acirgen (noir-lang/noir#6481)
([b8bace9](b8bace9))
* **val:** Reex
([#9768](#9768))
([2e58f0a](2e58f0a))


### Bug Fixes

* Add curl to aztec nargo container
([#10173](#10173))
([2add6ae](2add6ae))
* Add zod parsing for generated contract artifacts
([#9905](#9905))
([e1ef998](e1ef998))
* Allow range checks to be performed within the comptime intepreter
(noir-lang/noir#6514)
([b8bace9](b8bace9))
* Allow unwinding multiple empty blocks
([#10084](#10084))
([ec34442](ec34442))
* Boxes
([#10122](#10122))
([10df7c5](10df7c5))
* Check infix expression is valid in program input
(noir-lang/noir#6450)
([b8bace9](b8bace9))
* Disallow `#[test]` on associated functions
(noir-lang/noir#6449)
([b8bace9](b8bace9))
* Disallow contract registration in pxe of contract with duplicate
private function selectors
([#9773](#9773))
([2587ad5](2587ad5))
* Discard optimisation that would change execution ordering or that is
related to call outputs (noir-lang/noir#6461)
([b8bace9](b8bace9))
* Do a shallow follow_bindings before unification
(noir-lang/noir#6558)
([b8bace9](b8bace9))
* **docs:** Fix broken links in oracles doc
(noir-lang/noir#6488)
([b8bace9](b8bace9))
* Don't crash on AsTraitPath with empty path
(noir-lang/noir#6454)
([b8bace9](b8bace9))
* Fix poor handling of aliased references in flattening pass causing
some values to be zeroed (noir-lang/noir#6434)
([b8bace9](b8bace9))
* Let formatter respect newlines between comments
(noir-lang/noir#6458)
([b8bace9](b8bace9))
* Make bytecode part of artifact hash preimage again
([#9771](#9771))
([cdabd85](cdabd85))
* Parse Slice type in SSa (noir-lang/noir#6507)
([b8bace9](b8bace9))
* Perform arithmetic simplification through `CheckedCast`
(noir-lang/noir#6502)
([b8bace9](b8bace9))
* Potential e2e-p2p fix
([#10094](#10094))
([820bcc6](820bcc6))
* Prover-agent.yaml syntax
([#10131](#10131))
([a238fe6](a238fe6))
* Remove src build from doc build flow
([#10127](#10127))
([fbfe1b1](fbfe1b1))
* Revert "feat: integrate base fee computation into rollup"
([#10166](#10166))
([1a207f5](1a207f5))
* Right shift is not a regular division
(noir-lang/noir#6400)
([b8bace9](b8bace9))
* **sea:** Mem2reg to treat block input references as alias
(noir-lang/noir#6452)
([b8bace9](b8bace9))
* Set local_module before elaborating each trait
(noir-lang/noir#6506)
([b8bace9](b8bace9))
* Sorting artifact props and members in metadata
([#9772](#9772))
([aba568a](aba568a))
* **ssa:** Change array_set to not mutate slices coming from function
inputs (noir-lang/noir#6463)
([b8bace9](b8bace9))
* **ssa:** Resolve value IDs in terminator before comparing to array
(noir-lang/noir#6448)
([b8bace9](b8bace9))
* Strip wasm debug
([#9987](#9987))
([62a6b66](62a6b66))
* Take blackbox function outputs into account when merging expressions
(noir-lang/noir#6532)
([b8bace9](b8bace9))
* **tests:** Prevent EOF error while running test programs
(noir-lang/noir#6455)
([b8bace9](b8bace9))
* **tests:** Use a file lock as well as a mutex to isolate tests cases
(noir-lang/noir#6508)
([b8bace9](b8bace9))
* Treat all parameters as possible aliases of each other
(noir-lang/noir#6477)
([b8bace9](b8bace9))
* Zero index is not always 0
([#10135](#10135))
([bbac3d9](bbac3d9))


### Miscellaneous

* Add `Instruction::MakeArray` to SSA
(noir-lang/noir#6071)
([b8bace9](b8bace9))
* Added test showcasing performance regression
(noir-lang/noir#6566)
([b8bace9](b8bace9))
* **avm:** Remove initialization for non-derived polynomials
([#10103](#10103))
([c6fdf4b](c6fdf4b)),
closes
[#10096](#10096)
* Bump rust dependencies (noir-lang/noir#6482)
([b8bace9](b8bace9))
* **ci:** Bump mac github runner image to `macos-14`
(noir-lang/noir#6545)
([b8bace9](b8bace9))
* **ci:** Fix cargo deny (noir-lang/noir#6501)
([b8bace9](b8bace9))
* Convert some tests to use SSA parser
(noir-lang/noir#6543)
([b8bace9](b8bace9))
* Delete stray todos
([#10112](#10112))
([cc4139a](cc4139a))
* Do not run e2e-2-pxes along with e2e pxe test
([#10155](#10155))
([f0f8d22](f0f8d22))
* **docs:** Update How to Oracles
(noir-lang/noir#5675)
([b8bace9](b8bace9))
* Embed package name in logs
(noir-lang/noir#6564)
([b8bace9](b8bace9))
* Fast epoch building test
([#10045](#10045))
([fb791a2](fb791a2)),
closes
[#9809](#9809)
* Fix pool metrics
([#9652](#9652))
([233b387](233b387))
* Fix spartan deploy script
([#10078](#10078))
([368ac8b](368ac8b))
* Initial draft of testnet-runbook
([#10085](#10085))
([598c1b1](598c1b1))
* Lower throughput of ebs disks
([#9997](#9997))
([698cd3d](698cd3d))
* Make tests not silent if DEBUG set
([#10130](#10130))
([95e8406](95e8406))
* Move tests for arithmetic generics closer to the code
(noir-lang/noir#6497)
([b8bace9](b8bace9))
* Optimise polynomial initialisation
([#10073](#10073))
([e608742](e608742))
* Parse negatives in SSA parser
(noir-lang/noir#6510)
([b8bace9](b8bace9))
* Proptest for `canonicalize` on infix type expressions
(noir-lang/noir#6269)
([b8bace9](b8bace9))
* Pull across
noir-lang/noir[#6558](#6558)
([#10037](#10037))
([3014a69](3014a69))
* Pull out sync changes
([#10072](#10072))
([06ef61e](06ef61e))
* Release Noir(0.38.0) (noir-lang/noir#6422)
([b8bace9](b8bace9))
* Release Noir(0.39.0) (noir-lang/noir#6484)
([b8bace9](b8bace9))
* Remove handling of duplicates from the note hash tree
([#10016](#10016))
([ece1d45](ece1d45))
* Remove PublicExecutor
([#10028](#10028))
([9643dcd](9643dcd))
* Remove separate acvm versioning
(noir-lang/noir#6561)
([b8bace9](b8bace9))
* Remove some `_else_condition` tech debt
(noir-lang/noir#6522)
([b8bace9](b8bace9))
* Remove some unnecessary clones
([#10049](#10049))
([8628b32](8628b32))
* Remove unused imports
([#10134](#10134))
([8dbeda0](8dbeda0))
* Remove unused methods from implicit numeric generics
(noir-lang/noir#6541)
([b8bace9](b8bace9))
* Replace relative paths to noir-protocol-circuits
([ccf6695](ccf6695))
* Replace relative paths to noir-protocol-circuits
([fa225a2](fa225a2))
* Replace relative paths to noir-protocol-circuits
([98387b8](98387b8))
* Replace relative paths to noir-protocol-circuits
([94753d4](94753d4))
* Restructure `noirc_evaluator` crate
(noir-lang/noir#6534)
([b8bace9](b8bace9))
* Revamp attributes (noir-lang/noir#6424)
([b8bace9](b8bace9))
* Reverse ssa parser diff order
(noir-lang/noir#6511)
([b8bace9](b8bace9))
* Revert
[#6375](#6375)
(noir-lang/noir#6552)
([b8bace9](b8bace9))
* Skip emitting public bytecode
([#10009](#10009))
([280d169](280d169))
* Split path and import lookups
(noir-lang/noir#6430)
([b8bace9](b8bace9))
* **ssa:** Skip array_set pass for Brillig functions
(noir-lang/noir#6513)
([b8bace9](b8bace9))
* Switch to 1.0.0-beta versioning
(noir-lang/noir#6503)
([b8bace9](b8bace9))
* **test:** More descriptive labels in test matrix
(noir-lang/noir#6542)
([b8bace9](b8bace9))
* **test:** Remove duplicate brillig tests
(noir-lang/noir#6523)
([b8bace9](b8bace9))
* **test:** Run test matrix on test_programs
(noir-lang/noir#6429)
([b8bace9](b8bace9))
* Update example to show how to split public inputs in bash
(noir-lang/noir#6472)
([b8bace9](b8bace9))


### Documentation

* Add docs to enable multi-threading in bb.js
([#10064](#10064))
([8b4ebd1](8b4ebd1))
* Re-arrange references section
([#10070](#10070))
([375482f](375482f))
</details>

<details><summary>barretenberg: 0.64.0</summary>

##
[0.64.0](barretenberg-v0.63.1...barretenberg-v0.64.0)
(2024-11-25)


### Features

* **avm:** Error handling for address resolution
([#9994](#9994))
([ceaeda5](ceaeda5)),
closes
[#9131](#9131)
* Improve trace utilization tracking
([#10008](#10008))
([4c560ab](4c560ab))
* Improved data storage metrics
([#10020](#10020))
([c6ab0c9](c6ab0c9))
* Insert public data tree leaves one by one
([#9989](#9989))
([a2c0701](a2c0701))
* IPA accumulators setup for Rollup
([#10040](#10040))
([4129e27](4129e27))
* Single commitment key allocation in CIVC
([#9974](#9974))
([a0551ee](a0551ee))


### Bug Fixes

* Strip wasm debug
([#9987](#9987))
([62a6b66](62a6b66))
* Zero index is not always 0
([#10135](#10135))
([bbac3d9](bbac3d9))


### Miscellaneous

* **avm:** Remove initialization for non-derived polynomials
([#10103](#10103))
([c6fdf4b](c6fdf4b)),
closes
[#10096](#10096)
* Delete stray todos
([#10112](#10112))
([cc4139a](cc4139a))
* Optimise polynomial initialisation
([#10073](#10073))
([e608742](e608742))
* Remove handling of duplicates from the note hash tree
([#10016](#10016))
([ece1d45](ece1d45))
</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 issue Nov 26, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.64.0](AztecProtocol/aztec-packages@aztec-package-v0.63.1...aztec-package-v0.64.0)
(2024-11-25)


### Features

* Unify anvil versions
([#10143](AztecProtocol/aztec-packages#10143))
([adae143](AztecProtocol/aztec-packages@adae143))


### Miscellaneous

* Fast epoch building test
([#10045](AztecProtocol/aztec-packages#10045))
([fb791a2](AztecProtocol/aztec-packages@fb791a2)),
closes
[#9809](AztecProtocol/aztec-packages#9809)
</details>

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

##
[0.64.0](AztecProtocol/aztec-packages@barretenberg.js-v0.63.1...barretenberg.js-v0.64.0)
(2024-11-25)


### Features

* Single commitment key allocation in CIVC
([#9974](AztecProtocol/aztec-packages#9974))
([a0551ee](AztecProtocol/aztec-packages@a0551ee))


### Bug Fixes

* Strip wasm debug
([#9987](AztecProtocol/aztec-packages#9987))
([62a6b66](AztecProtocol/aztec-packages@62a6b66))


### Documentation

* Add docs to enable multi-threading in bb.js
([#10064](AztecProtocol/aztec-packages#10064))
([8b4ebd1](AztecProtocol/aztec-packages@8b4ebd1))
</details>

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

##
[0.64.0](AztecProtocol/aztec-packages@aztec-packages-v0.63.1...aztec-packages-v0.64.0)
(2024-11-25)


### ⚠ BREAKING CHANGES

* rename SharedMutable methods
([#10165](AztecProtocol/aztec-packages#10165))
* add AztecAddress.isValid and make random be valid
([#10081](AztecProtocol/aztec-packages#10081))
* Always Check Arithmetic Generics at Monomorphization
(noir-lang/noir#6329)

### Features

* Add AztecAddress.isValid and make random be valid
([#10081](AztecProtocol/aztec-packages#10081))
([fbdf6b0](AztecProtocol/aztec-packages@fbdf6b0))
* Always Check Arithmetic Generics at Monomorphization
(noir-lang/noir#6329)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **avm:** Error handling for address resolution
([#9994](AztecProtocol/aztec-packages#9994))
([ceaeda5](AztecProtocol/aztec-packages@ceaeda5)),
closes
[#9131](AztecProtocol/aztec-packages#9131)
* **avm:** Integrate ephemeral trees
([#9917](AztecProtocol/aztec-packages#9917))
([fbe1128](AztecProtocol/aztec-packages@fbe1128))
* **avm:** More efficient low leaf search
([#9870](AztecProtocol/aztec-packages#9870))
([f7bbd83](AztecProtocol/aztec-packages@f7bbd83))
* Avoid unnecessary ssa passes while loop unrolling
(noir-lang/noir#6509)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Bb-prover AVM test crafts a test TX & properly plumbs
AvmCircuitPublicInputs to witgen
([#10083](AztecProtocol/aztec-packages#10083))
([55564aa](AztecProtocol/aztec-packages@55564aa))
* Calls to non-existent contracts in the AVM simulator return failure
([#10051](AztecProtocol/aztec-packages#10051))
([133384c](AztecProtocol/aztec-packages@133384c))
* Compute base-fee on l1
([#9986](AztecProtocol/aztec-packages#9986))
([4ab46fe](AztecProtocol/aztec-packages@4ab46fe))
* Deduplicate instructions across blocks
(noir-lang/noir#6499)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* E2e metrics reporting
([#9776](AztecProtocol/aztec-packages#9776))
([9cab121](AztecProtocol/aztec-packages@9cab121))
* Gating test
([#9918](AztecProtocol/aztec-packages#9918))
([c6b65ab](AztecProtocol/aztec-packages@c6b65ab)),
closes
[#9883](AztecProtocol/aztec-packages#9883)
* Google Kubernetes Engine - Prover Agent Spot Node Support
([#10031](AztecProtocol/aztec-packages#10031))
([4d6da9b](AztecProtocol/aztec-packages@4d6da9b))
* Improve trace utilization tracking
([#10008](AztecProtocol/aztec-packages#10008))
([4c560ab](AztecProtocol/aztec-packages@4c560ab))
* Improved data storage metrics
([#10020](AztecProtocol/aztec-packages#10020))
([c6ab0c9](AztecProtocol/aztec-packages@c6ab0c9))
* Initial gas oracle
([#9952](AztecProtocol/aztec-packages#9952))
([e740d42](AztecProtocol/aztec-packages@e740d42))
* Insert public data tree leaves one by one
([#9989](AztecProtocol/aztec-packages#9989))
([a2c0701](AztecProtocol/aztec-packages@a2c0701))
* Integrate base fee computation into rollup
([#10076](AztecProtocol/aztec-packages#10076))
([3417b22](AztecProtocol/aztec-packages@3417b22))
* IPA accumulators setup for Rollup
([#10040](AztecProtocol/aztec-packages#10040))
([4129e27](AztecProtocol/aztec-packages@4129e27))
* New proving agent
([#9999](AztecProtocol/aztec-packages#9999))
([9ad24dd](AztecProtocol/aztec-packages@9ad24dd))
* **profiler:** Reduce memory in Brillig execution flamegraph
(noir-lang/noir#6538)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Public network deployments
([#10089](AztecProtocol/aztec-packages#10089))
([570f70a](AztecProtocol/aztec-packages@570f70a))
* PXE handles reorgs
([#9913](AztecProtocol/aztec-packages#9913))
([aafef9c](AztecProtocol/aztec-packages@aafef9c))
* Rename SharedMutable methods
([#10165](AztecProtocol/aztec-packages#10165))
([4fd70e8](AztecProtocol/aztec-packages@4fd70e8))
* Reset pxe indexes
([#10093](AztecProtocol/aztec-packages#10093))
([3848c01](AztecProtocol/aztec-packages@3848c01))
* Simplify constant MSM calls in SSA
(noir-lang/noir#6547)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Single commitment key allocation in CIVC
([#9974](AztecProtocol/aztec-packages#9974))
([a0551ee](AztecProtocol/aztec-packages@a0551ee))
* SSA parser (noir-lang/noir#6489)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **ssa:** Unroll small loops in brillig
(noir-lang/noir#6505)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Sync from aztec-packages (noir-lang/noir#6557)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Sync tags as sender
([#10071](AztecProtocol/aztec-packages#10071))
([122d2e4](AztecProtocol/aztec-packages@122d2e4))
* Terraform for release deployments
([#10091](AztecProtocol/aztec-packages#10091))
([dc528da](AztecProtocol/aztec-packages@dc528da)),
closes
[#10144](AztecProtocol/aztec-packages#10144)
* Trait aliases (noir-lang/noir#6431)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Unify anvil versions
([#10143](AztecProtocol/aztec-packages#10143))
([adae143](AztecProtocol/aztec-packages@adae143))
* Updating consensus payload
([#10017](AztecProtocol/aztec-packages#10017))
([85c8a3b](AztecProtocol/aztec-packages@85c8a3b))
* Use a full `BlackBoxFunctionSolver` implementation when execution
brillig during acirgen (noir-lang/noir#6481)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **val:** Reex
([#9768](AztecProtocol/aztec-packages#9768))
([2e58f0a](AztecProtocol/aztec-packages@2e58f0a))


### Bug Fixes

* Add curl to aztec nargo container
([#10173](AztecProtocol/aztec-packages#10173))
([2add6ae](AztecProtocol/aztec-packages@2add6ae))
* Add zod parsing for generated contract artifacts
([#9905](AztecProtocol/aztec-packages#9905))
([e1ef998](AztecProtocol/aztec-packages@e1ef998))
* Allow range checks to be performed within the comptime intepreter
(noir-lang/noir#6514)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Allow unwinding multiple empty blocks
([#10084](AztecProtocol/aztec-packages#10084))
([ec34442](AztecProtocol/aztec-packages@ec34442))
* Boxes
([#10122](AztecProtocol/aztec-packages#10122))
([10df7c5](AztecProtocol/aztec-packages@10df7c5))
* Check infix expression is valid in program input
(noir-lang/noir#6450)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Disallow `#[test]` on associated functions
(noir-lang/noir#6449)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Disallow contract registration in pxe of contract with duplicate
private function selectors
([#9773](AztecProtocol/aztec-packages#9773))
([2587ad5](AztecProtocol/aztec-packages@2587ad5))
* Discard optimisation that would change execution ordering or that is
related to call outputs (noir-lang/noir#6461)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Do a shallow follow_bindings before unification
(noir-lang/noir#6558)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **docs:** Fix broken links in oracles doc
(noir-lang/noir#6488)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Don't crash on AsTraitPath with empty path
(noir-lang/noir#6454)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Fix poor handling of aliased references in flattening pass causing
some values to be zeroed (noir-lang/noir#6434)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Let formatter respect newlines between comments
(noir-lang/noir#6458)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Make bytecode part of artifact hash preimage again
([#9771](AztecProtocol/aztec-packages#9771))
([cdabd85](AztecProtocol/aztec-packages@cdabd85))
* Parse Slice type in SSa (noir-lang/noir#6507)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Perform arithmetic simplification through `CheckedCast`
(noir-lang/noir#6502)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Potential e2e-p2p fix
([#10094](AztecProtocol/aztec-packages#10094))
([820bcc6](AztecProtocol/aztec-packages@820bcc6))
* Prover-agent.yaml syntax
([#10131](AztecProtocol/aztec-packages#10131))
([a238fe6](AztecProtocol/aztec-packages@a238fe6))
* Remove src build from doc build flow
([#10127](AztecProtocol/aztec-packages#10127))
([fbfe1b1](AztecProtocol/aztec-packages@fbfe1b1))
* Revert "feat: integrate base fee computation into rollup"
([#10166](AztecProtocol/aztec-packages#10166))
([1a207f5](AztecProtocol/aztec-packages@1a207f5))
* Right shift is not a regular division
(noir-lang/noir#6400)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **sea:** Mem2reg to treat block input references as alias
(noir-lang/noir#6452)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Set local_module before elaborating each trait
(noir-lang/noir#6506)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Sorting artifact props and members in metadata
([#9772](AztecProtocol/aztec-packages#9772))
([aba568a](AztecProtocol/aztec-packages@aba568a))
* **ssa:** Change array_set to not mutate slices coming from function
inputs (noir-lang/noir#6463)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **ssa:** Resolve value IDs in terminator before comparing to array
(noir-lang/noir#6448)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Strip wasm debug
([#9987](AztecProtocol/aztec-packages#9987))
([62a6b66](AztecProtocol/aztec-packages@62a6b66))
* Take blackbox function outputs into account when merging expressions
(noir-lang/noir#6532)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **tests:** Prevent EOF error while running test programs
(noir-lang/noir#6455)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **tests:** Use a file lock as well as a mutex to isolate tests cases
(noir-lang/noir#6508)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Treat all parameters as possible aliases of each other
(noir-lang/noir#6477)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Zero index is not always 0
([#10135](AztecProtocol/aztec-packages#10135))
([bbac3d9](AztecProtocol/aztec-packages@bbac3d9))


### Miscellaneous

* Add `Instruction::MakeArray` to SSA
(noir-lang/noir#6071)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Added test showcasing performance regression
(noir-lang/noir#6566)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **avm:** Remove initialization for non-derived polynomials
([#10103](AztecProtocol/aztec-packages#10103))
([c6fdf4b](AztecProtocol/aztec-packages@c6fdf4b)),
closes
[#10096](AztecProtocol/aztec-packages#10096)
* Bump rust dependencies (noir-lang/noir#6482)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **ci:** Bump mac github runner image to `macos-14`
(noir-lang/noir#6545)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **ci:** Fix cargo deny (noir-lang/noir#6501)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Convert some tests to use SSA parser
(noir-lang/noir#6543)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Delete stray todos
([#10112](AztecProtocol/aztec-packages#10112))
([cc4139a](AztecProtocol/aztec-packages@cc4139a))
* Do not run e2e-2-pxes along with e2e pxe test
([#10155](AztecProtocol/aztec-packages#10155))
([f0f8d22](AztecProtocol/aztec-packages@f0f8d22))
* **docs:** Update How to Oracles
(noir-lang/noir#5675)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Embed package name in logs
(noir-lang/noir#6564)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Fast epoch building test
([#10045](AztecProtocol/aztec-packages#10045))
([fb791a2](AztecProtocol/aztec-packages@fb791a2)),
closes
[#9809](AztecProtocol/aztec-packages#9809)
* Fix pool metrics
([#9652](AztecProtocol/aztec-packages#9652))
([233b387](AztecProtocol/aztec-packages@233b387))
* Fix spartan deploy script
([#10078](AztecProtocol/aztec-packages#10078))
([368ac8b](AztecProtocol/aztec-packages@368ac8b))
* Initial draft of testnet-runbook
([#10085](AztecProtocol/aztec-packages#10085))
([598c1b1](AztecProtocol/aztec-packages@598c1b1))
* Lower throughput of ebs disks
([#9997](AztecProtocol/aztec-packages#9997))
([698cd3d](AztecProtocol/aztec-packages@698cd3d))
* Make tests not silent if DEBUG set
([#10130](AztecProtocol/aztec-packages#10130))
([95e8406](AztecProtocol/aztec-packages@95e8406))
* Move tests for arithmetic generics closer to the code
(noir-lang/noir#6497)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Optimise polynomial initialisation
([#10073](AztecProtocol/aztec-packages#10073))
([e608742](AztecProtocol/aztec-packages@e608742))
* Parse negatives in SSA parser
(noir-lang/noir#6510)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Proptest for `canonicalize` on infix type expressions
(noir-lang/noir#6269)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Pull across
noir-lang/noir[#6558](AztecProtocol/aztec-packages#6558)
([#10037](AztecProtocol/aztec-packages#10037))
([3014a69](AztecProtocol/aztec-packages@3014a69))
* Pull out sync changes
([#10072](AztecProtocol/aztec-packages#10072))
([06ef61e](AztecProtocol/aztec-packages@06ef61e))
* Release Noir(0.38.0) (noir-lang/noir#6422)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Release Noir(0.39.0) (noir-lang/noir#6484)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Remove handling of duplicates from the note hash tree
([#10016](AztecProtocol/aztec-packages#10016))
([ece1d45](AztecProtocol/aztec-packages@ece1d45))
* Remove PublicExecutor
([#10028](AztecProtocol/aztec-packages#10028))
([9643dcd](AztecProtocol/aztec-packages@9643dcd))
* Remove separate acvm versioning
(noir-lang/noir#6561)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Remove some `_else_condition` tech debt
(noir-lang/noir#6522)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Remove some unnecessary clones
([#10049](AztecProtocol/aztec-packages#10049))
([8628b32](AztecProtocol/aztec-packages@8628b32))
* Remove unused imports
([#10134](AztecProtocol/aztec-packages#10134))
([8dbeda0](AztecProtocol/aztec-packages@8dbeda0))
* Remove unused methods from implicit numeric generics
(noir-lang/noir#6541)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Replace relative paths to noir-protocol-circuits
([ccf6695](AztecProtocol/aztec-packages@ccf6695))
* Replace relative paths to noir-protocol-circuits
([fa225a2](AztecProtocol/aztec-packages@fa225a2))
* Replace relative paths to noir-protocol-circuits
([98387b8](AztecProtocol/aztec-packages@98387b8))
* Replace relative paths to noir-protocol-circuits
([94753d4](AztecProtocol/aztec-packages@94753d4))
* Restructure `noirc_evaluator` crate
(noir-lang/noir#6534)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Revamp attributes (noir-lang/noir#6424)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Reverse ssa parser diff order
(noir-lang/noir#6511)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Revert
[#6375](AztecProtocol/aztec-packages#6375)
(noir-lang/noir#6552)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Skip emitting public bytecode
([#10009](AztecProtocol/aztec-packages#10009))
([280d169](AztecProtocol/aztec-packages@280d169))
* Split path and import lookups
(noir-lang/noir#6430)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **ssa:** Skip array_set pass for Brillig functions
(noir-lang/noir#6513)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Switch to 1.0.0-beta versioning
(noir-lang/noir#6503)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **test:** More descriptive labels in test matrix
(noir-lang/noir#6542)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **test:** Remove duplicate brillig tests
(noir-lang/noir#6523)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* **test:** Run test matrix on test_programs
(noir-lang/noir#6429)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))
* Update example to show how to split public inputs in bash
(noir-lang/noir#6472)
([b8bace9](AztecProtocol/aztec-packages@b8bace9))


### Documentation

* Add docs to enable multi-threading in bb.js
([#10064](AztecProtocol/aztec-packages#10064))
([8b4ebd1](AztecProtocol/aztec-packages@8b4ebd1))
* Re-arrange references section
([#10070](AztecProtocol/aztec-packages#10070))
([375482f](AztecProtocol/aztec-packages@375482f))
</details>

<details><summary>barretenberg: 0.64.0</summary>

##
[0.64.0](AztecProtocol/aztec-packages@barretenberg-v0.63.1...barretenberg-v0.64.0)
(2024-11-25)


### Features

* **avm:** Error handling for address resolution
([#9994](AztecProtocol/aztec-packages#9994))
([ceaeda5](AztecProtocol/aztec-packages@ceaeda5)),
closes
[#9131](AztecProtocol/aztec-packages#9131)
* Improve trace utilization tracking
([#10008](AztecProtocol/aztec-packages#10008))
([4c560ab](AztecProtocol/aztec-packages@4c560ab))
* Improved data storage metrics
([#10020](AztecProtocol/aztec-packages#10020))
([c6ab0c9](AztecProtocol/aztec-packages@c6ab0c9))
* Insert public data tree leaves one by one
([#9989](AztecProtocol/aztec-packages#9989))
([a2c0701](AztecProtocol/aztec-packages@a2c0701))
* IPA accumulators setup for Rollup
([#10040](AztecProtocol/aztec-packages#10040))
([4129e27](AztecProtocol/aztec-packages@4129e27))
* Single commitment key allocation in CIVC
([#9974](AztecProtocol/aztec-packages#9974))
([a0551ee](AztecProtocol/aztec-packages@a0551ee))


### Bug Fixes

* Strip wasm debug
([#9987](AztecProtocol/aztec-packages#9987))
([62a6b66](AztecProtocol/aztec-packages@62a6b66))
* Zero index is not always 0
([#10135](AztecProtocol/aztec-packages#10135))
([bbac3d9](AztecProtocol/aztec-packages@bbac3d9))


### Miscellaneous

* **avm:** Remove initialization for non-derived polynomials
([#10103](AztecProtocol/aztec-packages#10103))
([c6fdf4b](AztecProtocol/aztec-packages@c6fdf4b)),
closes
[#10096](AztecProtocol/aztec-packages#10096)
* Delete stray todos
([#10112](AztecProtocol/aztec-packages#10112))
([cc4139a](AztecProtocol/aztec-packages@cc4139a))
* Optimise polynomial initialisation
([#10073](AztecProtocol/aztec-packages#10073))
([e608742](AztecProtocol/aztec-packages@e608742))
* Remove handling of duplicates from the note hash tree
([#10016](AztecProtocol/aztec-packages#10016))
([ece1d45](AztecProtocol/aztec-packages@ece1d45))
</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
Projects
None yet
1 participant