-
Notifications
You must be signed in to change notification settings - Fork 234
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
refactor: naming fixes #3476
refactor: naming fixes #3476
Conversation
Benchmark resultsMetrics with a significant change:
Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. Values are compared against data from master at commit L2 block published to L1Each column represents the number of txs on an L2 block published to L1.
L2 chain processingEach column represents the number of blocks on the L2 chain where each block has 16 txs.
Circuits statsStats on running time and I/O sizes collected for every circuit run across all benchmarks.
MiscellaneousTransaction sizes based on how many contracts are deployed in the tx.
|
HistoricBlockData
-> BlockHeader
peding merge conflict resolution! |
@@ -116,7 +116,7 @@ As for deploying this all to mainnet, a decentralized sequencer selection and pr | |||
|
|||
### You can't read mutable public state from a private function | |||
|
|||
Private smart contract functions won't be able to read mutable public state yet. We have some [ideas](https://discourse.aztec.network/t/accessing-historic-public-state-from-private-functions/241/7?u=mike) for how to solve this, and will look to implement something very soon. | |||
Private smart contract functions won't be able to read mutable public state yet. We have some [ideas](https://discourse.aztec.network/t/accessing-historical-public-state-from-private-functions/241/7?u=mike) for how to solve this, and will look to implement something very soon. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This new URL link seems to still work, why is that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, for some reason it worked (I have no idea why). But I better reverted the change in this commit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor nits. The main one being the solidity comment, otherwise lgtm
- `treeOfHistoricNoteHashTreeRoots`: for membership checks against historic roots of the `noteHashTree` | ||
- `treeOfHistoricContractTreeRoots`: for membership checks against historic roots of the `contractTree` | ||
Leaves are hashes of blocks (of block headers). | ||
Can be used to access any of the trees above at some older point in time by doing a membership check of the old root in the block header and of the block header hash in the blocks tree. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one might be a little confusing, should we insert the figure around here or something to convey it better (we can do that separately to this pr)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here it is
|
||
Say the public state holds a `mapping(address user => bool blacklisted)` and a value with the block number of the last update `last_updated`. The private functions can then use this public blacklist IF it also performs a public function call that reverts if the block number of the historic state is older than the `last_updated`. This means that updating the blacklist would make pending transactions fail, but allow a public blacklist to be used. Similar would work for the Aave example, where it is just a public value with the allowed caller contracts. Example of how this would be written is seen below. Note that because the `onlyFresh` is done in public, the user might not know when he is generating his proof whether it will be valid or not. | ||
Say the public state holds a `mapping(address user => bool blacklisted)` and a value with the block number of the last update `last_updated`. The private functions can then use this public blacklist IF it also performs a public function call that reverts if the block number of the historical state is older than the `last_updated`. This means that updating the blacklist would make pending transactions fail, but allow a public blacklist to be used. Similar would work for the Aave example, where it is just a public value with the allowed caller contracts. Example of how this would be written is seen below. Note that because the `onlyFresh` is done in public, the user might not know when he is generating his proof whether it will be valid or not. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some of this should probably be updated with the slow updates tree docs being written (not for this pr). @rahul-kothari do you know at the top of your head if this is addressed by the slow updates docs addition?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not yet but will ask
start_historic_blocks_tree_snapshot : self.start_historic_blocks_tree_snapshot, | ||
end_historic_blocks_tree_snapshot : end_historic_blocks_tree_snapshot, | ||
start_blocks_tree_snapshot : self.start_blocks_tree_snapshot, | ||
end_blocks_tree_snapshot : end_blocks_tree_snapshot, | ||
calldata_hash : components::compute_calldata_hash(self.previous_rollup_data), | ||
l1_to_l2_messages_hash : compute_messages_hash(self.new_l1_to_l2_messages), | ||
|
||
// The cpp code was just not initializing these, so they would be zeroed out | ||
// TODO(Lasse/Jean): add explanation for this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Huh? 👁️ 👅 👁️ I don't recall this todo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That was me :p
@@ -96,7 +96,7 @@ export interface Block { | |||
global_variables_hash: Field; | |||
} | |||
|
|||
export interface HistoricalBlockData { | |||
export interface BlockHeader { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't we have the same block headers again and again in some of these types files?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, there seems to be a copy of the type for different circuits.
@@ -96,7 +96,7 @@ export interface Block { | |||
global_variables_hash: Field; | |||
} | |||
|
|||
export interface HistoricalBlockData { | |||
export interface BlockHeader { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, it is a little funky that the blocks_tree_root is separate to the rest of the block here, when all of those roots are really the block header and not the block (block setup above)
@@ -5,7 +5,7 @@ import { AppendOnlyTreeSnapshot, BaseOrMergeRollupPublicInputs, RootRollupPublic | |||
*/ | |||
export type AllowedTreeNames<T extends BaseOrMergeRollupPublicInputs | RootRollupPublicInputs> = | |||
T extends RootRollupPublicInputs | |||
? 'NoteHash' | 'Contract' | 'Nullifier' | 'L1ToL2Messages' | 'HistoricBlocks' | |||
? 'NoteHash' | 'Contract' | 'Nullifier' | 'L1ToL2Messages' | 'Blocks' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we generally be calling it header instead of just blocks, at least currently it does not hold the block content but just the header.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like given that the tree leaves are block hashes the name is ok.
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.16.2</summary> ## [0.16.2](aztec-packages-v0.16.1...aztec-packages-v0.16.2) (2023-12-05) ### Features * Add tree snapshots ([#3468](#3468)) ([7a86bb3](7a86bb3)) * **AVM:** First version for mini AVM (ADD, RETURN, CALLDATACOPY) ([#3439](#3439)) ([b3af146](b3af146)) * Circuit optimized indexed tree batch insertion ([#3367](#3367)) ([187d2f7](187d2f7)) * Devnet ([#3473](#3473)) ([97c40c2](97c40c2)) * **docs:** Add simple private voting tutorial ([#3402](#3402)) ([a6e0352](a6e0352)) * **docs:** Document slow update tree ([#3416](#3416)) ([8e9f103](8e9f103)) * Flavor refactor, reduce duplication ([#3407](#3407)) ([8d6b013](8d6b013)) * Inclusion and non-inclusion proofs experiment ([#3255](#3255)) ([b911e65](b911e65)), closes [#2572](#2572) [#2584](#2584) * New Poseidon2 circuit builder gates ([#3346](#3346)) ([91cb369](91cb369)) * New Poseidon2 relations ([#3406](#3406)) ([14b9736](14b9736)) * Pull latest noir for brillig optimizations ([#3464](#3464)) ([d356bac](d356bac)) * Refactor StandardIndexedTree for abstract leaves and preimages and optimized it ([#3530](#3530)) ([63b9cdc](63b9cdc)) * Removing historical roots from circuits ([#3544](#3544)) ([9f682cb](9f682cb)) * Seperate pil files for sub machines ([#3454](#3454)) ([d09d6f5](d09d6f5)) * Throw compile time error if contract has too many fns ([#3536](#3536)) ([ad66ad0](ad66ad0)) * Use tree snapshots in aztec-node/pxe/oracles ([#3504](#3504)) ([6e40427](6e40427)) * Yellow paper cross-chain communication ([#3477](#3477)) ([d51df8c](d51df8c)) ### Bug Fixes * Check version, chainid and sender for cross-chain l1 to l2 msgs ([#3457](#3457)) ([d251703](d251703)) * **ci:** Add DEPLOY_TAG in fork log group ([#3510](#3510)) ([f021041](f021041)) * **ci:** Check if l1 contracts img has been deployed ([#3531](#3531)) ([ac1f03c](ac1f03c)) * **ci:** Comment out LB listeners (for now) ([#3519](#3519)) ([640aabc](640aabc)) * **ci:** Count for bootnode discovery service ([#3517](#3517)) ([2a38788](2a38788)) * **ci:** Define REPOSITORY in deploy_l1_contracts ([#3514](#3514)) ([b246d1b](b246d1b)) * **ci:** Don't deploy to npm on master merge ([#3502](#3502)) ([a138860](a138860)) * **ci:** Env vars for deploying l1-contracts ([#3513](#3513)) ([27106b2](27106b2)) * **ci:** Export FORK_API_KEY from setup_env ([#3512](#3512)) ([7e81e2c](7e81e2c)) * **ci:** Fix docker architecture for devnet packages ([#3505](#3505)) ([66d0287](66d0287)) * **ci:** Fix faucet vars + don't deploy contracts from node ([#3553](#3553)) ([c7176f6](c7176f6)) * **ci:** L1 contracts directories ([#3545](#3545)) ([63dd0c8](63dd0c8)) * **ci:** Login to ecr to fetch contracts image ([#3538](#3538)) ([b033538](b033538)) * **ci:** Remove unused ADDRESS vars & export private key vars ([#3520](#3520)) ([d889359](d889359)) * **ci:** Set default value for $TO_TAINT ([#3508](#3508)) ([8b6688a](8b6688a)) * **ci:** Terraform listener resources ([#3534](#3534)) ([c3b9cce](c3b9cce)) * **ci:** Terraform_deploy for devnet ([#3516](#3516)) ([ba3803e](ba3803e)) * **ci:** Tf variable references & formatting([#3522](#3522)) ([d37cf52](d37cf52)) * Disable e2e-slow-tree ([#3459](#3459)) ([5927103](5927103)) * **docs:** Update package name of aztec-cli ([#3474](#3474)) ([98d7ba0](98d7ba0)) * Double slash in deployed faucet routes ([#3555](#3555)) ([6c704a5](6c704a5)) * Faucet lb_listener priority ([#3554](#3554)) ([3f56dd7](3f56dd7)) * Handling low_nullifier.next_value equal to 0 ([#3562](#3562)) ([c800502](c800502)), closes [#3550](#3550) * Remove x86_64 form l1-contracts img tag ([#3549](#3549)) ([6828f1a](6828f1a)) * Throw error if fn sig has whitespaces ([#3509](#3509)) ([7671063](7671063)), closes [#3055](#3055) ### Miscellaneous * (yellow paper) public-vm section of yellow paper ([#3493](#3493)) ([8ff3780](8ff3780)) * Add mermaid diagram support ([#3499](#3499)) ([537d552](537d552)) * Add yellow paper build check to CI ([#3490](#3490)) ([3ebd2f2](3ebd2f2)) * **avm:** Enable AVM unit tests in CI ([#3463](#3463)) ([051dda9](051dda9)), closes [#3461](#3461) * **bb:** Pointer_view to reference-based get_all ([#3495](#3495)) ([50d7327](50d7327)) * **bb:** Reuse entities from GoblinUltra in GoblinUltraRecursive ([#3521](#3521)) ([8259636](8259636)) * Build the acir test vectors as part of CI. ([#3447](#3447)) ([1a2d1f8](1a2d1f8)) * Containers reduced to ~100MB total. ~30s installation. ([#3487](#3487)) ([b49cef2](b49cef2)) * **docs:** Fix broken Noir stdlib link ([#3496](#3496)) ([787d59a](787d59a)) * Field-agnostic and reusable transcript ([#3433](#3433)) ([d78775a](d78775a)) * Fix broken link in txs in yellow paper ([#3484](#3484)) ([798565d](798565d)) * Fix yellow paper build error ([32881a4](32881a4)) * Fixed typo in build system ([#3501](#3501)) ([3a80ac2](3a80ac2)) * Increase functions per contract from 16 to 32 ([#3503](#3503)) ([ebdeea3](ebdeea3)) * Naming fixes ([#3476](#3476)) ([1db30bf](1db30bf)) * Optimise bb.js package size and sandox/cli dockerfiles to unbloat final containers. ([#3462](#3462)) ([cb3db5d](cb3db5d)) * Pin node version in docker base images and bump nvmrc ([#3537](#3537)) ([5d3895a](5d3895a)) * Recursive verifier updates ([#3452](#3452)) ([dbb4a12](dbb4a12)) * Refactor `WitnessEntities` to be able to derive `WitnessCommitments` from it ([#3479](#3479)) ([9c9b561](9c9b561)) * Remove temporary logging ([#3466](#3466)) ([8c8387b](8c8387b)) * Transcript handled through shared_ptr ([#3434](#3434)) ([30fca33](30fca33)) * Typo fixes ([#3488](#3488)) ([d9a44dc](d9a44dc)) * **yellow_paper:** Public<>private messaging ([#3491](#3491)) ([6ecc406](6ecc406)) ### Documentation * Add transaction section to yellow paper ([#3418](#3418)) ([44bf30b](44bf30b)) * Apply comments from Jan on contracts ([#3539](#3539)) ([e351873](e351873)) * Fees update in yellow paper ([#3486](#3486)) ([a8b2608](a8b2608)) * First go at generated AVM instruction set doc ([#3469](#3469)) ([8cc54a4](8cc54a4)) * Further update to the yellow paper ([#3542](#3542)) ([751bb6a](751bb6a)) * Yellow paper updates ([#3478](#3478)) ([11f754d](11f754d)) * Yellow paper updates for private message delivery ([#3472](#3472)) ([6ba9e18](6ba9e18)) * **yellow-paper:** Sync, enqueued, and static calls ([#3494](#3494)) ([00835c6](00835c6)), closes [#3108](#3108) * **yellowpaper:** Instruction set updates and fixes ([#3515](#3515)) ([bfb61dd](bfb61dd)) </details> <details><summary>barretenberg.js: 0.16.2</summary> ## [0.16.2](barretenberg.js-v0.16.1...barretenberg.js-v0.16.2) (2023-12-05) ### Miscellaneous * Optimise bb.js package size and sandox/cli dockerfiles to unbloat final containers. ([#3462](#3462)) ([cb3db5d](cb3db5d)) * Pin node version in docker base images and bump nvmrc ([#3537](#3537)) ([5d3895a](5d3895a)) </details> <details><summary>barretenberg: 0.16.2</summary> ## [0.16.2](barretenberg-v0.16.1...barretenberg-v0.16.2) (2023-12-05) ### Features * **AVM:** First version for mini AVM (ADD, RETURN, CALLDATACOPY) ([#3439](#3439)) ([b3af146](b3af146)) * Flavor refactor, reduce duplication ([#3407](#3407)) ([8d6b013](8d6b013)) * New Poseidon2 circuit builder gates ([#3346](#3346)) ([91cb369](91cb369)) * New Poseidon2 relations ([#3406](#3406)) ([14b9736](14b9736)) * Pull latest noir for brillig optimizations ([#3464](#3464)) ([d356bac](d356bac)) * Seperate pil files for sub machines ([#3454](#3454)) ([d09d6f5](d09d6f5)) ### Miscellaneous * **avm:** Enable AVM unit tests in CI ([#3463](#3463)) ([051dda9](051dda9)), closes [#3461](#3461) * **bb:** Pointer_view to reference-based get_all ([#3495](#3495)) ([50d7327](50d7327)) * **bb:** Reuse entities from GoblinUltra in GoblinUltraRecursive ([#3521](#3521)) ([8259636](8259636)) * Build the acir test vectors as part of CI. ([#3447](#3447)) ([1a2d1f8](1a2d1f8)) * Field-agnostic and reusable transcript ([#3433](#3433)) ([d78775a](d78775a)) * Optimise bb.js package size and sandox/cli dockerfiles to unbloat final containers. ([#3462](#3462)) ([cb3db5d](cb3db5d)) * Pin node version in docker base images and bump nvmrc ([#3537](#3537)) ([5d3895a](5d3895a)) * Recursive verifier updates ([#3452](#3452)) ([dbb4a12](dbb4a12)) * Refactor `WitnessEntities` to be able to derive `WitnessCommitments` from it ([#3479](#3479)) ([9c9b561](9c9b561)) * Transcript handled through shared_ptr ([#3434](#3434)) ([30fca33](30fca33)) * Typo fixes ([#3488](#3488)) ([d9a44dc](d9a44dc)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.16.2</summary> ## [0.16.2](AztecProtocol/aztec-packages@aztec-packages-v0.16.1...aztec-packages-v0.16.2) (2023-12-05) ### Features * Add tree snapshots ([#3468](AztecProtocol/aztec-packages#3468)) ([7a86bb3](AztecProtocol/aztec-packages@7a86bb3)) * **AVM:** First version for mini AVM (ADD, RETURN, CALLDATACOPY) ([#3439](AztecProtocol/aztec-packages#3439)) ([b3af146](AztecProtocol/aztec-packages@b3af146)) * Circuit optimized indexed tree batch insertion ([#3367](AztecProtocol/aztec-packages#3367)) ([187d2f7](AztecProtocol/aztec-packages@187d2f7)) * Devnet ([#3473](AztecProtocol/aztec-packages#3473)) ([97c40c2](AztecProtocol/aztec-packages@97c40c2)) * **docs:** Add simple private voting tutorial ([#3402](AztecProtocol/aztec-packages#3402)) ([a6e0352](AztecProtocol/aztec-packages@a6e0352)) * **docs:** Document slow update tree ([#3416](AztecProtocol/aztec-packages#3416)) ([8e9f103](AztecProtocol/aztec-packages@8e9f103)) * Flavor refactor, reduce duplication ([#3407](AztecProtocol/aztec-packages#3407)) ([8d6b013](AztecProtocol/aztec-packages@8d6b013)) * Inclusion and non-inclusion proofs experiment ([#3255](AztecProtocol/aztec-packages#3255)) ([b911e65](AztecProtocol/aztec-packages@b911e65)), closes [#2572](AztecProtocol/aztec-packages#2572) [#2584](AztecProtocol/aztec-packages#2584) * New Poseidon2 circuit builder gates ([#3346](AztecProtocol/aztec-packages#3346)) ([91cb369](AztecProtocol/aztec-packages@91cb369)) * New Poseidon2 relations ([#3406](AztecProtocol/aztec-packages#3406)) ([14b9736](AztecProtocol/aztec-packages@14b9736)) * Pull latest noir for brillig optimizations ([#3464](AztecProtocol/aztec-packages#3464)) ([d356bac](AztecProtocol/aztec-packages@d356bac)) * Refactor StandardIndexedTree for abstract leaves and preimages and optimized it ([#3530](AztecProtocol/aztec-packages#3530)) ([63b9cdc](AztecProtocol/aztec-packages@63b9cdc)) * Removing historical roots from circuits ([#3544](AztecProtocol/aztec-packages#3544)) ([9f682cb](AztecProtocol/aztec-packages@9f682cb)) * Seperate pil files for sub machines ([#3454](AztecProtocol/aztec-packages#3454)) ([d09d6f5](AztecProtocol/aztec-packages@d09d6f5)) * Throw compile time error if contract has too many fns ([#3536](AztecProtocol/aztec-packages#3536)) ([ad66ad0](AztecProtocol/aztec-packages@ad66ad0)) * Use tree snapshots in aztec-node/pxe/oracles ([#3504](AztecProtocol/aztec-packages#3504)) ([6e40427](AztecProtocol/aztec-packages@6e40427)) * Yellow paper cross-chain communication ([#3477](AztecProtocol/aztec-packages#3477)) ([d51df8c](AztecProtocol/aztec-packages@d51df8c)) ### Bug Fixes * Check version, chainid and sender for cross-chain l1 to l2 msgs ([#3457](AztecProtocol/aztec-packages#3457)) ([d251703](AztecProtocol/aztec-packages@d251703)) * **ci:** Add DEPLOY_TAG in fork log group ([#3510](AztecProtocol/aztec-packages#3510)) ([f021041](AztecProtocol/aztec-packages@f021041)) * **ci:** Check if l1 contracts img has been deployed ([#3531](AztecProtocol/aztec-packages#3531)) ([ac1f03c](AztecProtocol/aztec-packages@ac1f03c)) * **ci:** Comment out LB listeners (for now) ([#3519](AztecProtocol/aztec-packages#3519)) ([640aabc](AztecProtocol/aztec-packages@640aabc)) * **ci:** Count for bootnode discovery service ([#3517](AztecProtocol/aztec-packages#3517)) ([2a38788](AztecProtocol/aztec-packages@2a38788)) * **ci:** Define REPOSITORY in deploy_l1_contracts ([#3514](AztecProtocol/aztec-packages#3514)) ([b246d1b](AztecProtocol/aztec-packages@b246d1b)) * **ci:** Don't deploy to npm on master merge ([#3502](AztecProtocol/aztec-packages#3502)) ([a138860](AztecProtocol/aztec-packages@a138860)) * **ci:** Env vars for deploying l1-contracts ([#3513](AztecProtocol/aztec-packages#3513)) ([27106b2](AztecProtocol/aztec-packages@27106b2)) * **ci:** Export FORK_API_KEY from setup_env ([#3512](AztecProtocol/aztec-packages#3512)) ([7e81e2c](AztecProtocol/aztec-packages@7e81e2c)) * **ci:** Fix docker architecture for devnet packages ([#3505](AztecProtocol/aztec-packages#3505)) ([66d0287](AztecProtocol/aztec-packages@66d0287)) * **ci:** Fix faucet vars + don't deploy contracts from node ([#3553](AztecProtocol/aztec-packages#3553)) ([c7176f6](AztecProtocol/aztec-packages@c7176f6)) * **ci:** L1 contracts directories ([#3545](AztecProtocol/aztec-packages#3545)) ([63dd0c8](AztecProtocol/aztec-packages@63dd0c8)) * **ci:** Login to ecr to fetch contracts image ([#3538](AztecProtocol/aztec-packages#3538)) ([b033538](AztecProtocol/aztec-packages@b033538)) * **ci:** Remove unused ADDRESS vars & export private key vars ([#3520](AztecProtocol/aztec-packages#3520)) ([d889359](AztecProtocol/aztec-packages@d889359)) * **ci:** Set default value for $TO_TAINT ([#3508](AztecProtocol/aztec-packages#3508)) ([8b6688a](AztecProtocol/aztec-packages@8b6688a)) * **ci:** Terraform listener resources ([#3534](AztecProtocol/aztec-packages#3534)) ([c3b9cce](AztecProtocol/aztec-packages@c3b9cce)) * **ci:** Terraform_deploy for devnet ([#3516](AztecProtocol/aztec-packages#3516)) ([ba3803e](AztecProtocol/aztec-packages@ba3803e)) * **ci:** Tf variable references & formatting([#3522](AztecProtocol/aztec-packages#3522)) ([d37cf52](AztecProtocol/aztec-packages@d37cf52)) * Disable e2e-slow-tree ([#3459](AztecProtocol/aztec-packages#3459)) ([5927103](AztecProtocol/aztec-packages@5927103)) * **docs:** Update package name of aztec-cli ([#3474](AztecProtocol/aztec-packages#3474)) ([98d7ba0](AztecProtocol/aztec-packages@98d7ba0)) * Double slash in deployed faucet routes ([#3555](AztecProtocol/aztec-packages#3555)) ([6c704a5](AztecProtocol/aztec-packages@6c704a5)) * Faucet lb_listener priority ([#3554](AztecProtocol/aztec-packages#3554)) ([3f56dd7](AztecProtocol/aztec-packages@3f56dd7)) * Handling low_nullifier.next_value equal to 0 ([#3562](AztecProtocol/aztec-packages#3562)) ([c800502](AztecProtocol/aztec-packages@c800502)), closes [#3550](AztecProtocol/aztec-packages#3550) * Remove x86_64 form l1-contracts img tag ([#3549](AztecProtocol/aztec-packages#3549)) ([6828f1a](AztecProtocol/aztec-packages@6828f1a)) * Throw error if fn sig has whitespaces ([#3509](AztecProtocol/aztec-packages#3509)) ([7671063](AztecProtocol/aztec-packages@7671063)), closes [#3055](AztecProtocol/aztec-packages#3055) ### Miscellaneous * (yellow paper) public-vm section of yellow paper ([#3493](AztecProtocol/aztec-packages#3493)) ([8ff3780](AztecProtocol/aztec-packages@8ff3780)) * Add mermaid diagram support ([#3499](AztecProtocol/aztec-packages#3499)) ([537d552](AztecProtocol/aztec-packages@537d552)) * Add yellow paper build check to CI ([#3490](AztecProtocol/aztec-packages#3490)) ([3ebd2f2](AztecProtocol/aztec-packages@3ebd2f2)) * **avm:** Enable AVM unit tests in CI ([#3463](AztecProtocol/aztec-packages#3463)) ([051dda9](AztecProtocol/aztec-packages@051dda9)), closes [#3461](AztecProtocol/aztec-packages#3461) * **bb:** Pointer_view to reference-based get_all ([#3495](AztecProtocol/aztec-packages#3495)) ([50d7327](AztecProtocol/aztec-packages@50d7327)) * **bb:** Reuse entities from GoblinUltra in GoblinUltraRecursive ([#3521](AztecProtocol/aztec-packages#3521)) ([8259636](AztecProtocol/aztec-packages@8259636)) * Build the acir test vectors as part of CI. ([#3447](AztecProtocol/aztec-packages#3447)) ([1a2d1f8](AztecProtocol/aztec-packages@1a2d1f8)) * Containers reduced to ~100MB total. ~30s installation. ([#3487](AztecProtocol/aztec-packages#3487)) ([b49cef2](AztecProtocol/aztec-packages@b49cef2)) * **docs:** Fix broken Noir stdlib link ([#3496](AztecProtocol/aztec-packages#3496)) ([787d59a](AztecProtocol/aztec-packages@787d59a)) * Field-agnostic and reusable transcript ([#3433](AztecProtocol/aztec-packages#3433)) ([d78775a](AztecProtocol/aztec-packages@d78775a)) * Fix broken link in txs in yellow paper ([#3484](AztecProtocol/aztec-packages#3484)) ([798565d](AztecProtocol/aztec-packages@798565d)) * Fix yellow paper build error ([32881a4](AztecProtocol/aztec-packages@32881a4)) * Fixed typo in build system ([#3501](AztecProtocol/aztec-packages#3501)) ([3a80ac2](AztecProtocol/aztec-packages@3a80ac2)) * Increase functions per contract from 16 to 32 ([#3503](AztecProtocol/aztec-packages#3503)) ([ebdeea3](AztecProtocol/aztec-packages@ebdeea3)) * Naming fixes ([#3476](AztecProtocol/aztec-packages#3476)) ([1db30bf](AztecProtocol/aztec-packages@1db30bf)) * Optimise bb.js package size and sandox/cli dockerfiles to unbloat final containers. ([#3462](AztecProtocol/aztec-packages#3462)) ([cb3db5d](AztecProtocol/aztec-packages@cb3db5d)) * Pin node version in docker base images and bump nvmrc ([#3537](AztecProtocol/aztec-packages#3537)) ([5d3895a](AztecProtocol/aztec-packages@5d3895a)) * Recursive verifier updates ([#3452](AztecProtocol/aztec-packages#3452)) ([dbb4a12](AztecProtocol/aztec-packages@dbb4a12)) * Refactor `WitnessEntities` to be able to derive `WitnessCommitments` from it ([#3479](AztecProtocol/aztec-packages#3479)) ([9c9b561](AztecProtocol/aztec-packages@9c9b561)) * Remove temporary logging ([#3466](AztecProtocol/aztec-packages#3466)) ([8c8387b](AztecProtocol/aztec-packages@8c8387b)) * Transcript handled through shared_ptr ([#3434](AztecProtocol/aztec-packages#3434)) ([30fca33](AztecProtocol/aztec-packages@30fca33)) * Typo fixes ([#3488](AztecProtocol/aztec-packages#3488)) ([d9a44dc](AztecProtocol/aztec-packages@d9a44dc)) * **yellow_paper:** Public<>private messaging ([#3491](AztecProtocol/aztec-packages#3491)) ([6ecc406](AztecProtocol/aztec-packages@6ecc406)) ### Documentation * Add transaction section to yellow paper ([#3418](AztecProtocol/aztec-packages#3418)) ([44bf30b](AztecProtocol/aztec-packages@44bf30b)) * Apply comments from Jan on contracts ([#3539](AztecProtocol/aztec-packages#3539)) ([e351873](AztecProtocol/aztec-packages@e351873)) * Fees update in yellow paper ([#3486](AztecProtocol/aztec-packages#3486)) ([a8b2608](AztecProtocol/aztec-packages@a8b2608)) * First go at generated AVM instruction set doc ([#3469](AztecProtocol/aztec-packages#3469)) ([8cc54a4](AztecProtocol/aztec-packages@8cc54a4)) * Further update to the yellow paper ([#3542](AztecProtocol/aztec-packages#3542)) ([751bb6a](AztecProtocol/aztec-packages@751bb6a)) * Yellow paper updates ([#3478](AztecProtocol/aztec-packages#3478)) ([11f754d](AztecProtocol/aztec-packages@11f754d)) * Yellow paper updates for private message delivery ([#3472](AztecProtocol/aztec-packages#3472)) ([6ba9e18](AztecProtocol/aztec-packages@6ba9e18)) * **yellow-paper:** Sync, enqueued, and static calls ([#3494](AztecProtocol/aztec-packages#3494)) ([00835c6](AztecProtocol/aztec-packages@00835c6)), closes [#3108](AztecProtocol/aztec-packages#3108) * **yellowpaper:** Instruction set updates and fixes ([#3515](AztecProtocol/aztec-packages#3515)) ([bfb61dd](AztecProtocol/aztec-packages@bfb61dd)) </details> <details><summary>barretenberg.js: 0.16.2</summary> ## [0.16.2](AztecProtocol/aztec-packages@barretenberg.js-v0.16.1...barretenberg.js-v0.16.2) (2023-12-05) ### Miscellaneous * Optimise bb.js package size and sandox/cli dockerfiles to unbloat final containers. ([#3462](AztecProtocol/aztec-packages#3462)) ([cb3db5d](AztecProtocol/aztec-packages@cb3db5d)) * Pin node version in docker base images and bump nvmrc ([#3537](AztecProtocol/aztec-packages#3537)) ([5d3895a](AztecProtocol/aztec-packages@5d3895a)) </details> <details><summary>barretenberg: 0.16.2</summary> ## [0.16.2](AztecProtocol/aztec-packages@barretenberg-v0.16.1...barretenberg-v0.16.2) (2023-12-05) ### Features * **AVM:** First version for mini AVM (ADD, RETURN, CALLDATACOPY) ([#3439](AztecProtocol/aztec-packages#3439)) ([b3af146](AztecProtocol/aztec-packages@b3af146)) * Flavor refactor, reduce duplication ([#3407](AztecProtocol/aztec-packages#3407)) ([8d6b013](AztecProtocol/aztec-packages@8d6b013)) * New Poseidon2 circuit builder gates ([#3346](AztecProtocol/aztec-packages#3346)) ([91cb369](AztecProtocol/aztec-packages@91cb369)) * New Poseidon2 relations ([#3406](AztecProtocol/aztec-packages#3406)) ([14b9736](AztecProtocol/aztec-packages@14b9736)) * Pull latest noir for brillig optimizations ([#3464](AztecProtocol/aztec-packages#3464)) ([d356bac](AztecProtocol/aztec-packages@d356bac)) * Seperate pil files for sub machines ([#3454](AztecProtocol/aztec-packages#3454)) ([d09d6f5](AztecProtocol/aztec-packages@d09d6f5)) ### Miscellaneous * **avm:** Enable AVM unit tests in CI ([#3463](AztecProtocol/aztec-packages#3463)) ([051dda9](AztecProtocol/aztec-packages@051dda9)), closes [#3461](AztecProtocol/aztec-packages#3461) * **bb:** Pointer_view to reference-based get_all ([#3495](AztecProtocol/aztec-packages#3495)) ([50d7327](AztecProtocol/aztec-packages@50d7327)) * **bb:** Reuse entities from GoblinUltra in GoblinUltraRecursive ([#3521](AztecProtocol/aztec-packages#3521)) ([8259636](AztecProtocol/aztec-packages@8259636)) * Build the acir test vectors as part of CI. ([#3447](AztecProtocol/aztec-packages#3447)) ([1a2d1f8](AztecProtocol/aztec-packages@1a2d1f8)) * Field-agnostic and reusable transcript ([#3433](AztecProtocol/aztec-packages#3433)) ([d78775a](AztecProtocol/aztec-packages@d78775a)) * Optimise bb.js package size and sandox/cli dockerfiles to unbloat final containers. ([#3462](AztecProtocol/aztec-packages#3462)) ([cb3db5d](AztecProtocol/aztec-packages@cb3db5d)) * Pin node version in docker base images and bump nvmrc ([#3537](AztecProtocol/aztec-packages#3537)) ([5d3895a](AztecProtocol/aztec-packages@5d3895a)) * Recursive verifier updates ([#3452](AztecProtocol/aztec-packages#3452)) ([dbb4a12](AztecProtocol/aztec-packages@dbb4a12)) * Refactor `WitnessEntities` to be able to derive `WitnessCommitments` from it ([#3479](AztecProtocol/aztec-packages#3479)) ([9c9b561](AztecProtocol/aztec-packages@9c9b561)) * Transcript handled through shared_ptr ([#3434](AztecProtocol/aztec-packages#3434)) ([30fca33](AztecProtocol/aztec-packages@30fca33)) * Typo fixes ([#3488](AztecProtocol/aztec-packages#3488)) ([d9a44dc](AztecProtocol/aztec-packages@d9a44dc)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Fixes #3471
HistoricBlockData
->BlockHeader
Historic Blocks Tree
->Blocks Tree
perform_blocks_tree_membership_checks
in this commit as it was confusing.Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.