Conversation
…se (#22128) ## Summary - Adds `declare readonly __brand` to `Buffer16` and `Buffer32` so TypeScript treats them as nominally distinct types, preventing accidental cross-type comparisons like `buffer16.equals(buffer32)`. - Fixes an existing bug in `l1_synchronizer.ts:409` where `Buffer32.ZERO` was used as fallback in a `Buffer16` comparison — this would have caused unnecessary message re-retrieval. Detailed analysis: https://ci.aztec-labs.com/buffer-branding-analysis ClaudeBox log: https://claudebox.work/s/04de006660e7c042?run=5
To further consistency whilst no production impact. Co-authored-by: danielntmd <danielntmd@nethermind.io>
…hronizer (#22133) ## Summary - Fixed `Buffer32.ZERO` → `Buffer16.ZERO` fallback in `handleL1ToL2Messages` rolling hash comparison. `messagesRollingHash` from the inbox contract is `Buffer16`, so comparing against `Buffer32.ZERO` always fails, causing unnecessary L1 message fetches when no messages exist. - Added unit test verifying the archiver skips message fetching when both local and remote have zero messages. ClaudeBox log: https://claudebox.work/s/dc4e7dd4b30c209b?run=3
) ## Overview Key contributions: - In the pr above #21026 publishing was a blocking action, in this pr we move publishing to be a non blocking option, there a publisher can schedule when it should start trying to publish a block. - This keeps track of valid checkpoints that are pending and not settled to L1 - and allows building ontop of them. Adds a second p2p callback that separates what runs for all nodes / validator nodes ## Testing epochs_mbps.pipeline now expects 3 blocks per checkpoint, just like the original epochs_mbps test, now it is fully pipelined. ## Upcoming - updating the timetable to allow for longer time building in the slot - this pr does not extend the time allocated to block building. - handing rollbacks when the pendingCheckpoint needs to be rolled back / cleared.
Avoids potential issues with regex matching against module name, which happens when the logger is instantiated. Note that we do not consider regex injection in the `LOG_LEVEL` definition to be an attack vector, since it's the operator who controls it. Fixes A-769
This PR enables workload identity for the infra node pools in the private cluster and deploys ESO only on infra nodes.
## Summary Disables the SponsoredFPC contract in the staging-public environment to prevent genesis archive root divergence across aztec-nr versions. The SponsoredFPC contract address depends on its compiled bytecode, which changes whenever aztec-nr is updated (oracle renames, log domain separation, etc.). This causes the genesis archive root to differ between versions, bricking nodes that were deployed with a different aztec-nr version. Setting `SPONSORED_FPC=false` aligns staging-public with testnet and mainnet configuration, which don't use SponsoredFPC. ## Context - Nodes running 4.2.0-aztecnr.2 on staging-public were bricked because the genesis archive root changed - Root cause: aztec-nr breaking changes recompile SponsoredFPC → different address → different genesis root - See analysis: https://gist.github.com/AztecBot/21c76a7d939dcff5af52e6fc23d6db76 ## Test plan - [ ] Verify staging-public redeploys successfully without SponsoredFPC - [ ] Confirm genesis archive root matches across v4 and v4-next versions" ClaudeBox log: https://claudebox.work/s/dd9d82043dbc175f?run=4
…n L1 (#22156) ## Motivation Right after deployment, the archiver's L1 sync queries `getProvenCheckpointNumber` at the finalized L1 block tag. But if the rollup contract didn't exist yet at that L1 block, the call returns no data and logs a noisy warning on every sync iteration. ## Approach Swallow the "returned no data" error in `updateFinalizedCheckpoint` since it's an expected transient condition. Other errors still log a warning. ## Changes - **archiver**: Silence the `ContractFunctionExecutionError` with "returned no data" in `updateFinalizedCheckpoint`, which occurs when the rollup contract is too new to exist at the finalized L1 block Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…images (#22148) Date check asserts today's date matches the image's date. Co-authored-by: danielntmd <danielntmd@nethermind.io>
Collaborator
Author
|
🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass. |
Collaborator
Author
|
🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BEGIN_COMMIT_OVERRIDE
chore: setup snapshot retention rules (#22107)
fix: add branding to Buffer16 and Buffer32 to prevent cross-type misuse (#22128)
chore: (A-723) redact beacon api key in debug path (#22115)
fix(archiver): use Buffer16.ZERO for rolling hash fallback in L1 synchronizer (#22133)
feat(pipeline): allow syncing blocks ontop of the proposed chain (#21025)
fix(logger): no arbitrary long logger module name (#22143)
chore: setup workload identity for ESO (#22137)
fix: Make test more robust to committee selection. (#22139)
fix: handle error event on SSH agent socket to prevent Node crash (#22090)
fix: disable SponsoredFPC on staging-public (#22150)
fix(archiver): swallow error when rollup contract not yet finalized on L1 (#22156)
chore: update dashboard (#22157)
chore: switch testnet back to prod resource profile (#22159)
chore: nightly scenario deployments should not be triggered by older images (#22148)
END_COMMIT_OVERRIDE