Skip to content

Releases: NethermindEth/nethermind

v1.39.1

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 16 Jul 13:03
b7c5132

Release notes

This is a patch release on top of 1.39.0 with a round of bug fixes and reliability improvements across snap sync, networking, JSON-RPC, and the experimental Flat DB.

Overview

Full diff: 1.39.0...1.39.1

8 changes since 1.39.0. Highlights:

  • Flat DB (experimental, opt-in) — fixed a disposal race between shutdown and in-flight trie-warmer jobs (#12237)
  • eth_simulateV1 now bounds the total block expansion, not just each inter-block gap (#12210)
  • Bad-block store is bounded by entry count as intended, instead of comparing against the DB byte size (#12225)
  • Quieter logs — RLP limit diagnostics toned down (#12130)

Highlights

Sync

  • Reject malformed snap range proofs instead of throwing (#12187)
  • Verify the hash of trie nodes recovered via snap heal (#12200)

Networking

  • Reject zero-size RLPx frames in ZeroFrameDecoder (#12202)
  • Tone down RLP limit logging (#12130)

JSON-RPC & Engine API

  • Bound eth_simulateV1 total block expansion, not just each gap (#12210)
  • Side-effect-free invalid-chain query and atomic node get-or-create in the invalid-chain tracker (#12208)

Storage & state

  • Bound BadBlockStore by entry count, not DB byte size (#12225)
  • Flat DB (experimental, opt-in): lease the read-only bundle for in-flight trie-warmer jobs (#12237, fixes #12079)

What's Changed

Full Changelog: 1.39.0...1.39.1

Build signatures

The packages are signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E

v1.39.0

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 08 Jul 17:56
14aca2c

Release notes

This release focuses on node robustness, Flat DB durability — alongside the eth/71 wire protocol, a reworked discovery stack, a large JSON-RPC features-and-correctness batch, continued Block-level Access Lists (EIP-7928) maturation, and a broad round of EVM, precompile, and state performance work.

OP Karst reminder: the OP Karst hardfork (shipped in 1.38.1 and included here) activates on OP Mainnet: Wed, Jul 8, 2026 at 16:00:01 UTC. OP Stack operators must be on 1.38.1 or later before then.

Overview

Full diff: https://github.com/NethermindEth/nethermind/compare/1.38.1…1.39.0

337 changes since 1.38.1. Highlights include restart-safety fixes for header sync and pivot selection, a Flat DB durability overhaul, the eth/71 wire protocol, a rework of discv4 discovery, SSZ-REST transport for the Engine API, eight new JSON-RPC methods with a large correctness batch, EIP-7928 (BALs) devnet-7 support with major performance work, EraE fixes, and chain-specific improvements for XDC, Taiko, Optimism, and Arbitrum.

Highlights

Sync & restart safety

  • Recover header sync after a lost chain level on unclean shutdown (#11994, fixes #8029)
  • Unwedge UpdatingPivot for nodes restarted before the first pivot update (#11995)
  • Flush all column families in ColumnsDb.Flush — makes column-DB writes (incl. Flat DB) durable across restarts (#12223, fixes #11993)
  • Refresh snap pivot instead of punishing the only peer (#11569, fixes #6803); support infinite pivot-update attempts via 1 (#11600, fixes #5992)
  • Fix shutdown race in SnapProvider (#11807); accept receipts with zero bloom from peers (#11743); prevent negative RequestSize crash when the beacon pivot advances mid-sync (#11478)
  • New Sync.StaticSnapPivot option for fixed-pivot snap sync from a frozen peer (#11943)

Flat DB (experimental, opt-in) durability & hardening

  • Crash-durable snap finalize with a cheap restart wipe (#11997); preserve format markers when clearing the flat DB (#11996)
  • Force-persist the head-reachable fork instead of an arbitrary one (#11967); persistence cache (#12035); prune orphaned non-canonical snapshots on persist (#11739)
  • RLP-wrap storage slot values behind a versioned flag (#11909) with legacy-DB detection (#11975); improved state-backend compatibility and auto-detection (#11911, #11404)
  • Stagger compaction per instance (#11756) with a CompactionOffset config to pin the schedule (#11958)

Networking & discovery

  • eth/71 wire protocol (#10844); eth/70 hardening (#11456, #11615, #11754); eth/69 BlockRangeUpdate validation (#11796)
  • discv4 rework (#8616) and discovery now defaults to V4 (#11614); faster discv4 timeout handling (#11859)
  • Disconnect peers on unknown protocol message type (#11266); reduced per-message and per-peer allocations across Eth, Snap, and RLPx (#11639)

JSON-RPC

  • New methods: eth_getHeaderByHash/eth_getHeaderByNumber (#11531), eth_getRawTransactionByBlockHashAndIndex/eth_getRawTransactionByBlockNumberAndIndex/eth_sendRawTransactionSync (#11521), eth_signTransaction (#11517), eth_baseFee (#11522), debug_intermediateRoots (#11524), eth_capabilities (#11438), proof_call (#11732), proof_getProofWithMeta (#11498)
  • Streaming responses for debug_* and trace_* (#11693, #11755, #11781) with a synchronous-wait fix (#12006)
  • Correctness batch: eth_estimateGas zero/revert semantics (#11780, #11783), reject EIP-1898 blockHash+blockNumber (#11777), reject oversized blob calls (#11782), eth_simulateV1 fixes (#11506, #11665, #11841), eth_createAccessList reverted-frame accesses (#11431), omit non-spec error field from receipts (#11454), zero hashes for absent eth_getProof accounts (#11912)
  • Route eth_call through a shareable tx-processor pool (#11548); drain in-flight requests before disposing databases on shutdown (#11845)

Engine API

  • SSZ-REST transport (#11301) with Accept-negotiation fix (#11856) and capabilities-warning fix (#12176)
  • Fix forkchoice validation order (#11681); validate FCU safe/finalized by ancestry when main-chain markers are outdated (#11746); guard against null safe/finalized hash (#12110)
  • Bound dangling block-cache growth (#11426); capture bad blocks at pre-process rejection stages (#11696)

Block-level Access Lists (EIP-7928)

  • BAL devnet 6 and devnet 7 support (#11436, #11561) incl. the EIP-8037 intrinsic-gas cap (#11635, #11579)
  • Network encoding fix (#11950), RLP fix (#11861), validation refactor (#11878), activation only when needed (#11795)
  • Performance series: verify-only fast path (#11659), account-presence bitmap (#11661), single-pass build (#11676), reduced recording overhead on warm reads (#11905), allocation cuts (#11702, #11725)

Performance

  • Fast ETH-transfer execution path (#11804); TrieWarmer reworked onto ThreadPool (#11848); tightened CALL hot path with EIP-7702 delegation-to-precompile fix (#11547)
  • Precompiles: BN254 pairing optimizations (#11916, #11888), BLS G1MSM decoding (#11889), per-thread RIPEMD-160 (#11890), ModExp int32 overflow fix (#11692)
  • State: storage-trie warm-up driven from writes (#11409), RocksDB native memory reported to GC (#11453), lock-free ChainHeadSpecProvider (#11618)

Chain-specific

  • XDC: XDPoS RPC module (#10553), rewards upgrade (#11016), HotStuff and QC-manager refactors (#11711, #11644), snapshot recovery (#11602), discovery (#11527), sync fixes
  • Taiko: Unzen scheduled on Taiko Hoodi (#11977) with zk-gas recalibrations (#11749, #11896, #11940); beacon-sync deadlock fix (#11648); engine payload aligned with alethia-reth (#11776)
  • Optimism: OP Karst fork (#11917) and Superchain registry refresh with Base removal (#11655, #11852) — already shipped to OP operators in 1.38.1
  • Arbitrum groundwork: ArbOS 60 multi-gas constraints (#10765) and EVM extension points
  • zkEVM/stateless: migration to zkVM/SSZ standards (#11481, #11625), EEST stateless-execution tests (#11908), intrinsic zk gas (#11584)

Other notable

⚠️ Breaking / behavior changes

  • Legacy BloomStorage removed (#11906) — the bloom-filter index database and its configuration are gone; log queries rely on the current log-index path.
  • Discovery defaults to V4 (#11614).
  • Per-method JSON-RPC metrics are now enabled by default (#11494).
  • Non-spec error field removed from transaction receipts in JSON-RPC responses (#11454).
  • IPC socket is restricted to owner-only permissions when configured (#9449).

What’s Changed

Read more

Guest for ZisK r7

Guest for ZisK r7 Pre-release
Pre-release

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 23 Jun 19:55
9096a4a

Release notes

This is the first public preview of the Nethermind guest for ZisK.

  • Requires ZisK v1.0.0-alpha
  • Supports standard chains and glamsterdam-devnet-5

Build signature

The package is signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E

v1.38.1

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 15 Jun 15:47
9c36577

Release notes

This is a patch release focused on Optimism / OP Stack support. It adds the OP Karst fork, refreshes the Superchain registry chains, and removes the bundled Base mainnet and sepolia configurations.

Sepolia: Wed, Jun 17, 2026 at 16:00:01 UTC
Mainnet: Wed, Jul 8, 2026 at 16:00:01 UTC

Overview

Full diff: 1.38.0...1.38.1

5 changes since 1.38.0, all OP Stack–related. Highlights:

  • OP Karst fork added, with the precompile input-size caps and Engine API capability gating that go with it.
  • Superchain registry refresh across all bundled OP chains.
  • Base removed from the shipped chain configs and node profiles.

Highlights

Optimism

  • Add OP Karst fork (#11917) — Karst timestamp plumbing across the OP forks, Osaka EIPs enabled, propagation of release spec and precompile input-size limits, and ForkInfo support. Includes a refactor that isolates all OP-specific fork flags and transition timestamps inside Nethermind.Optimism (mirroring the Taiko plugin pattern), so Core/Specs/Merge.Plugin/Evm.Precompiles no longer reference any OP fork flag. OP precompile caps now live in dedicated wrapper precompiles registered via OptimismPrecompileProvider, and Engine API V4 is gated behind OP Isthmus activation.
  • Update OP Superchain chains (#11855, #11733)

Chain configs

  • Update OP Superchain chains, removes Base (#11655) — removes base-mainnet and base-sepolia (including archive configs, profiles, and logo) from the bundled chains, adds support for handling chains deleted from the Superchain registry, and removes arena-z and swell-mainnet.

⚠️ Breaking changes

  • Base is no longer bundled. The base-mainnet, base-sepolia, and their _archive configurations have been removed from the shipped chain configs. Operators running Base via Nethermind's built-in configs must supply their own chainspec/config.
  • arena-z and swell-mainnet chain configs were also removed as part of the Superchain registry sync.

What's Changed

  • Update OP Superchain chains (removes Base) by @emlautarom1 in #11655
  • Update OP Superchain chains by @core-repository-dispatch-app in #11733
  • Update OP Superchain chains by @core-repository-dispatch-app in #11855
  • Add OP Karst fork by @emlautarom1 in #11917
  • Update Directory.Build.props for 1.38.1 by @stdevMac in #11973

Full Changelog: 1.38.0...1.38.1

Build signatures

The packages are signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E

v1.38.0

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 02 Jun 15:47
c07a4d6

Release notes

This release improves node robustness, restart safety, RPC compatibility, and runtime performance, especially for Flat DB users, RPC-heavy workloads, and chains relying on upcoming hardfork or EIP support.

Overview

Full diff: https://github.com/NethermindEth/nethermind/compare/1.37.2…release/1.38.0

372 changes since 1.37.2. Highlights include the Taiko Unzen hardfork, parallel transaction execution with Block-level Access Lists (EIP-7928), new EIPs (EIP-7981 access-list token floor pricing, EIP-7976 calldata floor cost, EIP-4444 EraE history expiry), Flat DB layout persistence, a large round of JSON-RPC correctness fixes, and EVM/state hot-path optimizations.

Highlights

Consensus & EIPs

  • Taiko Unzen hardfork implemented (#11281)
  • Parallel transaction execution with BALs (#9182), additional BAL hive tests (#11285)
  • EIP-7981 — Access list token floor pricing (#11311)
  • EIP-7976 — Increase calldata floor cost (#11293)
  • EIP-4444 EraE support (#10812)
  • Enforce EIP-3675 uncle ban at the spec level (#11302)
  • Gnosis Osaka (#10906)

State & storage

  • Persist FlatLayout and refuse mismatched restarts (#11271)
  • Flat-state storage cleanup and snapshot fixes (#11133, #11401, #11414)
  • Reduce dirty nodes lock contention (#11297)
  • StateComposition plugin — real-time state metrics (#10995)

Performance

  • Embed Address bytes inline to remove secondary allocation (#11469)
  • Optimize EVM stack (#11230) and EvmMemory (#11247)
  • Optimise parallel execution: reduce worldstate / txprocessor allocations (#11318)
  • More optimizations for precompile caching (#11373, #11309)

RPC & correctness

  • admin_* peer-management endpoints improvements (#11489)
  • Numerous eth_simulateV1, eth_call, eth_estimateGas error-code and gas-cap fixes
  • txpool_content / txpool_contentFrom / txpool_status fixes (#11305, #11417)
  • /health endpoint ClUnavailable regression fix (#11474)

Networking & sync

  • Upgrade discv5 (#11419)
  • Lock-free sync allocation slots per peer (#11361)
  • Remove NodeData satellite protocol (#11359) and long-range catch-up sync (#11123)

Chain-specific

  • XDC: forensics processor, epoch switch manager, subnet block building, and multiple fixes
  • Taiko: batch lookup RPC methods (#11021), Shasta fork on Alethia (#10984)
  • Add new Anchor Transaction Type for Surge realtime (#10320)

What’s Changed

Read more

v1.37.2

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 05 May 13:48
8e212be

Release notes

Release notes

Overview

This release fixes healthcheck and Archive Invalid Block issues on 1.37.1

What's Changed

Full Changelog: 1.37.1...1.37.2

Build signatures

The packages are signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E

v1.37.1

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 28 Apr 23:31
706ad49

Release notes

Overview

This release replaces 1.37.0

540 Changes across 2,651 Files. Major worldstate backend refactor, RocksDB snapshots, flat storage for snap sync, block-level access lists (EIP-7928), initial zkEVM groundwork, and a large round of JSON-RPC and EVM hot-path optimizations.

Breaking changes

  • eth/66 and eth/67 dropped; eth/69 is now default and eth/70 added and activated (#9938, #10246)
  • Engine API versioning reworked (#10786)
  • Vault and NDM code paths removed (#10478)

Highlights

Performance

State & storage

  • Worldstate backend refactor with pluggable backends (#9089)
  • RocksDB and column DB snapshots (#10080, #10262)
  • Flat storage for snap sync (#9854, #10426)
  • Discv5 nodes moved to a separate DB (#10027)

EVM extensibility

Consensus & EIPs

RPC & correctness

  • eth_estimateGas fixes (#10559); eth_getBlockByNumber canonical enforcement (#10024)
  • eth_getLogs faster (#9923); log index introduced (#8464)
  • engine_getBlobsV3 (#9942); engine_getPayloadV4 for Optimism (#10328)
  • eth_subscribe transactionReceipts (#10524)
  • debug_ block field overrides (#10405); GasCap enforced on debug/trace (#10457)
  • Hardened RPC tx validations (#10395)

Networking

  • Faster handshake parsing, Ethrex recognized (#9935)
  • Discovery v5 optimized (#10081); better peer decentralization (#10090)

Chain-specific

  • Taiko/Surge: Shasta changes, Hoodi activation, TDX attestation (#9998, #10406, #9954)
  • XDC: P2P layer, EIP-1559, fast sync, penalty/reward handlers (#10615, #10277, #10549)
  • OP Superchain: rolling updates

Flat DB (opt-in)

Nethermind 1.37.0 ships a new Flat DB state backend that stores the latest state as flat account/storage records instead of walking the Merkle-Patricia trie. Faster random reads, streaming snap serving, and per-column cache budgets. Disabled by default — opt in with --FlatDb.Enabled=true.

Activation

--FlatDb.Enabled=true

This swaps FlatWorldStateModule in for the pruning-trie wiring, disables admin_prune / admin_verifyTrie, and force-enables Sync.SnapServingEnabled=true.

Migration from an existing pruning-trie DB

Set the import flag alongside Enabled:

--FlatDb.Enabled=true 
--FlatDb.ImportFromPruningTrieState=true

Run the node. On first boot the ImportFlatDb step streams the head state into the flat DB and then exits cleanly (exit code 0). Just restart the node — the flag can stay on. On subsequent boots the step detects the populated flat DB, logs Flat db already exist, and returns without exiting, so the node proceeds to normal operation. There is no automatic in-place migration without the flag: if you enable Flat DB on a node that already has pruning-trie data and don't set ImportFromPruningTrieState, the flat DB is simply empty and you'll sync from scratch.

FlatLayout.PreimageFlat cannot be the import target (the importer uses raw hash-keyed writes) — use Flat or FlatInTrie for the import run.

Layouts — -FlatDb.Layout

Value Notes
Flat (default) Flat entries in a dedicated column DB with Hyper Clock caches (30% Account / 70% Storage of BlockCacheSizeBudget).
FlatInTrie Entries embedded into trie leaves. FlatRocksDbConfigAdjuster adds optimize_filters_for_hits=true, partitioned filters, two-level index — lower memory, higher tail latency.
PreimageFlat Preimage-DB-keyed layout. Requires a preimage DB populated via --FlatDb.EnablePreimageRecording=true on an earlier run.

All FlatDb.* flags (defaults from FlatDbConfig.cs)

Flag Default Purpose
Enabled false Master switch.
Layout Flat Flat / FlatInTrie / PreimageFlat.
ImportFromPruningTrieState false One-shot import from the pruning-trie DB; idempotent afterwards.
EnablePreimageRecording false Mirror account/slot hashes into a preimage DB.
VerifyWithTrie false Cross-check flat reads against a reconstructed trie. Diagnostic — slow.
InlineCompaction false Run compaction inline on writes instead of pooled.
CompactSize / MinCompactSize 32 / 2 Snapshot-group size bounds for hierarchical compaction.
MaxInFlightCompactJob 32 Compaction parallelism.
MinReorgDepth / MaxReorgDepth 128 / 256 Reorg retention window.
TrieWarmerWorkerCount -1 -1 = CPU - 1, 0 = disable warming.
BlockCacheSizeBudget 1 GiB RocksDB block cache for the flat column family (split 30/70 Account/Storage). Stacks on top of Db.* budgets.
TrieCacheMemoryBudget 512 MiB TrieNodeCache target; 0 disables it.

Config flag changes

Every user-facing config movement on 1.37.0 outside the FlatDb.* namespace. Flat DB flags are covered separately.

Added

Flag PR Default Purpose
Network.FilterPeersByRecentIp [#10090](#10090) true Reject peers whose IP key was seen recently (time-windowed).
Network.FilterPeersBySameSubnet [#10090](#10090) true Bucket peer IPs by subnet (IPv4 /24, IPv6 /64). Set false for co-located multi-node setups.
Network.FilterDiscoveryNodesByRecentIp [#10090](#10090) true Same filter for discovery.
Network.FilterDiscoveryNodesBySameSubnet [#10090](#10090) true Subnet bucketing for discovery.

Removed

Flag PR Notes
Db.XdcSnapshotsDbRocksDbOptions [#10329](#10329) Moved into XdcRocksDbConfigFactory in the XDC plugin.
Db.XdcSnapshotsDbAdditionalRocksDbOptions [#10329](#10329) As above — delete from any XDC config overrides.

Default-value changes

Implicit flips

  • Sync.SnapServingEnabled is force-true whenever FlatDb.Enabled=true (FlatWorldStateModule intercepts ISyncConfig). A -Sync.SnapServingEnabled=false passed alongside Flat DB is silently overridden.

Build signatures

The packages are signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E

What's Changed

  • Disable publishing to Downloads by @stdevMac in #9910
  • Fix hive getLogs by @deffrian in #9889
  • fix: remove duplicate gRPC host validation in GrpcClient by @VolodymyrBg in #9922
  • Move ExecutionEnvironment to Rentable sealed class by @LukaszRozmej in #9916
  • fix: align BlockHashes dictionary to use nullable Hash256 by @aso20455 in #9900
  • Only pool pure Transaction objects, not subclasses by @tanishqjasoria in #9884
  • Auto-update fast sync settings by @core-repository-dispatch-app[bot] in #9933
  • Update OP Superchain chains by @core-repository-dispatch-app[bot] in #9932
  • Adjust JOC testnet Bootnodes according to recent changes by @anhnhx131 in #9940
  • fix: Remove redundant BlockHeader field reassignments in StatelessExecution by @anim001k in #9928
  • test: add Eip2565Transition check for posdao chain spec by @PivasDesant in #9920
  • Fixes #9606: DebugTracerTests thread synchronization issue by @igladun in #9875
  • Faster protocol parsing, add Ethrex as node/brand type by @benaadams in #9935
  • Precompiles names fix by @svlachakis in #9944
  • Update packages by @rubo in #9907
  • Fix hanging scenario i...
Read more

v1.37.0

v1.37.0 Pre-release
Pre-release

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 24 Apr 13:29
7c0014d

Release notes

Overview

530 Changes across 2,643 Files. Major worldstate backend refactor, RocksDB snapshots, flat storage for snap sync, block-level access lists (EIP-7928), initial zkEVM groundwork, and a large round of JSON-RPC and EVM hot-path optimizations.

Breaking changes

  • eth/66 and eth/67 dropped; eth/69 is now default and eth/70 added and activated (#9938, #10246)
  • Engine API versioning reworked (#10786)
  • Vault and NDM code paths removed (#10478)

Highlights

Performance

State & storage

  • Worldstate backend refactor with pluggable backends (#9089)
  • RocksDB and column DB snapshots (#10080, #10262)
  • Flat storage for snap sync (#9854, #10426)
  • Discv5 nodes moved to a separate DB (#10027)

EVM extensibility

Consensus & EIPs

RPC & correctness

  • eth_estimateGas fixes (#10559); eth_getBlockByNumber canonical enforcement (#10024)
  • eth_getLogs faster (#9923); log index introduced (#8464)
  • engine_getBlobsV3 (#9942); engine_getPayloadV4 for Optimism (#10328)
  • eth_subscribe transactionReceipts (#10524)
  • debug_ block field overrides (#10405); GasCap enforced on debug/trace (#10457)
  • Hardened RPC tx validations (#10395)

Networking

  • Faster handshake parsing, Ethrex recognized (#9935)
  • Discovery v5 optimized (#10081); better peer decentralization (#10090)

Chain-specific

  • Taiko/Surge: Shasta changes, Hoodi activation, TDX attestation (#9998, #10406, #9954)
  • XDC: P2P layer, EIP-1559, fast sync, penalty/reward handlers (#10615, #10277, #10549)
  • OP Superchain: rolling updates

Flat DB (opt-in)

Nethermind 1.37.0 ships a new Flat DB state backend that stores the latest state as flat account/storage records instead of walking the Merkle-Patricia trie. Faster random reads, streaming snap serving, and per-column cache budgets. Disabled by default — opt in with --FlatDb.Enabled=true.

Activation

--FlatDb.Enabled=true

This swaps FlatWorldStateModule in for the pruning-trie wiring, disables admin_prune / admin_verifyTrie, and force-enables Sync.SnapServingEnabled=true.

Migration from an existing pruning-trie DB

Set the import flag alongside Enabled:

--FlatDb.Enabled=true 
--FlatDb.ImportFromPruningTrieState=true

Run the node. On first boot the ImportFlatDb step streams the head state into the flat DB and then exits cleanly (exit code 0). Just restart the node — the flag can stay on. On subsequent boots the step detects the populated flat DB, logs Flat db already exist, and returns without exiting, so the node proceeds to normal operation. There is no automatic in-place migration without the flag: if you enable Flat DB on a node that already has pruning-trie data and don't set ImportFromPruningTrieState, the flat DB is simply empty and you'll sync from scratch.

FlatLayout.PreimageFlat cannot be the import target (the importer uses raw hash-keyed writes) — use Flat or FlatInTrie for the import run.

Layouts — -FlatDb.Layout

Value Notes
Flat (default) Flat entries in a dedicated column DB with Hyper Clock caches (30% Account / 70% Storage of BlockCacheSizeBudget).
FlatInTrie Entries embedded into trie leaves. FlatRocksDbConfigAdjuster adds optimize_filters_for_hits=true, partitioned filters, two-level index — lower memory, higher tail latency.
PreimageFlat Preimage-DB-keyed layout. Requires a preimage DB populated via --FlatDb.EnablePreimageRecording=true on an earlier run.

Default-value changes

Implicit flips

  • Sync.SnapServingEnabled is force-true whenever FlatDb.Enabled=true (FlatWorldStateModule intercepts ISyncConfig). A -Sync.SnapServingEnabled=false passed alongside Flat DB is silently overridden.
## Overview

530 Changes across 2,643 Files. Major worldstate backend refactor, RocksDB snapshots, flat storage for snap sync, block-level access lists (EIP-7928), initial zkEVM groundwork, and a large round of JSON-RPC and EVM hot-path optimizations.

Breaking changes

  • eth/66 and eth/67 dropped; eth/69 is now default and eth/70 added and activated (#9938, #10246)
  • Engine API versioning reworked (#10786)
  • Vault and NDM code paths removed (#10478)

Highlights

Performance

State & storage

  • Worldstate backend refactor with pluggable backends (#9089)
  • RocksDB and column DB snapshots (#10080, #10262)
  • Flat storage for snap sync (#9854, #10426)
  • Discv5 nodes moved to a separate DB (#10027)

EVM extensibility

Consensus & EIPs

RPC & correctness

  • eth_estimateGas fixes (#10559); eth_getBlockByNumber canonical enforcement (#10024)
  • eth_getLogs faster (#9923); log index introduced (#8464)
  • engine_getBlobsV3 (#9942); engine_getPayloadV4 for Optimism (#10328)
  • eth_subscribe transactionReceipts (#10524)
  • debug_ block field overrides (#10405); GasCap enforced on debug/trace (#10457)
  • Hardened RPC tx validations (#10395)

Networking

  • Faster handshake parsing, Ethrex recognized (#9935)
  • Discovery v5 optimized (#10081); better peer decentralization (#10090)

Chain-specific

  • Taiko/Surge: Shasta changes, Hoodi activation, TDX attestation (#9998, #10406, #9954)
  • XDC: P2P layer, EIP-1559, fast sync, penalty/reward handlers (#10615, #10277, #10549)
  • OP Superchain: rolling updates

Flat DB (opt-in)

Nethermind 1.37.0 ships a new Flat DB state backend that stores the latest state as flat account/storage records instead of walking the Merkle-Patricia trie. Faster random reads, streaming snap serving, and per-column cache budgets. Disabled by default — opt in with --FlatDb.Enabled=true.

Activation

--FlatDb.Enabled=true

This swaps FlatWorldStateModule in for the pruning-trie wiring, disables admin_prune / admin_verifyTrie, and force-enables Sync.SnapServingEnabled=true.

Migration from an existing pruning-trie DB

Set the import flag alongside Enabled:

--FlatDb.Enabled=true 
--FlatDb.ImportFromPruningTrieState=true

Run the node. On first boot the ImportFlatDb step streams the head state into the flat DB and then exits cleanly (exit code 0). Just restart the node — the flag can stay on. On subsequent boots the step detects the populated flat DB, logs Flat db already exist, and returns without exiting, so the node proceeds to normal operation. There is no automatic in-place migration without the flag: if you enable Flat DB on a node that already has pruning-trie data and don't set ImportFromPruningTrieState, the flat DB is simply empty and you'll sync from scratch.

FlatLayout.PreimageFlat cannot be the import target (the importer uses raw hash-keyed writes) — use Flat or FlatInTrie for the import run.

Layouts — -FlatDb.Layout

Value Notes
Flat (default) Flat entries in a dedicated column DB with Hyper Clock caches (30% Account / 70% Storage of BlockCacheSizeBudget).
FlatInTrie Entries embedded into trie leaves. `FlatRocksDbConfigAdjuste...
Read more

v1.36.2

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 25 Mar 13:12
f5507de

Release Notes

Note

This release is only required for Gnosis Chain node operators. All other networks are unaffected.

Overview

This release enables the Osaka hard fork on the Gnosis Chain.

Fork Details

  • Epoch: 1714688
  • Timestamp: 1776168380 Tue Apr 14 2026 12:06:20 UTC

What's Changed

Full Changelog

1.36.1...1.36.2

Build signatures

The packages are signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E

v1.36.1

Choose a tag to compare

@core-repository-dispatch-app core-repository-dispatch-app released this 06 Mar 13:56
80eccc1

Release Notes

Note

This release is only required for Chiado testnet (Gnosis Chain) node operators. All other networks are unaffected.

Overview

This patch release enables the Osaka hard fork on the Chiado testnet, allowing operators and developers to test Osaka fork behavior on Chiado before Gnosis mainnet activation.

Fork Details

  • Slot: 21651456
  • Timestamp: 1773653580 (March 16, 2026 09:33:00 UTC)

What's Changed

Full Changelog

1.36.0...1.36.1