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: sync tags as sender #10071

Merged
merged 5 commits into from
Nov 23, 2024
Merged

Conversation

sklppy88
Copy link
Contributor

@sklppy88 sklppy88 commented Nov 20, 2024

This PR enables simple multi-device support by simply syncing the tagging secret indexes when fetching calculating the tag latest tag to use as a sender. The calculated tag uses the largest found index (recent), whether it be from on device, or from remote.

Resolves #9762.

Copy link
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch from c52fc20 to cbfa05a Compare November 20, 2024 15:35
@sklppy88 sklppy88 changed the title init feat: sync tags as sender Nov 20, 2024
@sklppy88 sklppy88 marked this pull request as ready for review November 20, 2024 16:05
@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch 2 times, most recently from 49ac3de to 5435af5 Compare November 20, 2024 18:01
sklppy88

This comment was marked as outdated.

@sklppy88 sklppy88 marked this pull request as draft November 20, 2024 18:04
@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch from 5435af5 to 8b53b70 Compare November 20, 2024 18:35
Copy link
Contributor

@nventuro nventuro left a comment

Choose a reason for hiding this comment

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

Hm, I'm unsure as to the overall approach. I get wanting to reuse stuff, but this feels quite odd. syncTaggedLogs returns logs and has some side effects (the indices get advanced), but here we're ignoring the retun value, and we're making it have a different set of side effects (since it's the sender indices that move forward, not the recipient ones).

syncTaggedLogs is also fairly complicated for reasons we don't care about here: it deals with multiple senders and recipients (while we just have the one), has a sliding window that moves back (we only need to move forward), etc.

It feels to me like we could just have a way simpler version in which we just read the current index in the database, queries the node for logs and moves the index forward until it doesn't find any logs, with some forward window to be able to jump over skipped indices.

yarn-project/pxe/src/simulator_oracle/index.ts Outdated Show resolved Hide resolved
@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch 4 times, most recently from 2d60a0d to 1778062 Compare November 20, 2024 23:41
@sklppy88
Copy link
Contributor Author

sklppy88 commented Nov 20, 2024

Hm, I'm unsure as to the overall approach. I get wanting to reuse stuff, but this feels quite odd. syncTaggedLogs returns logs and has some side effects (the indices get advanced), but here we're ignoring the retun value, and we're making it have a different set of side effects (since it's the sender indices that move forward, not the recipient ones).

syncTaggedLogs is also fairly complicated for reasons we don't care about here: it deals with multiple senders and recipients (while we just have the one), has a sliding window that moves back (we only need to move forward), etc.

It feels to me like we could just have a way simpler version in which we just read the current index in the database, queries the node for logs and moves the index forward until it doesn't find any logs, with some forward window to be able to jump over skipped indices.

Ah this is a very good point. I had just wanted to maximize reuse of code, like you said. I didn't realize though that the tradeoff for this maximization was this large.

I have made the changes you suggested and made it much simpler. I also did not implement a window though, because I think it would be okay to just use the first found open index for now, as I think we will take another pass at this logic when adapting it for reorgs.

@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch 2 times, most recently from aa56f47 to 621ffab Compare November 21, 2024 03:36
@sklppy88 sklppy88 marked this pull request as ready for review November 21, 2024 03:41
@sklppy88 sklppy88 requested a review from Thunkar November 21, 2024 03:41
@sklppy88 sklppy88 requested a review from Thunkar November 21, 2024 09:29
@Thunkar
Copy link
Contributor

Thunkar commented Nov 21, 2024

I would add the e2e-all tag to this one, since it modifies the way notes are sent for the whole repo.

@sklppy88 sklppy88 added the e2e-all CI: Enables this CI job. label Nov 21, 2024
@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch from b1c28a4 to 0aa3b96 Compare November 21, 2024 19:18
@sklppy88 sklppy88 requested a review from nventuro November 21, 2024 19:29
Copy link
Contributor

@nventuro nventuro left a comment

Choose a reason for hiding this comment

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

I also did not implement a window though, because I think it would be okay to just use the first found open index for now, as I think we will take another pass at this logic when adapting it for reorgs.

We already support reorgs as of #9913, and #10071 will trigger an index reset. If we choose the first empty index then any reverted transaction will result in the sender and recipient being desynced until the sender sends sufficient notes to cover the gap.

We must use a forward sliding window with the same size as the recipient, and only stop looking for indices once we find a full window with no tags (which is the same thing the recipient does).

yarn-project/pxe/src/simulator_oracle/index.ts Outdated Show resolved Hide resolved
@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch from 0aa3b96 to 1677959 Compare November 22, 2024 15:03
@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch from 1677959 to b61c95d Compare November 22, 2024 15:04
@sklppy88
Copy link
Contributor Author

I also did not implement a window though, because I think it would be okay to just use the first found open index for now, as I think we will take another pass at this logic when adapting it for reorgs.

We already support reorgs as of #9913, and #10071 will trigger an index reset. If we choose the first empty index then any reverted transaction will result in the sender and recipient being desynced until the sender sends sufficient notes to cover the gap.

We must use a forward sliding window with the same size as the recipient, and only stop looking for indices once we find a full window with no tags (which is the same thing the recipient does).

Ah I didn't realize, thank you for pointing it out !

I have implemented the sliding window as necessary with the same size as the recipient !

@sklppy88 sklppy88 requested a review from nventuro November 22, 2024 15:11
@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch from 2d77f78 to 70ac61a Compare November 22, 2024 15:56
@sklppy88 sklppy88 force-pushed the ek/feat/9762/find-next-tag-as-sender branch from 70ac61a to 4a8ae3e Compare November 22, 2024 23:32
@sklppy88 sklppy88 merged commit 122d2e4 into master Nov 23, 2024
102 checks passed
@sklppy88 sklppy88 deleted the ek/feat/9762/find-next-tag-as-sender branch November 23, 2024 00:09
critesjosh pushed a commit that referenced this pull request 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).
TomAFrench added a commit that referenced this pull request Nov 25, 2024
* master: (106 commits)
  feat: blobs. (#9302)
  chore(avm): operands reordering (#10182)
  feat: UltraRollupRecursiveFlavor (#10088)
  feat: one liner for nodes to join rough-rhino (#10168)
  feat!: rename sharedimmutable methods (#10164)
  chore(master): Release 0.64.0 (#10043)
  feat: e2e metrics reporting (#9776)
  chore: fix pool metrics (#9652)
  chore: Initial draft of testnet-runbook (#10085)
  feat: Improved data storage metrics (#10020)
  chore: Remove handling of duplicates from the note hash tree (#10016)
  fix: add curl to aztec nargo container (#10173)
  fix: Revert "feat: integrate base fee computation into rollup" (#10166)
  feat!: rename SharedMutable methods (#10165)
  git subrepo push --branch=master noir-projects/aztec-nr
  git_subrepo.sh: Fix parent in .gitrepo file. [skip ci]
  chore: replace relative paths to noir-protocol-circuits
  git subrepo push --branch=master barretenberg
  feat: sync tags as sender (#10071)
  feat: integrate base fee computation into rollup (#10076)
  ...
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request 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
Labels
e2e-all CI: Enables this CI job.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Find next tag as sender
3 participants