-
Notifications
You must be signed in to change notification settings - Fork 308
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!: public logs #11091
feat!: public logs #11091
Conversation
…ate consts/fixtures
* Computes the siloed tag. | ||
* @dev We do this second layer of siloing (one was already done as the tagging secret is app-siloed) because kernels | ||
* do that to protect against contract impersonation attacks. This extra layer of siloing in kernels ensures that | ||
* a malicious contract cannot emit a note with a tag corresponding to another contract. | ||
* TODO(#10273/#11124): noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr implies we still need to silo | ||
* even though the log containing this tag is siloed, the above dev msg no longer applies with public logs. | ||
* @param recipient The recipient of the note | ||
* @param app The app address | ||
* @returns The tag as it is submitted on-chain in a log. | ||
* @returns The siloed tag. | ||
*/ | ||
computeSiloedTag(recipient: AztecAddress, app: AztecAddress) { | ||
const tag = this.computeTag(recipient); |
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'm unsure whether we still need to silo the tag itself. The comment here and in payload.nr
kind of implies we do ('extra layer of siloing...') so I have left it in.
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.
As far as I know nothing changed about this so we should keep it.
export function mapPrivateToRollupAccumulatedDataToNoir( | ||
privateToRollupAccumulatedData: PrivateToRollupAccumulatedData, | ||
): PrivateToRollupAccumulatedDataNoir { | ||
return { | ||
note_hashes: mapTuple(privateToRollupAccumulatedData.noteHashes, mapFieldToNoir), | ||
nullifiers: mapTuple(privateToRollupAccumulatedData.nullifiers, mapFieldToNoir), | ||
l2_to_l1_msgs: mapTuple(privateToRollupAccumulatedData.l2ToL1Msgs, mapScopedL2ToL1MessageToNoir), | ||
private_logs: mapTuple(privateToRollupAccumulatedData.privateLogs, mapPrivateLogToNoir), | ||
contract_class_logs_hashes: mapTuple( | ||
privateToRollupAccumulatedData.contractClassLogsHashes, | ||
mapScopedLogHashToNoir, | ||
), | ||
contract_class_log_preimages_length: mapFieldToNoir(privateToRollupAccumulatedData.contractClassLogPreimagesLength), | ||
}; | ||
} | ||
|
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 moved this to common
- I didn't think it made sense to have mapPrivateToRollupAccumulatedDataToNoir
and mapPrivateToRollupAccumulatedDataFromNoir
in different files
Changes to public function bytecode sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
Changes to circuit sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
yarn-project/archiver/src/archiver/kv_archiver_store/log_store.ts
Outdated
Show resolved
Hide resolved
yarn-project/archiver/src/archiver/kv_archiver_store/log_store.ts
Outdated
Show resolved
Hide resolved
@@ -151,8 +150,6 @@ export function makeProcessedTxFromTxWithPublicCalls( | |||
...(revertCode.isOK() ? tx.data.forPublic!.revertibleAccumulatedData.privateLogs : []), | |||
].filter(l => !l.isEmpty()); | |||
|
|||
// Unencrypted logs emitted from public functions are inserted to tx.unencryptedLogs directly :( |
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.
So happy to see it's finally gone!
for i in 0..encrypted.len() { | ||
log_bytes[i + 32] = encrypted[i]; | ||
} | ||
// TODO(#10273/#11124) This should be done by the AVM when it's processing the raw logs instead of their hashes. |
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 comment was added by me. But looking at the whole thing again, I don't think the AVM should do the siloing. It only needs to ensure the contract address is correct.
We could still silo the tag here. But we need to double check a log's contract address. We can add contract address to TxScopedL2Log
and check it if isFromPublic
is true.
Or we skip the siloing, and call getLogsByTags
twice, once with the siloed tag for private logs, once with the raw tag for public logs.
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.
Sounds good, I will remove this comment. It's probably cleaner to keep siloing the tag to keep the same 'rule' for private and public logs. In this case, I'll check the contract address in the pxe when we syncTaggedLogs*
(since we already provide the address there) unless somewhere else is better?
Marking as breaking as the PXE interface changes on getPublicLogs - i think this will impact block explorers We should probably add migration notes too |
const tag = new Fr(correctedBuffer); | ||
this.#log.verbose(`Storing unencrypted tagged log with tag ${tag.toString()} in block ${block.number}`); | ||
// The first elt stores lengths => tag is in fields[1] | ||
const tag = log.log[1]; |
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 should be the same as log_store
.
for (let i = 0; i < processedLog.length; i++) { | ||
processedLog[i] = unprocessedLog[31 + i * 32]; | ||
} | ||
const publicValues = log.log.slice(privateValuesLength + 1, privateValuesLength + 1 + publicValuesLength); |
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.
The total length of a tagged log is not checked in log_store. So even when the first field has the correct format, it might not be a partial log and the private/public values here will not have the expected length.
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.
Done - though I can only check overflow rather than underflow since zeros might be emitted. I also removed the check on the existence of log.log[1]
because I realised it will always exist in a PublicLog
!
@@ -907,32 +908,30 @@ export class PXEService implements PXE { | |||
|
|||
async getUnencryptedEvents<T>(eventMetadataDef: EventMetadataDefinition, from: number, limit: number): Promise<T[]> { |
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.
Can you also change this one to getPublicEvents
, and getEncryptedEvents
to getPrivateEvents
in 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.
And remember to add the changes to migration notes. Thanks!
docs/docs/migration_notes.md
Outdated
@@ -6,7 +6,24 @@ keywords: [sandbox, aztec, notes, migration, updating, upgrading] | |||
|
|||
Aztec is in full-speed development. Literally every version breaks compatibility with the previous ones. This page attempts to target errors and difficulties you might encounter when upgrading, and how to resolve them. | |||
|
|||
## TBD | |||
## 0.71.0 |
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.
Can you also add the changes for getPublicEvents
and getPrivateEvents
here?
This turned out much smaller than I thought it would be... Renames the context method `emit_unencrypted` to `emit_public`. I didn't touch AVM to avoid giving the team a bunch of awful conflicts. But I'm happy to blitz through and rename all `unencrypted`s to `public`s in the AVM whenever! Continues #11091 for #9589
This turned out much smaller than I thought it would be... Renames the context method `emit_unencrypted` to `emit_public`. I didn't touch AVM to avoid giving the team a bunch of awful conflicts. But I'm happy to blitz through and rename all `unencrypted`s to `public`s in the AVM whenever! Continues #11091 for #9589
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.72.0</summary> ## [0.72.0](aztec-package-v0.71.0...aztec-package-v0.72.0) (2025-01-24) ### Features * Gaztec ([#11229](#11229)) ([79f810d](79f810d)) * Lazy wasm pt. 2 ([#11410](#11410)) ([01510f4](01510f4)) * Lazy wasm pt3 ([#11435](#11435)) ([7068d05](7068d05)) ### Bug Fixes * Init fee juice contract in sandbox ([#11379](#11379)) ([caab526](caab526)) * Use simulation to estimate gas used ([#11211](#11211)) ([63776f0](63776f0)) ### Miscellaneous * Trace propagation from json rpc client to server ([#11325](#11325)) ([85ccc15](85ccc15)) </details> <details><summary>barretenberg.js: 0.72.0</summary> ## [0.72.0](barretenberg.js-v0.71.0...barretenberg.js-v0.72.0) (2025-01-24) ### Features * Gaztec ([#11229](#11229)) ([79f810d](79f810d)) * Lazy wasm pt.1 ([#11371](#11371)) ([864bc6f](864bc6f)) * Lazy wasm pt3 ([#11435](#11435)) ([7068d05](7068d05)) * UH recursion in the browser ([#11049](#11049)) ([c3c04a4](c3c04a4)) ### Bug Fixes * Lint ([#11389](#11389)) ([87b0dee](87b0dee)) </details> <details><summary>aztec-packages: 0.72.0</summary> ## [0.72.0](aztec-packages-v0.71.0...aztec-packages-v0.72.0) (2025-01-24) ### ⚠ BREAKING CHANGES * **aztec.js:** remove field from aztec address like ([#11350](#11350)) * public logs ([#11091](#11091)) ### Features * **avm:** Address and class id derivation setup ([#11354](#11354)) ([5f3cffc](5f3cffc)) * **avm:** Bytecode manager changes ([#11347](#11347)) ([4a9c072](4a9c072)) * **avm:** Include initial tree roots in DB ([#11360](#11360)) ([4d149be](4d149be)) * **avm:** Interactive debugger ([#11477](#11477)) ([53e57d3](53e57d3)) * Consensus layer in spartan ([#11105](#11105)) ([55dd03c](55dd03c)) * Eccvm sumcheck with commitments to round univariates ([#11206](#11206)) ([fe34b05](fe34b05)) * Gaztec ([#11229](#11229)) ([79f810d](79f810d)) * Lazy wasm pt. 2 ([#11410](#11410)) ([01510f4](01510f4)) * Lazy wasm pt.1 ([#11371](#11371)) ([864bc6f](864bc6f)) * Lazy wasm pt3 ([#11435](#11435)) ([7068d05](7068d05)) * **p2p:** Batch request response ([#11331](#11331)) ([13b379d](13b379d)) * **p2p:** Request response node sampling ([#11330](#11330)) ([6426d90](6426d90)) * **p2p:** Send goodbye messages on disconnecting to peers ([#10920](#10920)) ([046968f](046968f)) * **p2p:** Validator use batch requests ([#11332](#11332)) ([29f7ce4](29f7ce4)) * Packable trait + using it for public storage ([#11136](#11136)) ([e74ce15](e74ce15)) * Public logs ([#11091](#11091)) ([f4725d2](f4725d2)) * Re-exposing `compute_initialization_hash` ([#11423](#11423)) ([1ad2b70](1ad2b70)) * **reqresp:** Request l2 blocks ([#11337](#11337)) ([73a6698](73a6698)) * **spartan:** Extra acounts with cl config ([#11301](#11301)) ([13fed74](13fed74)) * UH recursion in the browser ([#11049](#11049)) ([c3c04a4](c3c04a4)) ### Bug Fixes * **aztec.js:** Remove field from aztec address like ([#11350](#11350)) ([26093f7](26093f7)) * **bootstrap:** Include crates in noir projects hashes ([#11344](#11344)) ([1075113](1075113)) * **bootstrap:** Include crates in noir projects hashes take 2 ([#11351](#11351)) ([1f36a04](1f36a04)) * Clarify sepolia GA secrets ([#11424](#11424)) ([cf3c911](cf3c911)) * **docs:** Downgrade docusaurus to v 3.6 ([#11386](#11386)) ([1e5d225](1e5d225)) * Don't publish a block if we failed to create the block proposal ([#11475](#11475)) ([f589c90](f589c90)) * Flakey e2e_pruned_blocks test ([#11431](#11431)) ([887b8ff](887b8ff)) * Hackily fix the public input columns of avm recursion constraint ([#11428](#11428)) ([436c3c6](436c3c6)) * Hardcode value in constants ([#11442](#11442)) ([dd0684a](dd0684a)) * Init fee juice contract in sandbox ([#11379](#11379)) ([caab526](caab526)) * Lint ([#11389](#11389)) ([87b0dee](87b0dee)) * Mnemonic needs quotes ([#11429](#11429)) ([de8dad4](de8dad4)) * Move eslint in circuits.js to dev deps ([#11340](#11340)) ([079a2c4](079a2c4)) * Network deployments ([#11463](#11463)) ([0804913](0804913)) * Pad base fee in aztec.js ([#11370](#11370)) ([d0e9a55](d0e9a55)) * Prevent PXE from making historical queries during note discovery ([#11406](#11406)) ([23000d4](23000d4)) * Publish aztec packages ([#11434](#11434)) ([d9bfd51](d9bfd51)) * Re-stage the git hook formatted files - doh ([#11430](#11430)) ([02e6529](02e6529)) * **readme:** Remove stale link ([#11333](#11333)) ([bfcd8a5](bfcd8a5)) * Spartan accounts ([#11321](#11321)) ([fa9c9ce](fa9c9ce)) * **spartan:** Beacon node networking policy ([#11484](#11484)) ([d5b9892](d5b9892)) * Stale selector comments ([#11311](#11311)) ([629bd64](629bd64)) * Txe partial note support ([#11414](#11414)) ([cd9cad9](cd9cad9)) * Update devbox ([#11339](#11339)) ([aca84ff](aca84ff)) * Use simulation to estimate gas used ([#11211](#11211)) ([63776f0](63776f0)) * Verify start state of a block ([#11290](#11290)) ([5eb3e8f](5eb3e8f)) * Version undefined does not exist for tree NULLIFIER_TREE ([#11421](#11421)) ([b1cb502](b1cb502)) ### Miscellaneous * Add a couple of comments in the AVM range check gadget ([#11402](#11402)) ([f1fd2d1](f1fd2d1)) * Add OTEL_EXCLUDE_METRICS ([#11317](#11317)) ([37d4fa8](37d4fa8)) * **avm:** Do not use commit_sparse ([#11447](#11447)) ([9796e1e](9796e1e)) * **avm:** Remove some codegen bloat ([#11418](#11418)) ([6b0106c](6b0106c)) * **bootstrap:** Refine noir contracts rebuild pattern ([#11367](#11367)) ([90f5e8f](90f5e8f)) * Bump CRS and constants ([#11306](#11306)) ([9e5ea3a](9e5ea3a)) * **ci:** Set correct image version in aztec image docker releases ([#11334](#11334)) ([197db95](197db95)) * Dont install and run metrics stack on kind network smoke ([#11366](#11366)) ([f66db63](f66db63)) * Exclude system metrics from k8s deployments ([#11401](#11401)) ([31be5fb](31be5fb)) * Exp 2 with 128 validators ([#11483](#11483)) ([206ca8d](206ca8d)) * Fix devnet deploy ([#11387](#11387)) ([71d8ede](71d8ede)) * Fixed VK in MegaZK/ECCVM/Translator/Tube Recursive Verifier circuits ([#11377](#11377)) ([5018c94](5018c94)) * Improving clarity of serialization in macros ([#11460](#11460)) ([7790973](7790973)) * Increase initial fee juice mint ([#11369](#11369)) ([bca7052](bca7052)) * Minor Gemini refactor to prep for opening k-shifts ([#11393](#11393)) ([30a063a](30a063a)) * More granular error handling for toradixBE ([#11378](#11378)) ([64f4052](64f4052)), closes [#11295](#11295) * Nargo fmt pre-commit hook ([#11416](#11416)) ([6f2e2e0](6f2e2e0)) * Nuking redundant oracle ([#11368](#11368)) ([b32d9a1](b32d9a1)) * **p2p:** Disable flakey test ([#11380](#11380)) ([94012b5](94012b5)) * **p2p:** Reorganise reqresp handlers ([#11327](#11327)) ([f048acd](f048acd)) * Point to monorepo's nargo in vscode workspace settings ([#11349](#11349)) ([bb96e7c](bb96e7c)) * Print warning in builder when failure happens. ([#11205](#11205)) ([5a52e95](5a52e95)) * Public network with sepolia ([#11488](#11488)) ([80f5a46](80f5a46)) * Rc-2 release on Sepolia ([#11479](#11479)) ([bef7b0f](bef7b0f)) * Redo typo PR by Daulox92 ([#11458](#11458)) ([f3ba327](f3ba327)) * Redo typo PR by Dimitrolito ([#11413](#11413)) ([d4b7075](d4b7075)) * Redo typo PR by nnsW3 ([#11322](#11322)) ([de64823](de64823)) * Redo typo PR by offensif ([#11411](#11411)) ([a756578](a756578)) * Redo typo PR by savvar9991 ([#11412](#11412)) ([53ea3af](53ea3af)) * Redo typo PR by teenager-ETH ([#11320](#11320)) ([77854e2](77854e2)) * Redo typo PR by teenager-ETH ([#11450](#11450)) ([dd46152](dd46152)) * Reenable reqresp offline peers test ([#11384](#11384)) ([931dfa6](931dfa6)) * Renaming emit unencrypted -> emit public ([#11361](#11361)) ([c047a12](c047a12)) * Replace relative paths to noir-protocol-circuits ([6f644cd](6f644cd)) * Replace relative paths to noir-protocol-circuits ([fe24778](fe24778)) * Replace relative paths to noir-protocol-circuits ([fcdb409](fcdb409)) * Replace relative paths to noir-protocol-circuits ([ea43aed](ea43aed)) * Replace relative paths to noir-protocol-circuits ([7653c69](7653c69)) * Replace relative paths to noir-protocol-circuits ([204476e](204476e)) * Serialize trait impls for U128 following intrinsic Noir serialization ([#11142](#11142)) ([c5671d2](c5671d2)) * Slower exp2 ([#11487](#11487)) ([e995c0f](e995c0f)) * **sol:** Generate & compile verifier contract in bootstrap ([#11364](#11364)) ([bf3b12a](bf3b12a)) * **spartan:** Apply release fixes post cl ([#11385](#11385)) ([2bbf562](2bbf562)) * Stricter contributing rules ([#11462](#11462)) ([2535425](2535425)) * Temporarily disable boxes ([#11472](#11472)) ([f6c63fe](f6c63fe)) * Test starting multiple anvils allocates distinct ports ([#11314](#11314)) ([e385ea9](e385ea9)) * Trace propagation from json rpc client to server ([#11325](#11325)) ([85ccc15](85ccc15)) * Try fix e2e block building flake ([#11359](#11359)) ([38fbd5c](38fbd5c)) * Try fix flakey public processor test ([#11348](#11348)) ([8de55d4](8de55d4)) * Updated ethereum resource config ([#11485](#11485)) ([8788561](8788561)) </details> <details><summary>barretenberg: 0.72.0</summary> ## [0.72.0](barretenberg-v0.71.0...barretenberg-v0.72.0) (2025-01-24) ### ⚠ BREAKING CHANGES * public logs ([#11091](#11091)) ### Features * **avm:** Address and class id derivation setup ([#11354](#11354)) ([5f3cffc](5f3cffc)) * **avm:** Bytecode manager changes ([#11347](#11347)) ([4a9c072](4a9c072)) * **avm:** Include initial tree roots in DB ([#11360](#11360)) ([4d149be](4d149be)) * **avm:** Interactive debugger ([#11477](#11477)) ([53e57d3](53e57d3)) * Eccvm sumcheck with commitments to round univariates ([#11206](#11206)) ([fe34b05](fe34b05)) * Lazy wasm pt. 2 ([#11410](#11410)) ([01510f4](01510f4)) * Public logs ([#11091](#11091)) ([f4725d2](f4725d2)) * UH recursion in the browser ([#11049](#11049)) ([c3c04a4](c3c04a4)) ### Bug Fixes * Hackily fix the public input columns of avm recursion constraint ([#11428](#11428)) ([436c3c6](436c3c6)) * Verify start state of a block ([#11290](#11290)) ([5eb3e8f](5eb3e8f)) ### Miscellaneous * Add a couple of comments in the AVM range check gadget ([#11402](#11402)) ([f1fd2d1](f1fd2d1)) * **avm:** Do not use commit_sparse ([#11447](#11447)) ([9796e1e](9796e1e)) * **avm:** Remove some codegen bloat ([#11418](#11418)) ([6b0106c](6b0106c)) * Bump CRS and constants ([#11306](#11306)) ([9e5ea3a](9e5ea3a)) * Fixed VK in MegaZK/ECCVM/Translator/Tube Recursive Verifier circuits ([#11377](#11377)) ([5018c94](5018c94)) * Minor Gemini refactor to prep for opening k-shifts ([#11393](#11393)) ([30a063a](30a063a)) * More granular error handling for toradixBE ([#11378](#11378)) ([64f4052](64f4052)), closes [#11295](#11295) * Print warning in builder when failure happens. ([#11205](#11205)) ([5a52e95](5a52e95)) * Redo typo PR by Daulox92 ([#11458](#11458)) ([f3ba327](f3ba327)) * Redo typo PR by teenager-ETH ([#11320](#11320)) ([77854e2](77854e2)) * **sol:** Generate & compile verifier contract in bootstrap ([#11364](#11364)) ([bf3b12a](bf3b12a)) </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-package: 0.72.0</summary> ## [0.72.0](AztecProtocol/aztec-packages@aztec-package-v0.71.0...aztec-package-v0.72.0) (2025-01-24) ### Features * Gaztec ([#11229](AztecProtocol/aztec-packages#11229)) ([79f810d](AztecProtocol/aztec-packages@79f810d)) * Lazy wasm pt. 2 ([#11410](AztecProtocol/aztec-packages#11410)) ([01510f4](AztecProtocol/aztec-packages@01510f4)) * Lazy wasm pt3 ([#11435](AztecProtocol/aztec-packages#11435)) ([7068d05](AztecProtocol/aztec-packages@7068d05)) ### Bug Fixes * Init fee juice contract in sandbox ([#11379](AztecProtocol/aztec-packages#11379)) ([caab526](AztecProtocol/aztec-packages@caab526)) * Use simulation to estimate gas used ([#11211](AztecProtocol/aztec-packages#11211)) ([63776f0](AztecProtocol/aztec-packages@63776f0)) ### Miscellaneous * Trace propagation from json rpc client to server ([#11325](AztecProtocol/aztec-packages#11325)) ([85ccc15](AztecProtocol/aztec-packages@85ccc15)) </details> <details><summary>barretenberg.js: 0.72.0</summary> ## [0.72.0](AztecProtocol/aztec-packages@barretenberg.js-v0.71.0...barretenberg.js-v0.72.0) (2025-01-24) ### Features * Gaztec ([#11229](AztecProtocol/aztec-packages#11229)) ([79f810d](AztecProtocol/aztec-packages@79f810d)) * Lazy wasm pt.1 ([#11371](AztecProtocol/aztec-packages#11371)) ([864bc6f](AztecProtocol/aztec-packages@864bc6f)) * Lazy wasm pt3 ([#11435](AztecProtocol/aztec-packages#11435)) ([7068d05](AztecProtocol/aztec-packages@7068d05)) * UH recursion in the browser ([#11049](AztecProtocol/aztec-packages#11049)) ([c3c04a4](AztecProtocol/aztec-packages@c3c04a4)) ### Bug Fixes * Lint ([#11389](AztecProtocol/aztec-packages#11389)) ([87b0dee](AztecProtocol/aztec-packages@87b0dee)) </details> <details><summary>aztec-packages: 0.72.0</summary> ## [0.72.0](AztecProtocol/aztec-packages@aztec-packages-v0.71.0...aztec-packages-v0.72.0) (2025-01-24) ### ⚠ BREAKING CHANGES * **aztec.js:** remove field from aztec address like ([#11350](AztecProtocol/aztec-packages#11350)) * public logs ([#11091](AztecProtocol/aztec-packages#11091)) ### Features * **avm:** Address and class id derivation setup ([#11354](AztecProtocol/aztec-packages#11354)) ([5f3cffc](AztecProtocol/aztec-packages@5f3cffc)) * **avm:** Bytecode manager changes ([#11347](AztecProtocol/aztec-packages#11347)) ([4a9c072](AztecProtocol/aztec-packages@4a9c072)) * **avm:** Include initial tree roots in DB ([#11360](AztecProtocol/aztec-packages#11360)) ([4d149be](AztecProtocol/aztec-packages@4d149be)) * **avm:** Interactive debugger ([#11477](AztecProtocol/aztec-packages#11477)) ([53e57d3](AztecProtocol/aztec-packages@53e57d3)) * Consensus layer in spartan ([#11105](AztecProtocol/aztec-packages#11105)) ([55dd03c](AztecProtocol/aztec-packages@55dd03c)) * Eccvm sumcheck with commitments to round univariates ([#11206](AztecProtocol/aztec-packages#11206)) ([fe34b05](AztecProtocol/aztec-packages@fe34b05)) * Gaztec ([#11229](AztecProtocol/aztec-packages#11229)) ([79f810d](AztecProtocol/aztec-packages@79f810d)) * Lazy wasm pt. 2 ([#11410](AztecProtocol/aztec-packages#11410)) ([01510f4](AztecProtocol/aztec-packages@01510f4)) * Lazy wasm pt.1 ([#11371](AztecProtocol/aztec-packages#11371)) ([864bc6f](AztecProtocol/aztec-packages@864bc6f)) * Lazy wasm pt3 ([#11435](AztecProtocol/aztec-packages#11435)) ([7068d05](AztecProtocol/aztec-packages@7068d05)) * **p2p:** Batch request response ([#11331](AztecProtocol/aztec-packages#11331)) ([13b379d](AztecProtocol/aztec-packages@13b379d)) * **p2p:** Request response node sampling ([#11330](AztecProtocol/aztec-packages#11330)) ([6426d90](AztecProtocol/aztec-packages@6426d90)) * **p2p:** Send goodbye messages on disconnecting to peers ([#10920](AztecProtocol/aztec-packages#10920)) ([046968f](AztecProtocol/aztec-packages@046968f)) * **p2p:** Validator use batch requests ([#11332](AztecProtocol/aztec-packages#11332)) ([29f7ce4](AztecProtocol/aztec-packages@29f7ce4)) * Packable trait + using it for public storage ([#11136](AztecProtocol/aztec-packages#11136)) ([e74ce15](AztecProtocol/aztec-packages@e74ce15)) * Public logs ([#11091](AztecProtocol/aztec-packages#11091)) ([f4725d2](AztecProtocol/aztec-packages@f4725d2)) * Re-exposing `compute_initialization_hash` ([#11423](AztecProtocol/aztec-packages#11423)) ([1ad2b70](AztecProtocol/aztec-packages@1ad2b70)) * **reqresp:** Request l2 blocks ([#11337](AztecProtocol/aztec-packages#11337)) ([73a6698](AztecProtocol/aztec-packages@73a6698)) * **spartan:** Extra acounts with cl config ([#11301](AztecProtocol/aztec-packages#11301)) ([13fed74](AztecProtocol/aztec-packages@13fed74)) * UH recursion in the browser ([#11049](AztecProtocol/aztec-packages#11049)) ([c3c04a4](AztecProtocol/aztec-packages@c3c04a4)) ### Bug Fixes * **aztec.js:** Remove field from aztec address like ([#11350](AztecProtocol/aztec-packages#11350)) ([26093f7](AztecProtocol/aztec-packages@26093f7)) * **bootstrap:** Include crates in noir projects hashes ([#11344](AztecProtocol/aztec-packages#11344)) ([1075113](AztecProtocol/aztec-packages@1075113)) * **bootstrap:** Include crates in noir projects hashes take 2 ([#11351](AztecProtocol/aztec-packages#11351)) ([1f36a04](AztecProtocol/aztec-packages@1f36a04)) * Clarify sepolia GA secrets ([#11424](AztecProtocol/aztec-packages#11424)) ([cf3c911](AztecProtocol/aztec-packages@cf3c911)) * **docs:** Downgrade docusaurus to v 3.6 ([#11386](AztecProtocol/aztec-packages#11386)) ([1e5d225](AztecProtocol/aztec-packages@1e5d225)) * Don't publish a block if we failed to create the block proposal ([#11475](AztecProtocol/aztec-packages#11475)) ([f589c90](AztecProtocol/aztec-packages@f589c90)) * Flakey e2e_pruned_blocks test ([#11431](AztecProtocol/aztec-packages#11431)) ([887b8ff](AztecProtocol/aztec-packages@887b8ff)) * Hackily fix the public input columns of avm recursion constraint ([#11428](AztecProtocol/aztec-packages#11428)) ([436c3c6](AztecProtocol/aztec-packages@436c3c6)) * Hardcode value in constants ([#11442](AztecProtocol/aztec-packages#11442)) ([dd0684a](AztecProtocol/aztec-packages@dd0684a)) * Init fee juice contract in sandbox ([#11379](AztecProtocol/aztec-packages#11379)) ([caab526](AztecProtocol/aztec-packages@caab526)) * Lint ([#11389](AztecProtocol/aztec-packages#11389)) ([87b0dee](AztecProtocol/aztec-packages@87b0dee)) * Mnemonic needs quotes ([#11429](AztecProtocol/aztec-packages#11429)) ([de8dad4](AztecProtocol/aztec-packages@de8dad4)) * Move eslint in circuits.js to dev deps ([#11340](AztecProtocol/aztec-packages#11340)) ([079a2c4](AztecProtocol/aztec-packages@079a2c4)) * Network deployments ([#11463](AztecProtocol/aztec-packages#11463)) ([0804913](AztecProtocol/aztec-packages@0804913)) * Pad base fee in aztec.js ([#11370](AztecProtocol/aztec-packages#11370)) ([d0e9a55](AztecProtocol/aztec-packages@d0e9a55)) * Prevent PXE from making historical queries during note discovery ([#11406](AztecProtocol/aztec-packages#11406)) ([23000d4](AztecProtocol/aztec-packages@23000d4)) * Publish aztec packages ([#11434](AztecProtocol/aztec-packages#11434)) ([d9bfd51](AztecProtocol/aztec-packages@d9bfd51)) * Re-stage the git hook formatted files - doh ([#11430](AztecProtocol/aztec-packages#11430)) ([02e6529](AztecProtocol/aztec-packages@02e6529)) * **readme:** Remove stale link ([#11333](AztecProtocol/aztec-packages#11333)) ([bfcd8a5](AztecProtocol/aztec-packages@bfcd8a5)) * Spartan accounts ([#11321](AztecProtocol/aztec-packages#11321)) ([fa9c9ce](AztecProtocol/aztec-packages@fa9c9ce)) * **spartan:** Beacon node networking policy ([#11484](AztecProtocol/aztec-packages#11484)) ([d5b9892](AztecProtocol/aztec-packages@d5b9892)) * Stale selector comments ([#11311](AztecProtocol/aztec-packages#11311)) ([629bd64](AztecProtocol/aztec-packages@629bd64)) * Txe partial note support ([#11414](AztecProtocol/aztec-packages#11414)) ([cd9cad9](AztecProtocol/aztec-packages@cd9cad9)) * Update devbox ([#11339](AztecProtocol/aztec-packages#11339)) ([aca84ff](AztecProtocol/aztec-packages@aca84ff)) * Use simulation to estimate gas used ([#11211](AztecProtocol/aztec-packages#11211)) ([63776f0](AztecProtocol/aztec-packages@63776f0)) * Verify start state of a block ([#11290](AztecProtocol/aztec-packages#11290)) ([5eb3e8f](AztecProtocol/aztec-packages@5eb3e8f)) * Version undefined does not exist for tree NULLIFIER_TREE ([#11421](AztecProtocol/aztec-packages#11421)) ([b1cb502](AztecProtocol/aztec-packages@b1cb502)) ### Miscellaneous * Add a couple of comments in the AVM range check gadget ([#11402](AztecProtocol/aztec-packages#11402)) ([f1fd2d1](AztecProtocol/aztec-packages@f1fd2d1)) * Add OTEL_EXCLUDE_METRICS ([#11317](AztecProtocol/aztec-packages#11317)) ([37d4fa8](AztecProtocol/aztec-packages@37d4fa8)) * **avm:** Do not use commit_sparse ([#11447](AztecProtocol/aztec-packages#11447)) ([9796e1e](AztecProtocol/aztec-packages@9796e1e)) * **avm:** Remove some codegen bloat ([#11418](AztecProtocol/aztec-packages#11418)) ([6b0106c](AztecProtocol/aztec-packages@6b0106c)) * **bootstrap:** Refine noir contracts rebuild pattern ([#11367](AztecProtocol/aztec-packages#11367)) ([90f5e8f](AztecProtocol/aztec-packages@90f5e8f)) * Bump CRS and constants ([#11306](AztecProtocol/aztec-packages#11306)) ([9e5ea3a](AztecProtocol/aztec-packages@9e5ea3a)) * **ci:** Set correct image version in aztec image docker releases ([#11334](AztecProtocol/aztec-packages#11334)) ([197db95](AztecProtocol/aztec-packages@197db95)) * Dont install and run metrics stack on kind network smoke ([#11366](AztecProtocol/aztec-packages#11366)) ([f66db63](AztecProtocol/aztec-packages@f66db63)) * Exclude system metrics from k8s deployments ([#11401](AztecProtocol/aztec-packages#11401)) ([31be5fb](AztecProtocol/aztec-packages@31be5fb)) * Exp 2 with 128 validators ([#11483](AztecProtocol/aztec-packages#11483)) ([206ca8d](AztecProtocol/aztec-packages@206ca8d)) * Fix devnet deploy ([#11387](AztecProtocol/aztec-packages#11387)) ([71d8ede](AztecProtocol/aztec-packages@71d8ede)) * Fixed VK in MegaZK/ECCVM/Translator/Tube Recursive Verifier circuits ([#11377](AztecProtocol/aztec-packages#11377)) ([5018c94](AztecProtocol/aztec-packages@5018c94)) * Improving clarity of serialization in macros ([#11460](AztecProtocol/aztec-packages#11460)) ([7790973](AztecProtocol/aztec-packages@7790973)) * Increase initial fee juice mint ([#11369](AztecProtocol/aztec-packages#11369)) ([bca7052](AztecProtocol/aztec-packages@bca7052)) * Minor Gemini refactor to prep for opening k-shifts ([#11393](AztecProtocol/aztec-packages#11393)) ([30a063a](AztecProtocol/aztec-packages@30a063a)) * More granular error handling for toradixBE ([#11378](AztecProtocol/aztec-packages#11378)) ([64f4052](AztecProtocol/aztec-packages@64f4052)), closes [#11295](AztecProtocol/aztec-packages#11295) * Nargo fmt pre-commit hook ([#11416](AztecProtocol/aztec-packages#11416)) ([6f2e2e0](AztecProtocol/aztec-packages@6f2e2e0)) * Nuking redundant oracle ([#11368](AztecProtocol/aztec-packages#11368)) ([b32d9a1](AztecProtocol/aztec-packages@b32d9a1)) * **p2p:** Disable flakey test ([#11380](AztecProtocol/aztec-packages#11380)) ([94012b5](AztecProtocol/aztec-packages@94012b5)) * **p2p:** Reorganise reqresp handlers ([#11327](AztecProtocol/aztec-packages#11327)) ([f048acd](AztecProtocol/aztec-packages@f048acd)) * Point to monorepo's nargo in vscode workspace settings ([#11349](AztecProtocol/aztec-packages#11349)) ([bb96e7c](AztecProtocol/aztec-packages@bb96e7c)) * Print warning in builder when failure happens. ([#11205](AztecProtocol/aztec-packages#11205)) ([5a52e95](AztecProtocol/aztec-packages@5a52e95)) * Public network with sepolia ([#11488](AztecProtocol/aztec-packages#11488)) ([80f5a46](AztecProtocol/aztec-packages@80f5a46)) * Rc-2 release on Sepolia ([#11479](AztecProtocol/aztec-packages#11479)) ([bef7b0f](AztecProtocol/aztec-packages@bef7b0f)) * Redo typo PR by Daulox92 ([#11458](AztecProtocol/aztec-packages#11458)) ([f3ba327](AztecProtocol/aztec-packages@f3ba327)) * Redo typo PR by Dimitrolito ([#11413](AztecProtocol/aztec-packages#11413)) ([d4b7075](AztecProtocol/aztec-packages@d4b7075)) * Redo typo PR by nnsW3 ([#11322](AztecProtocol/aztec-packages#11322)) ([de64823](AztecProtocol/aztec-packages@de64823)) * Redo typo PR by offensif ([#11411](AztecProtocol/aztec-packages#11411)) ([a756578](AztecProtocol/aztec-packages@a756578)) * Redo typo PR by savvar9991 ([#11412](AztecProtocol/aztec-packages#11412)) ([53ea3af](AztecProtocol/aztec-packages@53ea3af)) * Redo typo PR by teenager-ETH ([#11320](AztecProtocol/aztec-packages#11320)) ([77854e2](AztecProtocol/aztec-packages@77854e2)) * Redo typo PR by teenager-ETH ([#11450](AztecProtocol/aztec-packages#11450)) ([dd46152](AztecProtocol/aztec-packages@dd46152)) * Reenable reqresp offline peers test ([#11384](AztecProtocol/aztec-packages#11384)) ([931dfa6](AztecProtocol/aztec-packages@931dfa6)) * Renaming emit unencrypted -> emit public ([#11361](AztecProtocol/aztec-packages#11361)) ([c047a12](AztecProtocol/aztec-packages@c047a12)) * Replace relative paths to noir-protocol-circuits ([6f644cd](AztecProtocol/aztec-packages@6f644cd)) * Replace relative paths to noir-protocol-circuits ([fe24778](AztecProtocol/aztec-packages@fe24778)) * Replace relative paths to noir-protocol-circuits ([fcdb409](AztecProtocol/aztec-packages@fcdb409)) * Replace relative paths to noir-protocol-circuits ([ea43aed](AztecProtocol/aztec-packages@ea43aed)) * Replace relative paths to noir-protocol-circuits ([7653c69](AztecProtocol/aztec-packages@7653c69)) * Replace relative paths to noir-protocol-circuits ([204476e](AztecProtocol/aztec-packages@204476e)) * Serialize trait impls for U128 following intrinsic Noir serialization ([#11142](AztecProtocol/aztec-packages#11142)) ([c5671d2](AztecProtocol/aztec-packages@c5671d2)) * Slower exp2 ([#11487](AztecProtocol/aztec-packages#11487)) ([e995c0f](AztecProtocol/aztec-packages@e995c0f)) * **sol:** Generate & compile verifier contract in bootstrap ([#11364](AztecProtocol/aztec-packages#11364)) ([bf3b12a](AztecProtocol/aztec-packages@bf3b12a)) * **spartan:** Apply release fixes post cl ([#11385](AztecProtocol/aztec-packages#11385)) ([2bbf562](AztecProtocol/aztec-packages@2bbf562)) * Stricter contributing rules ([#11462](AztecProtocol/aztec-packages#11462)) ([2535425](AztecProtocol/aztec-packages@2535425)) * Temporarily disable boxes ([#11472](AztecProtocol/aztec-packages#11472)) ([f6c63fe](AztecProtocol/aztec-packages@f6c63fe)) * Test starting multiple anvils allocates distinct ports ([#11314](AztecProtocol/aztec-packages#11314)) ([e385ea9](AztecProtocol/aztec-packages@e385ea9)) * Trace propagation from json rpc client to server ([#11325](AztecProtocol/aztec-packages#11325)) ([85ccc15](AztecProtocol/aztec-packages@85ccc15)) * Try fix e2e block building flake ([#11359](AztecProtocol/aztec-packages#11359)) ([38fbd5c](AztecProtocol/aztec-packages@38fbd5c)) * Try fix flakey public processor test ([#11348](AztecProtocol/aztec-packages#11348)) ([8de55d4](AztecProtocol/aztec-packages@8de55d4)) * Updated ethereum resource config ([#11485](AztecProtocol/aztec-packages#11485)) ([8788561](AztecProtocol/aztec-packages@8788561)) </details> <details><summary>barretenberg: 0.72.0</summary> ## [0.72.0](AztecProtocol/aztec-packages@barretenberg-v0.71.0...barretenberg-v0.72.0) (2025-01-24) ### ⚠ BREAKING CHANGES * public logs ([#11091](AztecProtocol/aztec-packages#11091)) ### Features * **avm:** Address and class id derivation setup ([#11354](AztecProtocol/aztec-packages#11354)) ([5f3cffc](AztecProtocol/aztec-packages@5f3cffc)) * **avm:** Bytecode manager changes ([#11347](AztecProtocol/aztec-packages#11347)) ([4a9c072](AztecProtocol/aztec-packages@4a9c072)) * **avm:** Include initial tree roots in DB ([#11360](AztecProtocol/aztec-packages#11360)) ([4d149be](AztecProtocol/aztec-packages@4d149be)) * **avm:** Interactive debugger ([#11477](AztecProtocol/aztec-packages#11477)) ([53e57d3](AztecProtocol/aztec-packages@53e57d3)) * Eccvm sumcheck with commitments to round univariates ([#11206](AztecProtocol/aztec-packages#11206)) ([fe34b05](AztecProtocol/aztec-packages@fe34b05)) * Lazy wasm pt. 2 ([#11410](AztecProtocol/aztec-packages#11410)) ([01510f4](AztecProtocol/aztec-packages@01510f4)) * Public logs ([#11091](AztecProtocol/aztec-packages#11091)) ([f4725d2](AztecProtocol/aztec-packages@f4725d2)) * UH recursion in the browser ([#11049](AztecProtocol/aztec-packages#11049)) ([c3c04a4](AztecProtocol/aztec-packages@c3c04a4)) ### Bug Fixes * Hackily fix the public input columns of avm recursion constraint ([#11428](AztecProtocol/aztec-packages#11428)) ([436c3c6](AztecProtocol/aztec-packages@436c3c6)) * Verify start state of a block ([#11290](AztecProtocol/aztec-packages#11290)) ([5eb3e8f](AztecProtocol/aztec-packages@5eb3e8f)) ### Miscellaneous * Add a couple of comments in the AVM range check gadget ([#11402](AztecProtocol/aztec-packages#11402)) ([f1fd2d1](AztecProtocol/aztec-packages@f1fd2d1)) * **avm:** Do not use commit_sparse ([#11447](AztecProtocol/aztec-packages#11447)) ([9796e1e](AztecProtocol/aztec-packages@9796e1e)) * **avm:** Remove some codegen bloat ([#11418](AztecProtocol/aztec-packages#11418)) ([6b0106c](AztecProtocol/aztec-packages@6b0106c)) * Bump CRS and constants ([#11306](AztecProtocol/aztec-packages#11306)) ([9e5ea3a](AztecProtocol/aztec-packages@9e5ea3a)) * Fixed VK in MegaZK/ECCVM/Translator/Tube Recursive Verifier circuits ([#11377](AztecProtocol/aztec-packages#11377)) ([5018c94](AztecProtocol/aztec-packages@5018c94)) * Minor Gemini refactor to prep for opening k-shifts ([#11393](AztecProtocol/aztec-packages#11393)) ([30a063a](AztecProtocol/aztec-packages@30a063a)) * More granular error handling for toradixBE ([#11378](AztecProtocol/aztec-packages#11378)) ([64f4052](AztecProtocol/aztec-packages@64f4052)), closes [#11295](AztecProtocol/aztec-packages#11295) * Print warning in builder when failure happens. ([#11205](AztecProtocol/aztec-packages#11205)) ([5a52e95](AztecProtocol/aztec-packages@5a52e95)) * Redo typo PR by Daulox92 ([#11458](AztecProtocol/aztec-packages#11458)) ([f3ba327](AztecProtocol/aztec-packages@f3ba327)) * Redo typo PR by teenager-ETH ([#11320](AztecProtocol/aztec-packages#11320)) ([77854e2](AztecProtocol/aztec-packages@77854e2)) * **sol:** Generate & compile verifier contract in bootstrap ([#11364](AztecProtocol/aztec-packages#11364)) ([bf3b12a](AztecProtocol/aztec-packages@bf3b12a)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Public Logs
Unencrypted logs -> public logs #9589
Like
private_logs
, public logs are introduced in this PR and replace unencrypted logs. They:AVM team: I've made some limited changes with help from Ilyas (tyvm) just so we have tests passing and logs being emitted, this is not complete! I've added #11124 to help track where changes need to be made in areas of the code I have no familiarity with. I didn't want to touch too many areas so I haven't fully renamed unencrypted -> public. Ofc I'm happy to help anywhere that's needed.
Aztec-nr/Noir-contracts: This PR also addresses #9835. I don't know much about how partial notes work or should work, so I tried to touch the least I could to convert these logs to fields. One big change is that the first field now contains the length of private fields and ciphertext bytes along with the public fields. This is because now we don't emit logs as an array of bytes with a set length to ts, there isn't a way to tell when a log 'ends'. We also can't just discard zero values, because in many cases zeros are emitted as real log values.
TODO:CompletedSome more renaming (e.g.UnencryptedLogsResponse
, prefixes, public context, noir contracts)MAX_UNENCRYPTED_LOGS_PER_CALL
->MAX_PUBLIC_LOGS_PER_CALL
(not done yet, becausePublicCircuitPublicInputs
is linked toAvmCircuitInputs
which goes into bb)Test and cleanup anything touching partial notesTODO in follow-up PRS:
emit_unencrypted
: This will touch a lot of files and just make it difficult to review, so I'll add a follow up PR with just this renaming.UnencryptedL2Log
still exist. This is solely for contract class logs which have thousands of fields and so are still hashed to a single value in the kernels/rollups/ts. In a follow up PR I'll separately convert these to fields to benchmark the effects.