Warning
This release changes mempool admission defaults. Transactions now need a non-zero priority fee to be admitted (--mempool.min-tip, default 1 wei), and replacing a pooled transaction now requires a fee bump (--mempool.price-bump, default 10%; --mempool.blob-price-bump, default 100%). Set any of them to 0 to restore the previous behaviour. Building from source now requires Rust 1.93.
Note
What's new
- Native rollups (EIP-8079) in the L2 stack.
- Historical chain backfill:
--history.chainoptionally backfills block bodies and receipts after a snap sync, so the node can serve historical block, transaction, receipt and log queries. Off by default, and it adds substantial disk usage. - New tracing endpoints:
debug_traceCallanddebug_traceBlockByHash. - Mempool controls: a minimum priority-fee floor, replacement fee bumps, and
--mempool.privateto keep RPC-submitted transactions from being propagated to peers. - Stateless-validator guest artifacts are now built and published by us — one signed ELF and verification key per zkVM, verifiable against the public key committed in the repository.
- Correctness fixes across gas estimation, log filtering and tracing; peer discovery and ENR handling improvements; and performance work in state prefetching, the interpreter dispatch loop and trie hashing.
No resync is needed.
Installation and running instructions can be found in our docs
✨ New Features
23c4202- l2: add EIP-8079 native rollups (PR #6418 by @avilagaston9)85062f0- l1: require percentage fee bump for mempool RBF (10%/100%) (PR #6601 by @ilitteri)67f6117- l1: add --mempool.private flag for non-propagating local txs (PR #6576 by @ilitteri)b15f6e5- l1: enforce minimum priority-fee floor at mempool admission (PR #6604 by @ilitteri)06773ce- l1: add debug_traceCall and debug_traceBlockByHash (PR #6931 by @edg-l)b527188- l1: unify guest programs and publish assets ourselves (PR #7115 by @iovoid)4e2e3e6- l1,l2: zkevm execution benchmark (PR #6982 by @iovoid)31f132b- l1: optional historical chain backfill + DB observability (PR #7024 by @ilitteri)4a57f05- l1: give the ENR extras bag accessors (PR #7144 by @MegaRedHand)a92dfe4- l1: screen discovered peers through a PeerFilter (PR #7145 by @MegaRedHand)1dccf86- l1: add ethrex-evm t8n CLI for filling EELS tests (PR #7158 by @spencer-tb)a0ebfab- l1: track the EEST zkEVM benchmark suite as bench workloads (PR #7165 by @ilitteri)
🐛 Bug Fixes
35b05a1- l1,l2: make eth_getLogs topics optional and honour blockHash (PR #7098 by @jrchatruc)1db3ce7- l2: correct deposit_erc20 log to say “Depositing” instead of “Claiming” (PR #4899 by @radik878)8c811f1- l1: report the block's real gas limit to GASLIMIT under simulation (PR #7141 by @ilitteri)5a4c2bf- l1: populate blockTimestamp on RPC log objects (PR #7142 by @ilitteri)81914e1- l1: keep ENR entries when discv5 updates the local IP (PR #7143 by @MegaRedHand)2367dc8- l1: report the block's real gas limit to GASLIMIT in debug_traceCall (PR #7148 by @ilitteri)0af86f4- l1,l2: correct the stateless guest's Amsterdam blob schedule and move EF vectors to zkevm@v0.8.0 (PR #7153 by @ilitteri)eacaff4- l1: settle frame-tx fees on max_gas and the base blob rate (PR #7073 by @edg-l)025f90f- l1: align SIGPARAM copy operands with CALLDATACOPY (PR #7089 by @edg-l)ac7ce7e- l1: reconcile an unrolled atomic batch's access list, gas and status (PR #7068 by @edg-l)7277c63- l1: require the generated witness to be sufficient, not identical to the fixture's (PR #7164 by @ilitteri)ac8eb46- l1: return the executable minimum from eth_estimateGas (PR #7160 by @ilitteri)bf94de7- l2: make batch-commit resends able to replace, and de-flake the shared-bridge test (PR #7151 by @ilitteri)275da92- l2: normalize legacy omitted-withdrawals bodies read from trusted history (PR #7106 by @ilitteri)
⚡ Performance Improvements
0f3ad2f- l1: sharded + concurrent BAL prefetch warming (flat-KV, accounts, trie-nodes) (PR #6980 by @edg-l)235c935- levm: monomorphize the dispatch loop on the validation observer (PR #7105 by @diegokingston)c02289d- l1: give branch-node hashing a monomorphic RLP encoder (PR #7104 by @diegokingston)
♻️ Refactors
413202c- l1: remove uselessasyncinStore::get_latest_block_number(PR #7129 by @MegaRedHand)5096dea- l1: drop the unused discovery lookup interval config (PR #7163 by @MegaRedHand)1cf93cb- l1: build the local ENR outside the discovery server (PR #7147 by @MegaRedHand)05a04d1- l1: remove deadFrom<u8>impls forChainDataIndexandSnapStateIndex(PR #7187 by @ilitteri)