| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| nethermind-2.2.0-1d2aff00-windows-x64.zip.asc | 2026-10-16 | 833 Bytes | |
| nethermind-2.2.0-1d2aff00-macos-x64.zip.asc | 2026-10-16 | 833 Bytes | |
| nethermind-2.2.0-1d2aff00-linux-x64.zip.asc | 2026-10-16 | 833 Bytes | |
| nethermind-2.2.0-1d2aff00-macos-arm64.zip.asc | 2026-10-16 | 833 Bytes | |
| nethermind-2.2.0-1d2aff00-linux-arm64.zip.asc | 2026-10-16 | 833 Bytes | |
| nethermind-2.2.0-1d2aff00-windows-x64.zip | 2026-10-16 | 110.0 MB | |
| nethermind-2.2.0-1d2aff00-linux-arm64.zip | 2026-10-16 | 114.0 MB | |
| nethermind-2.2.0-1d2aff00-linux-x64.zip | 2026-10-16 | 118.0 MB | |
| nethermind-2.2.0-1d2aff00-macos-arm64.zip | 2026-10-16 | 108.8 MB | |
| nethermind-2.2.0-1d2aff00-macos-x64.zip | 2026-10-16 | 114.0 MB | |
| nethermind-2.2.0-1d2aff00-ref-assemblies.zip | 2026-10-16 | 2.0 MB | |
| README.md | 2026-10-16 | 114.9 kB | |
| v2.2.0 source code.tar.gz | 2026-10-16 | 21.5 MB | |
| v2.2.0 source code.zip | 2026-10-16 | 26.3 MB | |
| Totals: 14 Items | 614.9 MB | 0 | |
Release notes
586 merged pull requests since 2.1.0, from 31 contributors.
[!IMPORTANT] Hoodi: Glamsterdam activates on Mon, 26 Oct 2026, 17:42:48 UTC (timestamp
1793036568, epoch132352). Hoodi nodes must run 2.2.0 or later before then. Your consensus client must support Glamsterdam on Hoodi as well.[!NOTE] Upgrading from 2.0.x or 1.39.x? The breaking changes below cover 2.1.0 → 2.2.0 only. Apply the 2.1.0 breaking changes first (and, from 1.39.x, the 2.0.0 breaking changes and upgrade checklist).
For most nodes this is an in-place upgrade with no resync and no config change. Read Breaking changes first if you set JsonRpc.Host / JsonRpc.EngineHost to a host name, run with Init.DiagnosticMode=VerifyTrie or FlatDb.ImportFromPruningTrieState=true, use KeyStore.BlockAuthorAccount, pipeline requests over WebSocket or IPC, consume Parity-style trace_* output, or build plugins against Nethermind.
Highlights
- Amsterdam (Glamsterdam) on Hoodi. The fork is scheduled at
1793036568(Mon, 26 Oct 2026, 17:42:48 UTC), and Hoodi's chainspec now carries its correct beacon-chain genesis timestamp. (#14489, [#13732]) - Catch up finalized blocks from block access lists. On chains with EIP-7928, a node that is behind rebuilds the state of consensus-finalized ancestors from their verified block access lists and receipts instead of executing them, and executes only the unfinalized tail. It is on by default (
Sync.ReconstructFinalizedStateFromBlockAccessLists=true). Missing data or a commitment mismatch falls back to execution. (#14157) - Faster tracing on Amsterdam blocks. A single-transaction trace (
debug_traceTransaction,trace_transaction,trace_replayTransaction) on a block with a block access list no longer replays the transactions before the target, and whole-block traces run in parallel. All parallel block tracing now shares one node-wide budget,JsonRpc.TraceBlockParallelism(default 4). (#13906, [#14363]) - Blocks that load many large contracts. Glamsterdam allows 64 KiB contracts and 200M-gas blocks, so one block can touch ~58k distinct maximum-size contracts. The code DB moves from Snappy to LZ4 (mean block time on such a devnet range 2.6 s → 1.7 s, no block ≥ 6 s), missed code is copied once instead of twice (allocations per block 7.17 → 3.59 GB), and a block keeps the code it loaded for the rest of the block. (#13907, [#14086], [#14322])
- Lower
engine_newPayloadlatency. Storage trie nodes on the flat backend are written after the block is reported valid, committed storage writes are applied on an idle thread during execution, block-processing stages share one worker budget, sender recovery no longer competes with the transactions root, Kestrel reads large payload bodies in 64 KiB blocks, and the payload pipeline is warmed before RPC opens (first-payload latency 66.8 ms → 5.4 ms in the PR's measurement). (#14058, [#14059], [#14182], [#14164], [#14213], [#14443], [#13931], [#14481]) - Prewarmer hand-off. Block processing takes over a transaction the prewarmer already executed when its recorded footprint matches the state the block has reached, instead of executing it again (hidden
Blocks.PreWarmHandoff, on by default; not used for blocks with a block access list or under EIP-8037). (#14312, [#14476]) - Parity-style trace standardisation. A long series of
trace_*fixes aligns Nethermind with the draft trace spec (execution-apis#890) and with Erigon/Reth: failed precheck frames, reverted-frame results, Parity error labels,trace_filtermode/blockHash,trace_getbytraceAddresspath,nullfor unknown transactions, and stricter parameter validation. Several of these change output; see Breaking changes. (#13957, [#13981], [#13857], [#14111], [#13858], [#13937]) - Geth-compatible debug tracing.
keccak256PreimageTracer, Geth opcode-logger byte limits,debug_traceCalltxIndex, block-widecallTracerlog indices, corrected trace-file records, and per-request V8 runtimes so JavaScript traces run in parallel. (#13662, [#13670], [#13700], [#13693], [#13709], [#13727], [#13737], [#13541]) - Faster JSON-RPC serialization. Blocks, RPC transactions and logs are written by source-generated writers (full
eth_getBlockByNumberwith 200 txs −13% time / −93% allocations;eth_getLogsof 1,000 logs −14%), and public WebSocket/IPC connections process up to 16 requests concurrently. (#14299, [#14345]) - New
mainnet_aztecconfig with a rolling 4,096-block trace window on the flat-history backend and the per-transaction trace index. (#14038) - SendPolicy plugin (opt-in). Checks every transaction submitted through the node's JSON-RPC against an owner-written rule file (allowed senders/destinations, token-call allow-lists, fee and spend caps) and refuses the ones that break it. Off by default (
SendPolicy.Enabled=false). (#14396) - Next-fork prototypes (not scheduled on any public network). EIP-8141 frame transactions with EIP-8250 keyed nonces and EIP-8272 recent roots, EIP-7979, EIP-8131, EIP-3298, EIP-7668, EIP-8253, EIP-8279. They activate only through explicit chainspec/genesis keys or the Bogota fork alias. (#12526, [#13932], [#13929], [#13928], [#13934], [#13943], [#13942], [#14386])
Performance
- Code DB on LZ4: on a Glamsterdam devnet range of blocks that each read ~3.7 GB of 64 KiB code, mean block time fell from 2.58–2.63 s to 1.70–1.72 s and the slowest block from 7.8 s to 5.3 s (measured on LZ4-recompacted files); point reads of large values 88–93 µs → 47–49 µs; the code DB shrank 475 MB → 303 MB. New and compacted SST files use LZ4. (#13907)
- Large-contract blocks: missed code is copied once (−31% block time, −50% allocations on a 58k × 64 KiB block); code reads no longer fill the RocksDB row cache, which is turned off for the code DB. (#14086)
- Payload start-up: median first-payload latency 66.8 ms → 5.4 ms with the pipeline warm-up (process start to first VALID +0.8 s; disable with
Init.PipelineWarmupEnabled=false). The ~2 s KZG trusted-setup load is no longer on the startup critical path. (#13931, [#13998]) - JSON-RPC: generated writers for blocks/transactions/logs (−13–27% time, up to −93% allocations), fewer passes over request and batch bodies, allocation-free filter binding,
newHeadsserialized once for all subscribers. (#14299, [#14187], [#14197], [#14198], [#14195], [#13894]) - RLP: built-in transaction types encode/decode without virtual dispatch (legacy encode −29%, EIP-1559 encode −11%). (#14455)
- EVM: a long series of interpreter micro-optimisations (frameless MLOAD/MSTORE, padded code copy without end-of-code checks, cheaper DUP/EXP/SUB/SIGNEXTEND, per-depth call frame reuse, cached EIP-7702 delegation targets). (#14028, [#13896], [#13893], [#13878], [#13802], [#14139], [#13799] and others)
- Flat backend reads: a bloom filter lets read-only execution (
eth_call,eth_estimateGas,eth_createAccessList,eth_simulateV1, traces) skip in-memory layers for slots none of them wrote (FlatDb.InMemorySnapshotBloomBitsPerKey, default 14). The carry-forward slot cache becomes a fixed 64 MB set-associative table. (#14094, [#14330], [#14027]) - Tracing: streamed struct logs flush every 1 MiB so a slow reader no longer holds hundreds of MB per request;
trace_filterstops oncecounttraces are collected. (#14461, [#13890]) - Networking: inbound transaction admission is budgeted before decoding (16 MiB per peer, 64 MiB total), oversized broadcast transactions are skipped before decoding, eth/snap response request IDs are checked before decoding, and discovery runs on a plain UDP socket instead of DotNetty. (#14434, [#13506], [#14184], [#14346])
- Transaction pool: an underpriced replacement of a set-code, blob or frame transaction is rejected before its authorization signatures are recovered or its blob proofs checked. (#14577)
- zkVM guests: dozens of ZisK/SP1 guest optimisations (precompile-backed 256-bit arithmetic, Keccak and SHA-256, register-based dispatch, cheaper trie and witness handling) and tests-zkevm v21.0.1. (#14232, [#14217], [#13975], [#14402], [#14118] and others)
⚠️ Breaking changes
If you run a node (config and startup)
JsonRpc.Host,JsonRpc.EngineHostandAdditionalRpcUrlshost names are resolved and bound to their addresses. Before, any host that was not an IP literal orlocalhostmade Kestrel listen on all interfaces. Now the node listens only on the addresses the name resolves to; if it cannot resolve or resolves to a wildcard address, JSON-RPC does not start (the node keeps running and logs the host). Migration: behind NAT or with public DNS, configure a local interface IP; with Docker service names, point health checks at the bind address; to keep listening on every IPv4 interface, set the host to0.0.0.0explicitly. IP literals,localhost,*and+are unchanged. (#13746)Init.DiagnosticMode=VerifyTrieandFlatDb.ImportFromPruningTrieState=truenow run only their step and exit, instead of doing the work mid-boot and continuing into a normal start. Equivalent commands:nethermind verify-trieandnethermind import-flat-db.verify-triereports its verdict through the exit code (and fails on a DB with no head); the import fails if there is nothing to import. Migration: run the import/verification as a one-off, then remove the setting before starting the node normally. (#13715)KeyStore.BlockAuthorAccountwhose key cannot be loaded is now a configuration error on nodes with mining enabled (Clique, AuRa and XDC stop at startup). Before, the node fell back to sealing with the node key. Nodes that leave it unset are unaffected. (#14290)- The node refuses to start when
JsonRpc.WebSocketsPortequals the engine port andInit.WebSocketsEnabled=true. Before, it started without an Engine API and only logged a warning. Use a differentWebSocketsPort. (#14285) - WebSocket and IPC connections process up to 16 requests concurrently (
JsonRpc.WebSocketsProcessingConcurrencyandJsonRpc.IpcProcessingConcurrency1 → 16), so pipelined requests on one public connection can be answered out of order — match responses byid. A batch is still processed and answered in order. Authenticated/Engine connections, and IPC whenJsonRpc.EnabledModulesincludes Engine, still process one request at a time. Migration: set the option to1if a client relies on ordering (for example, pipelined dependent blob transactions with consecutive nonces). (#14345) - Buffered struct-log traces are capped at 256 MiB of opcode log per transaction (new
JsonRpc.MaxBufferedTraceLogSize); larger non-streamed traces are truncated like a callerlimit. Set0for the previous unlimited behaviour. (#14460) eth_sendRawTransactionSyncconcurrency is capped by the newJsonRpc.RpcTxSyncMaxConcurrentRequests(default 128;0disables). Calls over the cap fail immediately with-32005(HTTP 503) before the transaction is submitted. (#13735)- TraceStore serves only the trace types it recorded and falls back to live tracing otherwise; with
TraceStore.TraceTypes=Tracealone,trace_blockandtrace_filternow need historical state (configureTraceandRewardsto serve them from the store). On pruned nodes these can return a missing-state error instead of incomplete output. (#14123) - Log and metric changes: snap sync logs
Phase 1 of 2/State Sync (Phase 2 of 2, healing)instead of the misleading healing percentage (#14308, [#14344]); flat DB metricnethermind_carry_forward_slot_wipesis replaced bynethermind_carry_forward_slot_evictions(one eviction = one entry, do not reuse wipe thresholds) (#14027). Update dashboards and log alerts that match the old strings. FlatDb.HistoryTransactionIndexTraceParallelismis deprecated in favour ofJsonRpc.TraceBlockParallelism; a non-zero value still overrides it. (#14363)- A block that takes longer than 3 minutes to process is abandoned without a verdict (new
Blocks.BlockProcessingTimeoutMs, default180000;0disables). It applies only to the main block-processing loop, not to tracing, simulation or block production. The block is not marked invalid,engine_newPayloaddoes not answerINVALIDfor it, and it can be processed again; each consecutive retry of the same block gets twice the time, up to 16×. The node logsProcessing block <hash> took longer than <n> ms; abandoned without a verdictat Error. Migration: on slow hardware that legitimately needs longer (for example, a full sync through unusually heavy historical blocks), raise the value or set it to0. (#14487)
If you integrate over JSON-RPC / Engine API
Parity-style trace_* (most changes follow the draft trace spec in execution-apis#890):
trace_getreturns a single trace object ornull, not an array. Its argument is onetraceAddresspath:[]is the root,["0x6","0x0"]is the first child of child 6. Migration: read an object/null; to address by flat position, index the result oftrace_transaction. (#13858)- Reverted frames in Parity traces (
trace_*) now includeresult: {gasUsed, output}next toerror: "Reverted"(CREATE included, withoutaddress/code). In 2.1 onlyerrorwas present; exceptional halts still have noresult. Error labels are renamed:Stack overflow→Out of stack,Access violation→Out of bounds,Static call violation→Mutable Call In Static Context, the genericErrorfor an EIP-35410xEFcode prefix →Invalid code, andTransactionCollision→Contract address collision. This aligns Nethermind with Geth, Erigon and reth. Traces already saved by TraceStore keep the old labels until traced again. Migration: consumers that read "noresult" as "failed" must checkerror; update any matching on the old labels. (#13981) - A CALL that fails its balance or call-depth precheck now appears as a failed frame in both
callTracer(error: "insufficient balance for transfer"/"max call depth exceeded") and Parity output (Insufficient balance for transfer/Max call depth exceeded, noresult). A CREATE that fails its precheck is reported the same way, and a colliding CREATE2 gets a failed frame withContract address collision(callTracergasUsedequals itsgas). The parent'ssubtracesand later siblings'traceAddressshift accordingly. InvmTrace, thecostof such a CREATE now includes the gas it forwarded, and the operation after a collision starts with the gas actually left. This matches Geth and Erigon. (#13957, [#13958]) vmTraceex.store.key/ex.store.valare minimal hex quantities (0x0,0x1) instead of a padded word / byte string. (#13780) DUPn now reports n + 1pushvalues (#13781); bufferedmem.offis a number (#13940).trace_filtervalidation: unknown members, negativeafter/count, and an unknownmodereturn-32602(#14050, [#13857]);mode: "union"is now honoured and an emptyfromAddress/toAddressarray behaves like an omitted one, so some requests that returned[]now return records (#13857). A block hash is no longer accepted asfromBlock/toBlock— use the newblockHashmember (#14111). Bounds past the head or reversed return-32602(#14040, [#13935]). Post-merge blocks no longer produce zero-value reward records, which shifts pagination over PoS ranges (#13938).pendingis rejected (-32602) bytrace_call,trace_callMany,trace_block,trace_replayBlockTransactionsandtrace_filter, instead of silently tracinglatest.eth_*anddebug_*are unchanged. (#13936)trace_rawTransactionrejects a signed gas limit aboveJsonRpc.GasCap(-38026) instead of lowering it; raise the cap to trace larger transactions (#14060). It also validates the transaction like block inclusion (nonce, sender code, chain ID, fee cap vs base fee) instead of tracing it with the sender's nonce (#14091, [#14048]).trace_transaction,trace_getandtrace_replayTransactionreturnnullfor an unknown transaction instead of-32000, including transactions outside theTxLookupLimitwindow. (#13937, [#14037])trace_call/trace_callManyerrors use theeth_simulateV1codes (e.g.-38014insufficient funds,-38015batch over block gas limit) instead of-32000; messages are unchanged. A mismatchedchainIdis-32602. (#14158, [#13956])trace_call/trace_callManycalls without a price run withBASEFEE0, aseth_call,debug_traceCallandeth_simulateV1already did. A call with no fee fields,gasPrice0, or both fee caps 0 used to see the block's base fee; intrace_callManyeach unpriced call now getsBASEFEE0 and each priced call the block's. A call whose execution depends onBASEFEEcan therefore return a differentoutput,vmTraceandstateDiff. Migration: setgasPriceormaxFeePerGasto trace against the block's base fee. (#14045)
Other JSON-RPC:
- Call objects with both
dataandinputset to different values are rejected with-32602. Send calldata ininput(or both, equal). An explicitnullinputno longer clears calldata given indata, and an explicitnullforaccessList,blobVersionedHashesorauthorizationListno longer selects a transaction type. (#14089, [#14049], [#13897]) eth_sendTransaction(node wallet) on a post-London network with zero base fee rejectsgasPrice: 0x0/maxFeePerGas: 0x0. Send a non-zero fee or sign locally and useeth_sendRawTransaction. (#14375)eth_sendRawTransactionSynctimeouts return EIP-7966 error code4with the transaction hash indata, instead of-32016without data, so a client can keep polling for the receipt. (#13820)- Blob calls without a positive
maxFeePerBlobGasrun at a blob base fee of 0 ineth_call,eth_estimateGas,trace_callandtrace_callMany(Geth behaviour). (#14092) eth_simulateV1drops logs from reverted inner frames while keeping log indices aligned with Geth. (#13979, [#14062])eth_call/eth_estimateGasreport precompile input failures with go-ethereum's error text;eth_estimateGasno longer reports them asgas required exceeds allowance. (#14281)debug_setHead/debug_resetHeadare now guarded rewinds: pause withadmin_pauseBlockProcessingand let processing drain first, then resume withadmin_resumeBlockProcessing. While paused, everyengine_forkchoiceUpdatedreturnsSYNCING(including with payload attributes), so the node builds no payloads until resumed. (#13558)- Engine API:
engine_newPayloadV3+ rejects omitted ornullpayload fields;engine_newPayloadV3/V4outside their fork window return Unsupported fork (incomplete payloads there get invalid params); a forkchoice to a processed block whose state was pruned no longer moves the head, and a resubmitted known block whose state was pruned is re-executed instead of answered VALID. (#14025, [#14024], [#14131], [#14366], [#13686])
If you build against Nethermind (plugin / library authors)
These are source-breaking changes: rebuild your plugins against 2.2.0.
IReadOnlyStateProvider.GetCodeandIWorldStateScopeProvider.ICodeDb.GetCodereturnReadOnlyMemory<byte>instead ofbyte[](default= not served). (#14086)BlockForRpc.Transactionsis typed asBlockTransactions(hashes or full transactions). (#14299)- Built-in transaction decoders are no longer generic over the transaction type and drop their
protected virtualhooks;BaseAccessListTxDecoderandOptimismLegacyTxDecoderare removed (LegacyTxDecodertakesallowEmptySignature). (#14455) ICommitter/IBlockCommitterquota methods are replaced byTryEnableParallelCommit/SupportsParallelCommit; the quota constructor parameter is removed fromFlatStorageTreeandAbstractMinimalCommitter. (#13988)WaitHandleExtensions(WaitOneAsync) is removed. (#13945)TxPoolTxSource.GetOrderedTransactions(protected virtual) takes an additionalIReleaseSpec specparameter; overrides must add it. (#14304)- Custom
ITxTracerimplementations receive paired instruction callbacks (ReportOperationRemainingGasonly after a reportedStartOperation; resumes viaReportGasUpdateForVmTrace). (#13551) - Init steps can be declared as standalone commands with
[StepCommand]; a step carrying it never runs during a normal start. (#13715)
Consensus / protocol (prototype forks only)
- The EIP-8272 recent-root contract moves to
0x8272D9679689Ea2f307140CdF9002D27dC00Ffffand is deployed by an ordinary pre-signed transaction instead of being installed at activation; the EIP-8250 nonce manager and EIP-8141 expiry verifier follow the same model. (#14437, [#14438], [#14378]) - EIP-7708 finalization logs are emitted in destroy order. Not observable on any shipped configuration (Amsterdam enables EIP-8246, which suppresses them). (#13568)
Default and configuration changes
Diffed I*Config.cs defaults and Nethermind.Runner/configs/*.json between 2.1.0 and 2.2.0.
Changed defaults
| Key | 2.1.0 | 2.2.0 | PR |
|---|---|---|---|
JsonRpc.WebSocketsProcessingConcurrency |
1 |
16 |
[#14345] |
JsonRpc.IpcProcessingConcurrency |
1 |
16 |
[#14345] |
Db.CodeDbRowCacheSize (hidden) |
16 MiB | unset (no row cache) | [#14086] |
Db.CodeDbRocksDbOptions (hidden) |
Snappy (inherited) | compression=kLZ4Compression; prepended |
[#13907] |
New settings
| Key | Default | Purpose | PR |
|---|---|---|---|
Sync.ReconstructFinalizedStateFromBlockAccessLists |
true |
Rebuild finalized ancestors from verified BALs instead of executing them (EIP-7928 chains only) | [#14157] |
Init.PipelineWarmupEnabled |
true |
Warm the payload pipeline before RPC opens | [#13931] |
JsonRpc.TraceBlockParallelism |
4 |
Node-wide parallel block-trace budget | [#13906], [#14363] |
JsonRpc.MaxBufferedTraceLogSize |
268435456 (256 MiB) |
Cap on non-streamed struct-log size per tx; 0 = unlimited |
[#14460] |
JsonRpc.RpcTxSyncMaxConcurrentRequests |
128 |
Cap on concurrent eth_sendRawTransactionSync; 0 disables |
[#13735] |
FlatDb.DeferStorageTrieCommit |
true |
Write storage trie nodes after the block is reported valid | [#14058] |
FlatDb.ApplyStorageWritesOnIdleThread |
true |
Apply committed storage writes on an idle-priority thread | [#14059] |
FlatDb.MaxInMemorySnapshotBytes |
0 (off) |
Byte budget for the in-memory snapshot window | [#13972] |
FlatDb.InMemorySnapshotBloomBitsPerKey |
14.0 |
Negative filter for read-only slot reads; 0 disables |
[#14094] |
SendPolicy.Enabled / RulesPath / JournalPath / WarnOnly |
false / null / null / false |
SendPolicy plugin | [#14396] |
TxPool.FrameTx* (9 keys) |
— | EIP-8141 frame-transaction pool limits (prototype) | [#12526] and follow-ups |
Blocks.PreWarmHandoff, Blocks.PrefetchBlockAccessListCode (hidden) |
true, false |
Prewarmer hand-off; BAL code prefetch | [#14312] |
Blocks.BlockProcessingTimeoutMs |
180000 (3 min) |
Abandon a block that takes longer to process, without a verdict; each retry gets twice the time (up to 16×); 0 disables |
[#14487] |
Deprecated: FlatDb.HistoryTransactionIndexTraceParallelism (hidden; use JsonRpc.TraceBlockParallelism). Removed keys: none.
Bundled configs: new mainnet_aztec.json; sync pivots refreshed for op-mainnet, op-sepolia, worldchain-mainnet, worldchain-sepolia; OP Superchain chainspecs refreshed (#13944, [#14231]). Chains/hoodi.json gains amsterdamTime and beaconChainGenesisTimestamp.
Sync, database & state
- A block access list sync stops at the EIP-7928 activation block instead of scanning back to genesis. (#14368)
- Snap sync warns when a restart discards existing flat state and reports how long the wipe took. (#14297)
- Account wipes survive BAL healing; TreeSync node dependencies are resolved atomically. (#14156, [#14051])
- Unanchored forks stay out of bulk snapshot conversion; carry-forward generation is rechecked after a cache hit. (#13997, [#14026])
- A periodic log line reports how far the head is behind the chain tip and the estimated catch-up time. (#10892)
- The flat import reports progress at Info every 60 s. (#13724)
- During snap sync, a flat-DB node answers JSON-RPC reads of
latestat once with a missing-state error, instead of retrying for 5 s and failing with-32603. (#14635)
JSON-RPC & tracing
eth_call,eth_estimateGasandeth_createAccessListtreat anullor zeroJsonRpc.GasCapas uncapped instead of failing every request. (#14001)eth_createAccessListfills the missing half of a fee pair: the suggested priority fee next to amaxFeePerGas, or the priority fee plus twice the base fee next to amaxPriorityFeePerGas. (#14377)- Code written during a call replaces a
stateOverridecode override for the rest of the call ineth_call,eth_estimateGas,eth_simulateV1,trace_callanddebug_traceCall. (#14114) eth_simulateV1on Amsterdam applies theblobBaseFeeandmovePrecompileToAddressoverrides, and simulated blocks carry a slot number, soSLOTNUMworks. (#14057, [#13688])eth_getLogsrejects a reversed range that ends at block zero (latesttoearliest) with-32602, as it already did for other reversed ranges. (#13999)trace_blockandtrace_replayBlockTransactionsreturn[]for the genesis block instead ofheader not found. (#13783, [#13801])trace_filteraddress filters match rewards by their author, and match a failed CREATE only by its creator. (#13800, [#14039])trace_call/trace_callManyreject a priority fee above the fee cap witheth_call's reason;debug_traceCallrejectsstateandstateDiffoverrides for the same account. (#14046, [#14359])- Streamed traces that fail return a complete error instead of a truncated success. An unknown JavaScript tracer name is rejected before a JavaScript engine is created, and
ctx.txIndexreports the transaction's position in its block. (#13666, [#13529], [#14249]) - TraceStore reads stored
vmTraceandstateDifftraces, selects them like live replay, and serves stored transaction traces only from canonical blocks. (#14093, [#14115], [#14122]) - RPC metrics and stats use the dispatched method name, so whitespace variants no longer create separate labels. (#14194)
Engine API & block processing
engine_getPayloadV3/V4choose their fork window by whether execution requests are enabled, not by EIP-7623. (#13833)- A block
engine_newPayloadhas already accepted stays queued for processing when the request's time budget runs out; the request still answersSYNCING. (#14337) - At startup, a side branch with no ancestor state is dropped instead of re-executing genesis on an empty state. (#14324)
- The transaction pool re-adds the transactions of every block the head rewinds past. (#14492)
- The pre-merge block producer is stopped on shutdown. (#14168)
Networking & protocol
- discv4: Ping forward compatibility, verified ENRs retained for mismatched PING endpoints, EIP-1459 DNS tree-root signatures verified, second Hello disconnects the peer, a pong completes a ping only when it comes from the pinged endpoint. (#14151, [#14277], [#14183], [#13832], [#14576])
- Concurrent node-filter acceptance is serialised; rejected peer candidates back off. (#14381, [#14190])
Stability & hardening
- .NET libraries updated to the October 2026 servicing release, which carries Microsoft's security fixes (.NET 10.0.13 CVE list) (#14628):
- 10.0.12 → 10.0.13:
Microsoft.AspNetCore.DataProtection,Microsoft.AspNetCore.DataProtection.Extensions,Microsoft.Extensions.Caching.Memory,Microsoft.Extensions.DependencyInjection,Microsoft.Extensions.FileProviders.Embedded,Microsoft.Extensions.Logging.Abstractions,Microsoft.Extensions.Logging.Console,Microsoft.Extensions.ObjectPool,System.Configuration.ConfigurationManager,System.IO.Hashing,System.Security.Cryptography.ProtectedData - 2.0.12 → 2.0.13:
System.CommandLine - 10.0.401 → 10.0.402 (build-time only):
Microsoft.Build.Tasks.Git,Microsoft.SourceLink.GitHub Nethermind.RocksDbBindingsupdated to the stable11.8.1.153. (#14617)- Docker images run on .NET 10.0.13: runtime base
aspnet:10.0.13-resolute(and-resolute-chiseled), build SDK10.0.402, so the runtime and ASP.NET Core fixes of the same servicing release ship in the images too. (#14632)
L2 & other chains
- Optimism: Jovian operator fee and DA footprint reported in receipts (#13811); the sequencer's error is returned when forwarding
eth_sendRawTransaction(#13815); EIP-1559 params with zero elasticity and a non-zero denominator are rejected (#13816). - Taiko: Shasta headers whose
extraDatais not exactly 7 bytes are rejected. (#13817) - XDC:
XDPoS_getV2Block*header encoding andXDPoS_getMissedRoundsInEpochByBlockNumbefore the V2 switch fixed. (#14175, [#14008]) - Shutter: missed keys are counted atomically. (#14238)
Glamsterdam fork on Hoodi
| Network | Epoch | Start slot | Unix | UTC |
|---|---|---|---|---|
| Hoodi | 132352 | 4235264 | 1793036568 | Mon, 26 Oct 2026, 17:42:48 UTC |
Fork hash after activation: 0x3d068b59 (#14489). Your consensus client must support Glamsterdam as well. Check your CL's release notes for its Hoodi Glamsterdam release. Sepolia activated Glamsterdam on 06 Oct 2026 (2.1.0). Mainnet is not scheduled.
Build signatures
The packages are signed with the following OpenPGP key: AD12 7976 5093 C675 9CD8 A400 24A7 7461 6F1E 617E
What's Changed
- chore: replace version suffix with "preview" by @rubo in https://github.com/NethermindEth/nethermind/pull/13773
- ci(zkevm): simplify zkVM guest release versioning by @rubo in https://github.com/NethermindEth/nethermind/pull/13775
- feat(eip8141): implement frame transactions (EIP-8250 keyed nonces, EIP-8272 recent roots, blob support) by @svlachakis in https://github.com/NethermindEth/nethermind/pull/12526
- chore(zkevm): bump up tests-zkevm version by @rubo in https://github.com/NethermindEth/nethermind/pull/13789
- fix(evm): report DUPn vmTrace push as n + 1 words by @banteg in https://github.com/NethermindEth/nethermind/pull/13781
- fix(tracing): include forwarded gas in streamed vmTrace create cost by @banteg in https://github.com/NethermindEth/nethermind/pull/13782
- fix(rpc): return no traces for the genesis block in trace_block by @banteg in https://github.com/NethermindEth/nethermind/pull/13783
- fix(tracing): serialize vmTrace store key and value as quantities by @banteg in https://github.com/NethermindEth/nethermind/pull/13780
- feat(rpc-bench): reliable fixed-corpus eth_call A/B (corpus-ab preset, ABBA rounds, paired replay) by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/12987
- fix(tracing): report vmTrace store without stateDiff by @banteg in https://github.com/NethermindEth/nethermind/pull/13779
- fix(rpc): isolate synchronous transaction concurrency by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/13735
- Stop an unmapped peer client type aborting header sync by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13540
- fix(stateless): bind supplied public keys to transaction signatures by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13785
- fix(build): stop the SSZ generator writing to the compiler server's stdout in debug builds by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13826
- fix(monitoring): let fork-choice subscribers skip a failed preparation by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13518
- perf(evm): pass MUL/DIV/MOD operands from their stack slots by reference by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/13806
- perf(evm): resolve the jump-destination bitmap when the stack is built by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/13803
- fix: give simulated blocks a slot number so SLOTNUM works in eth_simulateV1 by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13688
- Preserve multidimensional gas in eth_simulateV1 blocks by @flcl42 in https://github.com/NethermindEth/nethermind/pull/13626
- Cover terminal opcode tracer callbacks by @flcl42 in https://github.com/NethermindEth/nethermind/pull/13625
- fix(tracing): reject an unknown tracer name before creating a JavaScript engine by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13529
- test: count a mock connect only once its session is registered by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13829
- Emit EIP-7708 finalization logs in destroy order by @flcl42 in https://github.com/NethermindEth/nethermind/pull/13568
- Report transaction access on no-frame EVM exits by @flcl42 in https://github.com/NethermindEth/nethermind/pull/13624
- Report terminal output for top-level action traces by @flcl42 in https://github.com/NethermindEth/nethermind/pull/13622
- Deplete eth_simulateV1 state gas budget by @flcl42 in https://github.com/NethermindEth/nethermind/pull/13623
- fix(blocktree): keep a lighter re-suggested fork from replacing the best suggested header by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13831
- test: wait for both handlers before asserting in Peers_are_freed_while_responses_wait_for_a_processing_slot by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13830
- test: let should_duplicate_writes_while_pruning run pruning to completion by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13827
- test: wait on the pruning task as well as the write in Will_Persist_ReCommittedPersistedNode_FromCommitBuffer by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13828
- Report EIP-8037 two-dimensional block gas used in eth_simulateV1 by @flcl42 in https://github.com/NethermindEth/nethermind/pull/13628
- test: guard the traceCallMany gas default against EIP-7825's cap under Osaka by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13729
- perf(stateless): hash the signed payload from the transaction's own bytes by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13822
- fix(rpc): match rewards by author in trace_filter address filters by @banteg in https://github.com/NethermindEth/nethermind/pull/13800
- fix(rpc): check the parent's state when tracing a transaction by index by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/13516
- perf(tools): read execution requests from a beacon node in StatelessInputGen by @stdevMac in https://github.com/NethermindEth/nethermind/pull/13794
- Pair instruction trace completions with starts by @flcl42 in https://github.com/NethermindEth/nethermind/pull/13551
- Load pyspec fixtures lazily to cut NUnit discovery memory by @flcl42 in https://github.com/NethermindEth/nethermind/pull/13557
- test: trace the simulate block-gas saturation test through a BlockReceiptsTracer by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13845
- Pass return data to tracers as ReadOnlySpan by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13844
- feat(network): reject oversized transactions before decoding by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/13506
- fix(sync): bound concurrent block access list requests per peer by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13790
- test(engine): return from SendNewBlockV2 only once the block is committed by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/13764
- fix(rpc): keep eth_feeHistory arrays aligned when an ancestor body is unavailable by @0xShadowX in https://github.com/NethermindEth/nethermind/pull/13818
- perf(core): pack ValueHash256 and Signature's vector storage to 8-byte alignment by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13837
- fix(rpc): return EIP-7966 code 4 with the tx hash when eth_sendRawTransactionSync times out by @Bruce039 in https://github.com/NethermindEth/nethermind/pull/13820
- fix(engine): gate getPayloadV3/V4 on execution requests, not EIP-7623 by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/13833
- fix(optimism): reject EIP-1559 params with a zero elasticity and non-zero denominator by @FlashWayne in https://github.com/NethermindEth/nethermind/pull/13816
- Complete guarded debug_setHead and debug_resetHead rewinds by @benaadams in https://github.com/NethermindEth/nethermind/pull/13558
- fix(optimism): return the sequencer's error when forwarding eth_sendRawTransaction by @FlashWayne in https://github.com/NethermindEth/nethermind/pull/13815
- ci(rpc-bench): serve per-client snapshot sets on the arm64 runner by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13300
- perf(diag): make the cross-block state cache observable by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/12958
- Reuse bounded buffers for nested RETURN and REVERT output by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13797
- fix(rpc): return no traces for the genesis block in trace_replayBlockTransactions by @banteg in https://github.com/NethermindEth/nethermind/pull/13801
- perf(tracing): give every JavaScript block trace its own V8 runtime by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13541
- Reduce per-thread retention of pinned EVM stacks by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13795
- test: drop redundant MaxTime from runner smoke tests by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13774
- fix: give Hoodi its beacon chain genesis timestamp by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13732
- Seed every head-derived fact at construction by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13472
- fix(stateless): reject a schema fork the chain schedule has left by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13787
- fix(tracing): handle failed precompiles without a vmTrace operation by @banteg in https://github.com/NethermindEth/nethermind/pull/13847
- test(stateless): pin the fail-closed handling of incomplete input by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13788
- docs(xdc): add a subnet setup guide to the module README by @ak88 in https://github.com/NethermindEth/nethermind/pull/12891
- perf(rpc): reuse the hash and CodeInfo of repeated state-override code by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/13808
- perf(evm): keep SUB, SHL and SHR handlers free of out-of-line calls by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/13802
- test: keep long finality off when a test replaces IFlatDbConfig by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13856
- test: give the suggest pacer's unblock continuation time to run on a loaded runner by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13853
- test(sync): drain a timed-out state sync round before starting the next by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13846
- test: wait for Changed as well as the data in FileLocalDataSourceTests by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13855
- fix(network): disconnect peers that send a second Hello by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/13832
- Reduce zero-ahead clearing for small EVM memory expansions by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13796
- perf(flat): build per-scope tries and maps on first need by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13838
- test: find the embedded leaf when a storage proof ends in a branch by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13859
- Cache EIP-7702 delegation targets in CodeInfo by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13799
- test: run the StorageCleared metric tests in their own non-parallel fixture by @benaadams in https://github.com/NethermindEth/nethermind/pull/13863
- feat(init): run a single step as a standalone command by @asdacap in https://github.com/NethermindEth/nethermind/pull/13715
- test: run simulate forced-fail tests without the production RPC timeout by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13843
- fix: create the RetryCache timer in the constructor instead of on a pool thread by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13854
- test(sync): drain a timed-out state sync round before failing the test by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13865
- Report flat import progress at Info level on a 60 s heartbeat by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/13724
- perf(state): grow heavy storage maps into pooled large maps by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13840
- perf(flat): pool flat-state buffers without per-thread copies or per-return nodes by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13839
- Tone down dated emphasis in agent rules and skills by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13792
- fix(rpc): select trace_get results by traceAddress path by @banteg in https://github.com/NethermindEth/nethermind/pull/13858
- fix: end an inclusion-list sender run at a tx skipped for size by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13382
- fix(ethash): bound peer-selected header numbers before Ethash cache construction (F-15) by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13374
- fix(txpool): track EIP-7702 authorities only for tuples valid on this chain by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13869
- perf(rpc): serialize each newHeads notification once for all subscribers by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13894
- perf(evm): write small results to the stack slot with one store by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13871
- perf(evm): store top-level deployed code without an extra copy by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13872
- perf(receipts): take the stored sender before running ecrecover by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13873
- perf(rpc): remove per-call allocations on hot RPC paths by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13874
- perf(state): skip the dead journal probe in GetOriginal without transaction snapshots by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13876
- perf(evm): compute EXP into the exponent's stack slot by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13878
- perf(evm): skip the empty log journal for plain value transfers by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13879
- perf(evm): hash the precompile cache key once by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13877
- perf(evm): check DUP stack bounds with one compare by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13893
- perf(logs): recover only log identity when eth_getLogs matches a stored block by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13892
- perf(evm): take the MCOPY fast path on inline frame memory by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13882
- perf(evm): cache the return scratch tracer check once per transaction by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13881
- perf(evm): dispatch SIGNEXTEND and JUMPDEST as checked bodies by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13891
- perf(evm): resolve cold storage access with a single set probe by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13883
- perf(trace): sort state diff entries in pooled buffers instead of LINQ by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13900
- perf(evm): resolve code through a virtual loader instead of a delegate by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13870
- perf(tracing): seed transaction traces from the block access list by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13906
- perf(state): keep the storage read shortcut per round instead of per block by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13889
- perf(evm): serve nested ID precompile frames from the precompile scratch by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13888
- perf(tracing): skip commitments of block replays nobody reads by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13884
- perf(zkevm): compare jump-destination bytes at 64 bits by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13860
- perf(evm): poll cancellation on taken jumps instead of every opcode by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13895
- perf(trace): stop trace_filter once count traces are collected by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13890
- Compute EVM zero-ahead alignment mask directly by @benaadams in https://github.com/NethermindEth/nethermind/pull/13880
- ci: skip the scheduled nightly when it would republish the same commit by @benaadams in https://github.com/NethermindEth/nethermind/pull/13864
- test: prewarm before the BAL hint in BlockCachePreWarmerTests by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13902
- test: give FileLocalDataSourceTests reload waits room for a starved thread pool by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13924
- test: keep the pending discovery candidate from flooding the storage cache by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13925
- test: keep the budget test's coordinator on the joining thread by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13926
- test: assert SeqlockCache concurrency hits across workers, not per worker by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13927
- perf(runner): warm the payload pipeline before RPC opens by @benaadams in https://github.com/NethermindEth/nethermind/pull/13931
- test: deflake blockhash allocation assertions by @benaadams in https://github.com/NethermindEth/nethermind/pull/13939
- Update OP Superchain chains by @core-repository-dispatch-app[bot] in https://github.com/NethermindEth/nethermind/pull/13944
- Replace explicit wait handles with managed cancellation and task signaling by @benaadams in https://github.com/NethermindEth/nethermind/pull/13945
- fix(rpc): preserve error responses for streamed traces by @banteg in https://github.com/NethermindEth/nethermind/pull/13666
- perf(evm): zero only the touched chunk of the inline memory tier on reads by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13962
- perf(state): TSTORE of zero looks up without inserting by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13963
- perf(evm): hoist the frame input data onto the stack by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13965
- fix(rpc): reject the pending block tag in trace methods by @banteg in https://github.com/NethermindEth/nethermind/pull/13936
- Make pruned RPC comparisons reproducible and reusable by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13660
- Check header cache before resolving block numbers by @benaadams in https://github.com/NethermindEth/nethermind/pull/13952
- Cache RocksDB read settings at database open by @benaadams in https://github.com/NethermindEth/nethermind/pull/13946
- perf: thread the opcode counter as a native int by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13862
- perf(evm): allocate create frame CodeInfo after the collision check by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13948
- perf(evm): build invalid-tx log messages only when logged by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13961
- perf: remove small recurring allocations in metrics, scopes, trie and EVM by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13841
- perf: apply and persist forkchoice state once per forkchoiceUpdated by @benaadams in https://github.com/NethermindEth/nethermind/pull/13951
- perf(evm): exempt the dispatch tail calls from NativeAOT's fat-pointer guard by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13866
- perf(evm): keep jump-destination analysis out of the zkEVM PUSH2 handler by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13868
- perf(prewarm): interrupt warm transactions when a pass is cancelled by @benaadams in https://github.com/NethermindEth/nethermind/pull/13980
- fix(txpool): drop confirmed senders from the nonce manager by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13875
- perf(flat): stop waiting on queued trie warmups at scope dispose by @benaadams in https://github.com/NethermindEth/nethermind/pull/13982
- perf(evm): skip per-tx opcode table and implicit-stop lookups by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13947
- fix: keep AssociativeCache reads from missing a key while it is rewritten by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13960
- perf(zkevm): trim guest startup work in loggers, hex-prefix paths and system-call hashes by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13918
- test: derive the Shutter test header bloom from stored receipts on every lookup by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13973
- perf(db): compress the code database with LZ4 by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13907
- fix(txpool): skip used nonces when a reservation catches up to the account nonce by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13941
- perf(flat): hash the pooled resource metric label once by @benaadams in https://github.com/NethermindEth/nethermind/pull/13986
- perf(evm): skip re-validating memory ranges already charged for by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13950
- perf(evm): share the topic 0 instance across repeated logs by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13949
- fix: resolve the session conflict when an incoming session attaches during a dial by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13903
- Clear sparse access journals by removing recorded entries by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13798
- chore: Update Dockerfiles by @core-repository-dispatch-app[bot] in https://github.com/NethermindEth/nethermind/pull/13987
- test: time only the disposal in the CompositeNodeSource enumeration test by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13955
- perf(zkevm): cheaper address and storage-cell hashing in the guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13887
- perf(trie): trim the node resolve and branch encode paths by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13919
- perf: keep Rlp beforefieldinit, move constructor throws out of line and bind composite tx validators once by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13920
- fix(taiko): reject Shasta headers whose extraData is not exactly 7 bytes by @0xShadowX in https://github.com/NethermindEth/nethermind/pull/13817
- perf(zkevm): dispatch the guest with gas, stack head, table and bytecode in registers by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13921
- perf: faster RLP integer and signature decoding, signing hashes and tx/receipt root leaves by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13917
- perf(evm): prove zkEVM jump destinations from the 32 bytes before them by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13886
- fix: validate blob-gas field presence on orphaned headers by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13776
- fix(txpool): rederive the reserved nonce after a pending tx leaves the pool by @svlachakis in https://github.com/NethermindEth/nethermind/pull/13970
- Add Geth keccak256PreimageTracer support by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13662
- perf(precompiles): decode BLS12-381 inputs within a worker budget by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13901
- perf: re-attach stored block access lists to blocks replayed from the store by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13898
- Re-execute a known block whose state was pruned by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13686
- fix(tracing): record frame targets and payer in prestateTracer for frame transactions by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13964
- perf(prewarm): cancel the speculative session earlier and promptly by @benaadams in https://github.com/NethermindEth/nethermind/pull/13989
- fix(db): enumerate the whole code database, including unflushed writes by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13913
- fix(tracing): root parity traces of frame transactions in one transaction call by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13968
- fix: allow frame RPC requests without an outer recipient by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13910
- fix(tracing): report the derived EIP-8141 frame-tx status to tracers and keep simulate logs to the receipt's by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13966
- fix: support unsigned frame transaction simulation by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13911
- fix(core): preserve ConcurrentDictionary internals under NativeAOT by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/14004
- fix(core): skip TypeDiscovery's assembly walk under NativeAOT by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/13996
- test(eth/70): cover ReceiptsMessageSerializer70 round-trip and guard by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/13995
- perf(zkevm): swap stack words in registers by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13977
- Fix startup warmup drain test scheduler deadlock by @stdevMac in https://github.com/NethermindEth/nethermind/pull/13974
- fix(rpc): reject a trace_call chainId for another chain as invalid params by @banteg in https://github.com/NethermindEth/nethermind/pull/13956
- fix(rpc): return no block reward records for post-merge blocks by @banteg in https://github.com/NethermindEth/nethermind/pull/13938
- fix(rpc): return null from trace_transaction and trace_get for a missing transaction by @banteg in https://github.com/NethermindEth/nethermind/pull/13937
- fix(rpc): return invalid params for a reversed trace_filter range by @banteg in https://github.com/NethermindEth/nethermind/pull/13935
- fix(rpc): read an explicit null input or trace_filter after as omitted by @banteg in https://github.com/NethermindEth/nethermind/pull/13897
- fix(tracing): report vmTrace call output windows and keep halted operations by @banteg in https://github.com/NethermindEth/nethermind/pull/13940
- perf: share workers across receipt-root calculation and trie commits by @benaadams in https://github.com/NethermindEth/nethermind/pull/13988
- fix(tracing): include forwarded gas in the vmTrace cost of a create that enters no frame by @banteg in https://github.com/NethermindEth/nethermind/pull/13958
- fix(rpc): support union and intersection modes in trace_filter by @banteg in https://github.com/NethermindEth/nethermind/pull/13857
- fix(tracing): emit failed frames for calls and creates that fail their precheck by @banteg in https://github.com/NethermindEth/nethermind/pull/13957
- perf(init): take the KZG trusted-setup load off the startup critical path by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13998
- fix(optimism): report Jovian operator fee and DA footprint in receipts by @FlashWayne in https://github.com/NethermindEth/nethermind/pull/13811
- fix(tracing): keep reverted frame results and use parity error labels by @banteg in https://github.com/NethermindEth/nethermind/pull/13981
- Bump up the version to 2.2.0-unstable by @core-repository-dispatch-app[bot] in https://github.com/NethermindEth/nethermind/pull/14010
- test(txpool): run should_revalidate_after_queued_fork_reorg alone by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14009
- fix(evm): fail loud on violated EIP-8037 state-gas invariants (F-38) by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13178
- fix(xdc): treat blocks up to the V2 switch block as round 0 in XDPoS_getMissedRoundsInEpochByBlockNum by @ak88 in https://github.com/NethermindEth/nethermind/pull/14008
- refactor(eip8141): compile frame-tx tracer hooks out when not tracing by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14000
- perf(flatdb): keep the read-bundle cache until snapshots are released and cap the carry-forward write-set by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/13971
- test(network): take the cheapest window in the NodeFilter allocation test by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14011
- Emit block-wide log index in callTracer withLog output by @MysticRyuujin in https://github.com/NethermindEth/nethermind/pull/13636
- test: make SnapshotableMemColumnsDb batches and snapshots atomic across columns by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14041
- perf: cache tracer flags per transaction in TransactionProcessor by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14002
- fix(rpc): reject a reversed eth_getLogs range that ends at block zero by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/13999
- feat(t8n): fill EIP-8141 frame transactions by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13498
- Deflake the ProtocolHandlerBase runner-reuse allocation probes by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13635
- Update Nethermind.RocksDbBindings to 11.8.1-preview.140 by @benaadams in https://github.com/NethermindEth/nethermind/pull/14044
- ci: report guest cost per block against master by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13210
- perf(evm): run MLOAD and MSTORE frameless in the untraced dispatch by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14028
- fix(rpc): return null from trace_replayTransaction for a missing transaction by @banteg in https://github.com/NethermindEth/nethermind/pull/14037
- ci: Make SPOT the only implicit provisioning model for GCP runners by @cbermudez97 in https://github.com/NethermindEth/nethermind/pull/13728
- perf(evm): drop end-of-code checks from untraced dispatch via padded code copy by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13896
- fix(ci): poll for the killed child in the stall watchdog test by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13511
- perf(zkevm): guest handlers for the hottest opcodes by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13922
- test: fix flaky BySpeedStrategy recalculate-probability test by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14052
- fix(sync): resolve TreeSync node dependencies atomically by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14051
- fix(nethtest): keep diagnostics off the --jsonout stdout document by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13638
- fix(evm): make the pooled-object leak detectors able to fire by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13393
- test(merge): wait for payload commit before forkchoice by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13852
- test: stop PrepareTx writing the built block back onto the fixture by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13681
- Fix use-after-return on the shared transaction pool in protocol-handler tests by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13674
- ci: stop choosing smoke-test VM types here and move hoodi/chiado sync runners to C3D by @cbermudez97 in https://github.com/NethermindEth/nethermind/pull/14007
- fix(tracing): give a parity vmTrace frame operation its gas limit and receipt gasUsed by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14005
- Preempt gossiped frame tx validation while a block is processing by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/13994
- fix(rpc): serialize EIP-8141 frame fields and frame receipts as quantities with full logs by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/13990
- fix(flat): recheck the carry-forward generation after a cache hit by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14026
- fix(rpc): accept empty frame signers by @jxom in https://github.com/NethermindEth/nethermind/pull/14020
- fix(rpc): skip frame signature verification in simulation by @jxom in https://github.com/NethermindEth/nethermind/pull/14023
- ci(focil): pin EEST fixtures to tests-focil-devnet@v0.3.0 by @peter941221 in https://github.com/NethermindEth/nethermind/pull/13909
- fix(rpc): return frame simulation results by @jxom in https://github.com/NethermindEth/nethermind/pull/14022
- fix(rpc): align frame gas field names by @jxom in https://github.com/NethermindEth/nethermind/pull/14019
- fix(rpc): match a failed CREATE in trace_filter only by its creator by @banteg in https://github.com/NethermindEth/nethermind/pull/14039
- fix(rpc): return invalid params for a trace_filter bound past the head by @banteg in https://github.com/NethermindEth/nethermind/pull/14040
- fix(rpc): run zero-fee trace_call and trace_callMany calls with a zero base fee by @banteg in https://github.com/NethermindEth/nethermind/pull/14045
- fix(rpc): don't select a transaction type from a null field by @banteg in https://github.com/NethermindEth/nethermind/pull/14049
- fix(rpc): reject unknown members and negative after or count in trace_filter by @banteg in https://github.com/NethermindEth/nethermind/pull/14050
- fix(rpc): reject a priority fee above the fee cap in trace_call and trace_callMany by @banteg in https://github.com/NethermindEth/nethermind/pull/14046
- fix(rpc): treat a null or zero GasCap as uncapped in eth_call, eth_estimateGas and eth_createAccessList by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/14001
- fix(simulate): drop logs emitted by reverted call frames by @stdevMac in https://github.com/NethermindEth/nethermind/pull/13979
- ci(expb): pin the flat DB compaction offset so every run compacts at the same blocks by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14053
- fix(rpc): reject a trace_rawTransaction signed for another chain by @banteg in https://github.com/NethermindEth/nethermind/pull/14048
- perf(flat): write storage trie nodes after the block is reported valid by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14058
- fix(rpc): reject signed raw transaction gas above the cap by @banteg in https://github.com/NethermindEth/nethermind/pull/14060
- fix(flat): keep unanchored forks out of bulk snapshot conversion by @CPerezz in https://github.com/NethermindEth/nethermind/pull/13997
- ci: sync-validation timings dashboard on GitHub Pages by @stdevMac in https://github.com/NethermindEth/nethermind/pull/12618
- perf(rpc): write receipt logs straight from the stored entries by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14043
- fix(simulate): keep log indices of logs dropped by a revert, as geth does by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14062
- perf(flat): hold carry-forward slot reads in a fixed set-associative table by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14027
- feat(rpc-bench): heap dump reports and process memory per cell by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13842
- ci(hive): build image once, run Hive on PRs, drop consensus suite by @cbermudez97 in https://github.com/NethermindEth/nethermind/pull/11877
- fix(engine): return unsupported fork for newPayloadV3/V4 outside their fork windows by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14024
- ci(expb): benchmark fusaka at 0 s and 1 s delay on the performance label and on master by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14061
- refactor(bal): drop parent state root plumbing from BlockAccessListManager by @asdacap in https://github.com/NethermindEth/nethermind/pull/14080
- feat(config): add mainnet_aztec with a rolling trace window by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14038
- perf(flat): size the carry-forward account cache for its cap by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14073
- chore(deps): update Nethermind.Zkvm.Abstractions by @rubo in https://github.com/NethermindEth/nethermind/pull/14090
- docs(focil): explain fork-boundary sampling and cover empty buckets by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13383
- fix(eth/70): stop receipt paging for blocks with unknown headers by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14018
- test(focil): assert inclusionListSatisfied on the forkchoice response by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13411
- perf(trie): reach node data through the sealed classes and size children off the cast cache by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14072
- perf: cut the cost of blocks that load many distinct large contracts by @benaadams in https://github.com/NethermindEth/nethermind/pull/14086
- perf(flat): apply committed storage writes on an idle-priority thread during execution by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14059
- perf(zkevm): absorb Keccak-256 input straight into the precompile state by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13885
- perf(zkevm): cheaper SSZ merkleization and list decoding for the stateless guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/13916
- test(focil): pin the sender reservoir's headroom over the inclusion-list byte cap by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13392
- perf(zkevm): run DIV, MOD, ADDMOD and MULMOD on ZisK's 256-bit arithmetic by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13975
- perf(il): skip the keyed nonce scan when drawing an inclusion list by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13384
- perf(rpc): remember resolved code for the rest of an eth_call scope by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/13805
- fix: align counting state provider code return types by @benaadams in https://github.com/NethermindEth/nethermind/pull/14120
- ci: fail fast on machine types the runner cannot use, and drop convert_to_paprika by @cbermudez97 in https://github.com/NethermindEth/nethermind/pull/14056
- fix(engine): reject omitted or null payload fields on engine_newPayloadV3+ by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14025
- docs(agents): agent reviews approve or comment, never request changes by @benaadams in https://github.com/NethermindEth/nethermind/pull/14116
- perf(zkvm): avoid narrowing multiply-fold intermediates by @benaadams in https://github.com/NethermindEth/nethermind/pull/14124
- fix(engine): return invalid params for incomplete payloads outside the fork window by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14131
- perf(zkvm): keep keccak memo slot arithmetic full-width by @benaadams in https://github.com/NethermindEth/nethermind/pull/14128
- fix(rpc): reject a call object whose data and input differ by @banteg in https://github.com/NethermindEth/nethermind/pull/14089
- fix(rpc): validate a trace_rawTransaction with block inclusion's checks by @banteg in https://github.com/NethermindEth/nethermind/pull/14091
- fix(tracing): round-trip TraceStore vm and state by @banteg in https://github.com/NethermindEth/nethermind/pull/14093
- feat(rpc): select a block by hash in trace_filter and reject hash bounds by @banteg in https://github.com/NethermindEth/nethermind/pull/14111
- fix(tracing): select stored vmTrace like live replay by @banteg in https://github.com/NethermindEth/nethermind/pull/14115
- perf(zkvm): keep jump bitmap offsets native-sized by @benaadams in https://github.com/NethermindEth/nethermind/pull/14129
- ZiskGuest: Bump ZisK runtime and image to 1.3.1-alpha by @maximmenshikov in https://github.com/NethermindEth/nethermind/pull/14127
- feat(zkevm): adopt tests-zkevm@v21.0.1 by @rubo in https://github.com/NethermindEth/nethermind/pull/14118
- fix(tracing): require canonical blocks for stored transaction traces by @banteg in https://github.com/NethermindEth/nethermind/pull/14122
- fix(rpc): run blob calls without a positive blob fee cap at a zero blob base fee by @banteg in https://github.com/NethermindEth/nethermind/pull/14092
- test(discovery): fix flaky E2EDiscoveryTests.TestDiscovery by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14126
- fix(network): return pooled objects on RLP validation failures by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14113
- fix(txpool): wire frame prefix simulation into AuRa and XDC by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14110
- fix(eip8250): map frame tx nonce and key-count rejections to fixture exceptions by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14112
- fix(txpool): reject unrecognized frame validation prefixes by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14108
- fix(txpool): reject expiry helper and no-op deploy prefixes by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14107
- refactor(txpool): share the verify gas default constant by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14106
- fix(rpc): report frame simulation gas before refunds by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14105
- fix(tracing): serve only recorded trace types from TraceStore by @banteg in https://github.com/NethermindEth/nethermind/pull/14123
- docs(zkevm): move the OpenVM guest README into its project folder by @rubo in https://github.com/NethermindEth/nethermind/pull/14150
- docs(agents): add zkevm skills by @rubo in https://github.com/NethermindEth/nethermind/pull/14146
- test: drain deferred writes before corrupting the stored access list by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14148
- fix(rpc): code written during a call replaces a stateOverride code override by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14114
- fix(rpc): enforce frame estimate fork and gas cap by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14103
- fix(focil): judge inclusion-list appendability per block gas dimension by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14055
- fix(eip8250): align TXPARAM keyed-nonce indices with the spec by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14069
- fix(eip8250): keep a higher existing NONCE_MANAGER nonce at activation by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14070
- fix(tracing): forward frame receipts through nested receipt tracers by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14104
- fix(eip7906): support per-topic TXDIFF views by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14109
- fix(focil): report inclusionListSatisfied for a head newPayloadV6 left unanswered by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13385
- feat: estimate and fill per-frame gas limits by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13912
- fix: preserve RPC gas cap error when estimating frame limits by @benaadams in https://github.com/NethermindEth/nethermind/pull/14166
- test(rpc): cover the resolved-code memo of eth_call end to end by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14121
- fix(network): stop submitting a transaction message once an invalid transaction requests a disconnect by @manusw7 in https://github.com/NethermindEth/nethermind/pull/14134
- fix(network): use 2 MiB BAL response soft limit by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14152
- fix(specs): initialize EIP-8282 genesis requests hash by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14153
- perf(flatdb): serve state-reader tree visitors from the trie node cache by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/12400
- fix(sync): preserve account wipes during BAL healing by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14156
- feat(producer): check state availability for the target block by @asdacap in https://github.com/NethermindEth/nethermind/pull/14079
- test: assert memory and span contents with Is.SequenceEqualTo; code cache sizes as constants by @benaadams in https://github.com/NethermindEth/nethermind/pull/14119
- fix(merge): stop the pre-merge block producer runner on shutdown by @gophersg in https://github.com/NethermindEth/nethermind/pull/14168
- Honor discv4 Ping forward compatibility by @flcl42 in https://github.com/NethermindEth/nethermind/pull/14151
- fix(txpool): reapply paymaster cap after head changes by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14155
- fix(focil): bound inclusion-list entries by bytes, not SSZ offsets by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14068
- perf(evm): reuse child call frames per depth instead of the thread-static pools by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14139
- fix(state): a code override ends when its account is destroyed before Cancun by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14125
- perf(engine): start sender recovery once the payload's block is built by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14164
- ci(bench): per-client snapshots and per-arm node flags in an RPC sweep by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/12961
- perf(metrics): cache observer children for stable labels by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14173
- fix(rpc): answer a rejected trace_call with the eth_simulateV1 error code by @ak88 in https://github.com/NethermindEth/nethermind/pull/14158
- perf(evm): simplify zero-extended scalar stack words by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14180
- perf(evm): carry fused PUSH2 opcode counts in host dispatch by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14177
- perf(evm): remove jump-target bytecode prefetch hints by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14176
- fix(simulate): apply simulate overrides on the EIP-7928 per-transaction path by @MysticRyuujin in https://github.com/NethermindEth/nethermind/pull/14057
- fix(logging): reapply CLI and Seq overrides after NLog config reload by @Matgothmog in https://github.com/NethermindEth/nethermind/pull/14181
- Normalize invalid-length input of flat-fee cached precompiles by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14185
- Check eth/snap response request ids before decoding by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14184
- test(merge): make the engine JSON/SSZ round-trip benchmarks run and measure production costs by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14188
- perf(rpc): read single-object request bodies in one pass by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14187
- Verify EIP-1459 tree root signature in DNS discovery by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14183
- perf: share worker budgets across block processing stages by @benaadams in https://github.com/NethermindEth/nethermind/pull/14182
- test: fix pruning threshold race across midnight UTC by @benaadams in https://github.com/NethermindEth/nethermind/pull/14167
- build(zkevm): bump the bflat RISC-V64 image by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14201
- Bind JSON-RPC host names to their resolved addresses by @ak88 in https://github.com/NethermindEth/nethermind/pull/13746
- perf(zkevm): reverse bytes with Zbb's rev8 in the ZisK guest by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/13984
- fix(docgen): load only runtime-dependency assemblies by @rubo in https://github.com/NethermindEth/nethermind/pull/14203
- fix(txpool): index the prefix paymaster as a frame tx dependency by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14172
- fix(rpc): enforce frame transaction activation during calls by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14154
- fix(rpc): canonical method names in RPC stats, stable metric labels, streamed writer depth/encoder by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14194
- test(rpc): take the minimum of several runs in the receipt allocation test by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14189
- chore: Update Dockerfiles by @core-repository-dispatch-app[bot] in https://github.com/NethermindEth/nethermind/pull/14210
- perf(rpc): allocation-free filter address/topic binding and access list serialization by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14198
- Back off peer candidates rejected by the contact filter by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14190
- test: fix DevBlockProducerTests flake by awaiting block production by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14192
- perf(rpc): cut allocations and redundant work on hot JSON-RPC paths by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14195
- perf(rpc): read typed parameters through their converter by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14193
- perf(zkevm): trim keccak call overhead in the ZisK guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14207
- perf(state): cheaper storage reads (per-slot journal filter, SlotKey map key, stateless code memo) by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14214
- Honor Geth opcode logger byte limits by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13670
- perf(eip8141): compute the frame tx sig hash on first use by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14221
- Avoid HTTP and JSON round trips in local health-check UI polling by @benaadams in https://github.com/NethermindEth/nethermind/pull/14211
- test(evm): read the frame cache directly and share the cached/uncached observation by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14174
- fix(xdc): encode XDPoS_getV2Block* headers with the node's header decoder by @ak88 in https://github.com/NethermindEth/nethermind/pull/14175
- fix(test): use normal gas charging by default in EVM tracer by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14161
- refactor(state): apply BAL state changes through IScope.ApplyBal by @asdacap in https://github.com/NethermindEth/nethermind/pull/13772
- perf(eip8141): recover frame tx secp256k1 signers in the parallel sender-recovery step by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14205
- feat(flatdb): byte-capped in-memory snapshot window by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/13972
- fix(test): call the public FrameTxSignatureValidator.Validate overload by @asdacap in https://github.com/NethermindEth/nethermind/pull/14258
- perf(prewarm): read the accounts that large calldata names as ABI address words by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14204
- perf(zkevm): relieve register pressure in the guest opcode handlers by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14206
- perf(stateless): hand the decoded witness state nodes over without copying them by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14233
- fix(shutter): count missed keys atomically by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14238
- perf(zkevm): leave the receipt transaction hash unset in the guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14239
- perf(zkevm): skip the zero credit to the executing account of a frame that runs code by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14243
- perf(engine): start early sender recovery once the payload's transactions root is joined by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14213
- perf(flat): skip the in-memory layers for slot reads that none of them has, in read-only execution by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14094
- perf(prewarm): hand a warm caught in cold storage reads to discovery by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14219
- Decode receipts responses against the expected per-block receipt counts by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14191
- perf(rpc): validate, count and decode a batch body in fewer passes by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14197
- perf(rpc): answer complete socket messages from their bytes by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14196
- chore(deps): update Nethermind.Zkvm.Abstractions by @rubo in https://github.com/NethermindEth/nethermind/pull/14262
- test: await the in-flight cap check in SimpleDispatcherTests instead of blocking a pool thread by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14226
- fix(rpc): restore master build after complete-message decoder changes by @benaadams in https://github.com/NethermindEth/nethermind/pull/14263
- fix(facade): propagate caller cancellation from DefaultHttpClient retries by @somasoil in https://github.com/NethermindEth/nethermind/pull/14254
- perf(evm): let SUB call UInt256.Subtract again now that it inlines by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14042
- feat(txpool): preempt gossiped frame tx validation while a block is being built by @manusw7 in https://github.com/NethermindEth/nethermind/pull/14085
- Align debug_traceTransaction missing-transaction errors with Geth by @hudem1 in https://github.com/NethermindEth/nethermind/pull/14250
- perf(zkevm): reuse decoded witness header hashes and widen the guest keccak memo to 2^17 slots by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14256
- Update OP Superchain chains by @core-repository-dispatch-app[bot] in https://github.com/NethermindEth/nethermind/pull/14231
- perf(zkevm): leaner trie walks, node re-encoding and witness lookups by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14209
- perf(zkevm): analyze jump destinations with ZisK's JUMPDEST bitmap precompile by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14255
- build: mark AOT-compatible projects and source-generate JSON metadata by @benaadams in https://github.com/NethermindEth/nethermind/pull/14237
- perf(zkevm): guest interpreter - more dispatch registers, narrow arithmetic, new handlers, jump-analysis anchors by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14217
- fix(stateless): record the code read by a fused EXTCODESIZE check in the execution witness by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14248
- ci: retry flaky RPCs in the fast sync settings update by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14264
- perf(zkevm): resume re-encoded witness branches from retained sponge states by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14261
- perf(zkevm): copy byte runs with a direct memmove in the ZisK guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14208
- perf(trie): cheaper node resolution on read walks by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14215
- perf(zkevm): lean hashed-child resolve and no RLP-limit copy in inlined guards by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14230
- perf(evm): carry host execution gas through opcode dispatch by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14178
- perf(zkevm): cheaper state commit and trie encoding in the guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14216
- fix(auth): respect expiration in JWT cache by @arunimshukla in https://github.com/NethermindEth/nethermind/pull/14228
- Fix JavaScript tracer transaction index for selected transactions by @hudem1 in https://github.com/NethermindEth/nethermind/pull/14249
- perf(zkevm): trim calldata zero counting, storage journal appends, storage-cell hashing and merkle sha256 calls in the guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14234
- refactor(evm): share the carried-gas dispatch protocol between host and zkVM guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14269
- test: wait for genesis to leave the queue before queuing the committing copy by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14268
- test(merge): wait for the stored improvement before getPayload in TestTwoTransaction_SameContract_WithBlockImprovement by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14267
- chore(deps): replace Open.NAT.Core and fix UPnP lease duration by @rubo in https://github.com/NethermindEth/nethermind/pull/14283
- feat(eip8141): MATCHA sender width for keyed-nonce frame transactions by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/13619
- fix(sync): retake an invalid sync snapshot before recalculating progress pointers by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14276
- perf(zkevm): guest handlers for wide arithmetic, SLOAD/TLOAD/TSTORE, MSTORE8 and data copies by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14229
- perf(zkevm): DMA memmove/memset for keccak state fill and RLP byte strings in the ZisK guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14257
- chore(deps): update Nethermind.Zkvm.Abstractions by @rubo in https://github.com/NethermindEth/nethermind/pull/14278
- test(txpool): serve restored frame blob bodies so startup revalidation keeps them by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14279
- perf(zkevm): cheaper leaf re-encoding and branch walks on the commit path by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14223
- ci: split Nethermind.JsonRpc.Test into two chunks on macOS and Windows by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14275
- perf(zkevm): stop a guest trie write's climb at the first pending level by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14240
- perf(zkevm): cut interface dispatch and hashing in state, access tracking and tx validation by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14218
- feat: EIP-8253 bump nonce of zero-nonce storage accounts by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13943
- feat: EIP-7668 remove bloom filters by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13934
- Fix callTracer log indices across calls and transactions by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13693
- feat: EIP-8131 unified transaction content floor by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13929
- feat: EIP-7979 call and return opcodes by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13932
- Retain verified ENRs for mismatched signed PING endpoints by @flcl42 in https://github.com/NethermindEth/nethermind/pull/14277
- perf(zkevm): OptimizedDictionary/OptimizedHashSet with 64-bit guest hash tables on the state path by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14222
- perf(zkevm): dispatch the guest on opcode pairs and fuse common pairs by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14232
- feat: EIP-3298 remove storage-clear refund and refund cap by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13928
- ci: drop stale Timestamp entries from known-flaky hive tests by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14315
- Prewarmer handoff rework by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14312
- Resolve SSZ REST forks for chainspec networks by @flcl42 in https://github.com/NethermindEth/nethermind/pull/14302
- perf(zkevm): cheaper first jumps to a destination in the guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14242
- perf(zkevm): reach each storage change in place when writing storage roots by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14241
- fix(rpc): keep a notification's send failure when the socket closes first by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14319
- test(clique): deploy Amsterdam request predeploys in the producer tests' genesis by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14339
- perf(zkevm): per-block guest code cache as a plain map by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14244
- ci: switch to trusted NuGet publishing by @rubo in https://github.com/NethermindEth/nethermind/pull/14332
- chore: ignore all VS Code workspace files by @rubo in https://github.com/NethermindEth/nethermind/pull/14362
- docs(agents): require conventional commit messages and PR titles by @rubo in https://github.com/NethermindEth/nethermind/pull/14364
- perf(evm): keep the code a block loads for the rest of the block by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14322
- fix(merge): keep a suggested block queued when newPayload's budget runs out first by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14337
- fix(state): delete pre-existing account recreated and deleted again in one commit by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14357
- fix(flat-history): share one prune budget across all columns of a pass by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14327
- perf(archive-proofs): track exact branches in a bounded HashSet by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14335
- perf(tx-index): resume bulk storage cleanup past the last marker by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14325
- Honor debug_traceCall transaction-index state selection by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13700
- ci: add prerelease/latest support to master bootnode release by @flcl42 in https://github.com/NethermindEth/nethermind/pull/14266
- zkVM guest: pairwise EVM stack swaps, keccak first-block copy, preinitializable statics, Int256 1.11.0; bflat-riscv64-11 2ee8a26 by @maximmenshikov in https://github.com/NethermindEth/nethermind/pull/14358
- fix(network): serialize concurrent node filter acceptance by @benaadams in https://github.com/NethermindEth/nethermind/pull/14381
- feat: EIP-8279 block access list byte floor by @Marchhill in https://github.com/NethermindEth/nethermind/pull/13942
- Catch up finalized blocks from block access lists by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14157
- fix(rpc): fill the missing half of an eth_createAccessList fee pair by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14377
- perf(tx-index): read earlier-block overlay behind the block read cache by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14361
- perf(archive-proofs): keep open window nodes in a reusable slab by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14360
- perf(flat-history): encode v3 capture post-values only when a row is written by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14355
- Add periodic log reporting how far the head block is behind the chain tip by @Copilot in https://github.com/NethermindEth/nethermind/pull/10892
- test(clique): pin producer tests to Sepolia's latest scheduled fork by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14354
- Preserve empty and disabled stacks in Geth trace files by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13709
- Reject conflicting traceCall storage overrides before fee validation by @hudem1 in https://github.com/NethermindEth/nethermind/pull/14359
- perf(flat-history): drop pruned block markers with one range delete by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14333
- perf(archive-proofs): prefetch from the first uncached depth by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14340
- perf(archive-proofs): resolve commitment column batches once per write batch by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14341
- fix(flat-history): revalidate cached no-poison after a capture by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14347
- fix(tx-index): refuse scratch slots with no live account by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14352
- perf(history-walk): skip the rest of an overflowing storage group by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14367
- fix(engine): do not move the head to a block whose state was pruned by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14366
- ci: drop Missing Ancestor entries from known-flaky hive tests by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14382
- perf: fuse PUSH2 CALLSUB for EIP-7979 by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14287
- test(eip8141): split the frame-tx MAX_VERIFY_GAS measurements by @manusw7 in https://github.com/NethermindEth/nethermind/pull/14135
- fix(rpc): preserve runtime metadata probe frames for coverage checks by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14384
- test(evm): cover access-list journal rollback across nested frames by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14395
- test(sync): cover moving sync pivot in MultiSyncModeSelector scenarios by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14310
- fix(rpc): fee default texts and check order for transactions to send and sign by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14375
- perf(tx-index): sync the bulk import scratch WAL every 64 pages by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14370
- perf(archive-proofs): collect historical proofs with a direct path walk by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14365
- perf(rpc): source-generated JSON writers for blocks, RPC transactions and logs by @benaadams in https://github.com/NethermindEth/nethermind/pull/14299
- Refresh prewarm footprints that earlier transactions invalidate by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14393
- fix(test): stop JSON coverage check failing on inlined dispatch frames by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14407
- perf(flat-history): pruner seeks past each key's live rows by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14371
- fix(archive-proofs): mark a reattached child changed when a branch re-forms by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14356
- perf(history-walk): fork/join scheduler so split storage children run on all workers by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14353
- perf(tx-index): drop per-block scratch WAL syncs in bulk replay by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14350
- perf(archive-proofs): serve proof metadata from memory by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14348
- perf(flat-history): reuse empty hashes for historical accounts by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14328
- perf(trie): hash serially by default; history walk hashes on its own thread by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14326
- fix(zkevm): pass 8-byte aligned buffers to the Blake2F accelerator by @rubo in https://github.com/NethermindEth/nethermind/pull/14418
- fix(zkevm): pass exact-length buffers to the BLS12-381 MSM and pairing accelerators by @rubo in https://github.com/NethermindEth/nethermind/pull/14419
- perf(evm): leave checked opcodes straight from host dispatch when it carries gas by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14427
- ci(zkevm): run stateless Glamsterdam tests on Sepolia blocks by @rubo in https://github.com/NethermindEth/nethermind/pull/14413
- feat(eip8141): MATCHA paymaster width for sponsored frame transactions by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14305
- fix(txpool): run the frame-tx prefix simulation under the configured MAX_VERIFY_GAS by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14379
- feat(sync): report snap healing progress as its own phase without the full state percentage by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14308
- test(blockchain): make FileLocalDataSource retries_loading_file deterministic by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14303
- feat(specs): schedule EIP-8250, EIP-8272 and EIP-7906 from a geth-style genesis by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14386
- test(txpool): re-enable parallel nonce reservation test by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14298
- fix(docgen): document wire shape of parity trace actions and simulate results by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14293
- perf(network): bound inbound transaction admission and pool request tracking by @benaadams in https://github.com/NethermindEth/nethermind/pull/14434
- fix(ethstats): log repeated disconnects while offline at debug by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14289
- perf(flat): skip per-scope resets and warm-up hints that do nothing by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14336
- feat(eip8141): deploy the expiry verifier as an ordinary contract by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14378
- feat(rpc): add SendPolicy plugin by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14396
- perf(flat): filter in-memory slot reads of plain eth_call, estimateGas and createAccessList by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14330
- fix(history-walk): scan the whole storage bucket before accepting slot history by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14329
- Fix return data in Geth trace files by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13727
- refactor(tracing): one node-wide parallel trace budget sized by JsonRpc.TraceBlockParallelism by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14363
- fix(zkvm): pass BLS12-381 points to SP1 in its own layout by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14401
- perf(rpc): process up to 16 requests per WebSocket and IPC connection by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14345
- perf(history-walk): fold the root in parallel block-range chunks by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14373
- fix(evm): respect EIP-7778 in EIP-8037 block gas accounting by @colinlyguo in https://github.com/NethermindEth/nethermind/pull/14300
- fix(flat): verify preimage storage in bounded memory by @asdacap in https://github.com/NethermindEth/nethermind/pull/14387
- fix(eip8272): verify recent roots with a canonical VERIFY frame by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14071
- fix(init): exit cleanly when KZG trusted setup cannot be loaded by @benaadams in https://github.com/NethermindEth/nethermind/pull/14435
- Test traceCall selection errors before conflicting storage overrides by @hudem1 in https://github.com/NethermindEth/nethermind/pull/14392
- perf: remove field-layout padding in hot and per-message types by @benaadams in https://github.com/NethermindEth/nethermind/pull/14454
- feat: align EIP-8279 metering with execution-specs#3351 by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14448
- fix(bal): stop parallel validation once executed gas exceeds the block limit by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14459
- feat(rpc): add an operator cap on buffered struct-log trace size by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14460
- perf(tracing): stream struct logs with bounded memory per request by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14461
- perf(zkvm): link a 64-bit memcpy into the SP1 guest by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14404
- perf(zkvm): gather big-endian words byte by byte where the zkVM has no rev8 by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14405
- refactor(discovery): replace DotNetty UDP transport with a plain socket by @rubo in https://github.com/NethermindEth/nethermind/pull/14346
- chore(zkvm): bump Nethermind.Sp1.Runtime to 1.0.0-preview.5 and the SP1 runner to v6.6.0 by @maximmenshikov in https://github.com/NethermindEth/nethermind/pull/14456
- perf(zkvm): run MULMOD on SP1's uint256_mulmod precompile by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14403
- perf(blocktree): resolve block numbers without a lock convoy by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14451
- fix(processing): refuse a branch that reaches genesis without state by @CPerezz in https://github.com/NethermindEth/nethermind/pull/14324
- perf(rpc): read block senders without decoding receipts by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14452
- perf(rlp): encode and decode built-in transaction types without virtual dispatch by @benaadams in https://github.com/NethermindEth/nethermind/pull/14455
- perf(rpc): serve hashes-only getBlock without decoding transactions by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14464
- fix(focil): judge an inclusion list resent while an earlier copy is queued by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14314
- perf(eth72): reduce announcement tracking allocations by @benaadams in https://github.com/NethermindEth/nethermind/pull/14474
- fix(eip7906): read the true prestate of slots wiped by creation by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14422
- Fix nested exit records in Geth trace files by @hudem1 in https://github.com/NethermindEth/nethermind/pull/13737
- feat(healthchecks): link consensus client docs in the no-ForkChoices warning by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14309
- Use shared processing for empty block overrides by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14473
- Avoid receipt loading for raw transaction lookup by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14472
- Reduce proof input allocations with packed hashes by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14471
- fix(producers): count only execution gas when ordering pool txs under EIP-8037 by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14304
- fix(flat): warn when snap sync discards existing flat state and time the wipe by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14297
- Stop an idle mempool pre-warm session without waiting for it by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14467
- test(merge): fix flaky ExecutionPayloadTests by scoping the swapped tx decoder by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14433
- perf(prewarm): footprint handoff tweaks by @benaadams in https://github.com/NethermindEth/nethermind/pull/14476
- fix(wallet): reject an unavailable BlockAuthorAccount signing key by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14290
- perf(zkvm): hash SSZ merkle pairs with SP1's SHA-256 precompiles directly by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14402
- perf(cache): reuse array slots in LRU caches by @benaadams in https://github.com/NethermindEth/nethermind/pull/14478
- feat(eip8250): deploy the nonce manager as an ordinary contract by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14438
- perf(flat): keep read-only accounts out of the block's change set by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14446
- fix(merge): include WebSockets URL when checking the engine port is configured by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14285
- ci(zkevm): run the tests-zkevm-benchmark fixtures through the ZisK guest by @rubo in https://github.com/NethermindEth/nethermind/pull/14465
- perf(validation): recover EIP-2780 senders in the block validator only when intrinsic gas needs them by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14468
- fix(rpc): report precompile failures with go-ethereum's error text by @kamilchodola in https://github.com/NethermindEth/nethermind/pull/14281
- fix: zero-length logs bloom for an EIP-7668 genesis by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14458
- fix: use EIP-7906's assigned opcode bytes by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14469
- fix(tests): decode frame transactions from txbytes in state tests by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14463
- chore: Update Dockerfiles by @core-repository-dispatch-app[bot] in https://github.com/NethermindEth/nethermind/pull/14470
- chore(deps): update packages by @rubo in https://github.com/NethermindEth/nethermind/pull/14491
- perf(logs): defer compact log data expansion by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14488
- perf(rpc): give Kestrel 64 KiB transport blocks so a large request body arrives in a few reads by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14443
- feat(eip8272): deploy the recent root contract as an ordinary contract by @AnkushinDaniil in https://github.com/NethermindEth/nethermind/pull/14437
- ci: replace OpenCodeReview with shared PR-Agent by @stdevMac in https://github.com/NethermindEth/nethermind/pull/13652
- fix(sync): stop old bodies and receipts progress overshooting the total on finish by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14286
- test(aura): wait for the produced block in AuRaBlockProducerTests instead of a fixed window by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14306
- feat(sync): label snap sync phases and drop misleading healing percentage by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14344
- Configure RPC benchmark gas cap without duplicate flags by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14501
- ci: authenticate Docker Hub pulls in stateless workflows by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14500
- perf(state): reuse larger pooled storage maps by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14509
- fix(txpool): return txs of blocks the head rewinds past by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14492
- Avoid eager original-value indexing for read-only storage by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14528
- Schedule Hoodi Amsterdam fork by @flcl42 in https://github.com/NethermindEth/nethermind/pull/14489
- perf(merge): re-commit the no-GC region budget right after a decommit by @marcindsobczak in https://github.com/NethermindEth/nethermind/pull/14481
- fix(sync): stop block access lists sync at the EIP-7928 activation block by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14368
- chore(deps): update RocksDB package by @rubo in https://github.com/NethermindEth/nethermind/pull/14617
- ci: log in to Docker Hub with OIDC instead of static credentials by @cbermudez97 in https://github.com/NethermindEth/nethermind/pull/14619
- chore(deps): update .NET packages by @rubo in https://github.com/NethermindEth/nethermind/pull/14628
- fix(discv4): match a pong on the pinged endpoint by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14576
- perf(txpool): reject underpriced replacements before recovering signatures by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14577
- feat(consensus): abandon a block that takes longer than a configurable timeout to process by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14487
- fix(simulate): skip the stale canonical marker walk when resetting the overlay head by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14636
- fix(deps): pin System.Security.Cryptography.Pkcs to 10.0.13 by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14643
- fix(flat): fail fast with no-state when the persisted pointer outlives the snap-sync wipe by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14635
- chore: Update Dockerfiles to .NET 10.0.13 by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14632
- perf(evm): past the block code cache's cap, evict code only finished transactions used by @LukaszRozmej in https://github.com/NethermindEth/nethermind/pull/14380
- fix(bal): stop parallel validation once a transaction fails by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14605
- fix(bal): tighten handling of fetched and stored block access lists by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14597
- fix(network): return a new receipts message for an empty response by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14648
- fix(consensus): validate parent beacon block root presence in headers by @stdevMac in https://github.com/NethermindEth/nethermind/pull/14560
- fix(sync): recover catch-up receipt senders and rank receipt/BAL requests by their own speed by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14662
- perf(state): apply independent BAL storage batches in parallel by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14667
- fix(sync): skip peers that answered empty when fetching BALs for healing by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14657
- fix(producer): don't let discarded transactions shift receipt indexes by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14614
- fix(bal): keep produced blocks within the block access list item limit by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14647
- fix(bal): enforce the block access list item limit on every processing path by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14646
- fix(merge): keep the payload getPayload handed out when a late build finishes by @Marchhill in https://github.com/NethermindEth/nethermind/pull/14661
- fix(archive-proofs): take a composed node's empty children from their rows by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14741
- fix(archive-proofs): record the child views of a composed node captured at the tip by @svlachakis in https://github.com/NethermindEth/nethermind/pull/14745
New Contributors
- @jxom made their first contribution in https://github.com/NethermindEth/nethermind/pull/14020
- @gophersg made their first contribution in https://github.com/NethermindEth/nethermind/pull/14168
- @somasoil made their first contribution in https://github.com/NethermindEth/nethermind/pull/14254
- @colinlyguo made their first contribution in https://github.com/NethermindEth/nethermind/pull/14300
Full Changelog: https://github.com/NethermindEth/nethermind/compare/2.1.0...2.2.0