Summary

Nethermind released version 2.0.0. It works with Aztec v5.2.0, but it changes how much L1 history a fresh sync keeps.

Operators who resync, or plan to, must set the flags in this guide before the sync starts.

Geth, Besu, Reth and Erigon are not affected.

Who must act

Your situation What to do
Nethermind upgraded in place from 1.39.x, no resync Apply the Path 1 flags now and restart the Nethermind client.
Nethermind resynced on 2.0.0 If the Aztec node syncs normally, nothing. If it does not, resync with the Path 2 flags. Do not use Path 1 on this node: it sets --FlatDb.Enabled=false, which silently discards the state of a FlatDB node and starts a full resync.
A Nethermind resync planned Choose Path 1 or Path 2 before you start the sync.
Geth, Besu, Reth or Erigon Nothing.

Why this happens

The Aztec node needs two kinds of history from its L1 execution client:

  1. Trace history for about 3,600 blocks (about 12 hours), for debug_traceTransaction.
  2. Historical logs back to the Rollup deploy block, for the Rollup, Inbox, Registry and GovernanceProposer contracts. The Aztec node does not start without them.

Nethermind 2.0.0 raised the mainnet ancient-history barrier from block 15,537,394 to block 24,600,000. The Nethermind team confirmed that this affects receipts and logs, not only state. The Aztec V5 Rollup was deployed at block 25,428,902. A fresh 2.0.0 sync with default settings does not serve the logs from that block unless you set the barrier flags in this guide.

Before you start: the deploy block

The Aztec V5 Rollup deploy block on mainnet is 25428902.

⚠️ Warning: set the barrier flags to 25428902 or to a lower number. A barrier above the deploy block prunes the deploy block itself, and the Aztec node cannot sync. For example, 25428000 is safe (it keeps slightly more history). 25429000 breaks the node.

⚠️ Warning: neither configuration restores history that is already pruned. If your node has already pruned below the deploy block, you must resync with the flags set.

Path 1: stay on Patricia

For operators on the Patricia database. If you are not resyncing, add the flags and restart. If you are resyncing on Patricia, set them before the sync starts.

--FlatDb.Enabled=false
--Pruning.Mode=Hybrid
--Pruning.PruningBoundary=4096
--Pruning.FullPruningTrigger=VolumeFreeSpace
--Pruning.FullPruningThresholdMb=256000
--Sync.AncientReceiptsBarrier=25428902
--Sync.AncientBodiesBarrier=25428902
--History.Pruning=Disabled