Skip to content

feat: merge-train/spartan#22132

Merged
AztecBot merged 27 commits intonextfrom
merge-train/spartan
Mar 30, 2026
Merged

feat: merge-train/spartan#22132
AztecBot merged 27 commits intonextfrom
merge-train/spartan

Conversation

@AztecBot
Copy link
Copy Markdown
Collaborator

@AztecBot AztecBot commented Mar 30, 2026

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

alexghr and others added 7 commits March 27, 2026 18:55
…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
AztecBot and others added 7 commits March 30, 2026 10:26
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
alexghr and others added 11 commits March 30, 2026 15:25
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>
@PhilWindle PhilWindle requested a review from charlielye as a code owner March 30, 2026 16:56
Copy link
Copy Markdown
Collaborator

@ludamad ludamad left a comment

Choose a reason for hiding this comment

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

🤖 Auto-approved

@AztecBot
Copy link
Copy Markdown
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

@AztecBot AztecBot added this pull request to the merge queue Mar 30, 2026
@AztecBot
Copy link
Copy Markdown
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

Merged via the queue into next with commit 590a56f Mar 30, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants