github conduitxyz/conduit-op-reth v2.4.0
conduit-op-reth v2.4.0

4 hours ago

Important

This is a recommended release for all node operators. It upgrades to upstream op-reth v2.6.0 (reth v2.5.2), which removes engine flags and changes engine persistence defaults. Review the upgrade notes below before upgrading.

Summary

Minor release on top of v2.3.1. Highlights:

  • Upstream op-reth v2.6.0 (#86, #91): moves every ethereum-optimism/optimism crate from op-reth/v2.4.4 through v2.5.0 to op-reth/v2.6.0, and the reth pin from op-rs/reth@aef8d3ef to ethereum-optimism/reth@0fbe4285 (reth v2.5.2, revm 42, alloy 2.3). Upstream highlights: an Engine API responsiveness fix during persistence hand-off, correct storage wipes for destroyed accounts in batched persistence, ExEx WAL recovery with non-contiguous file IDs, a transaction pool fix that queues later-nonce transactions that cannot cover their L1 data and operator fees, new SDM metrics, and security updates for rustls (RUSTSEC-2026-0285) and imbl (RUSTSEC-2026-0292).
  • RPC override installation (#82): the flashblocks pending-state overrides (eth_call, eth_estimateGas, eth_simulateV1) and the proofs-history overrides (eth_getProof, debug_executePayload) are now installed only on transports that serve the eth / debug namespace, instead of on every configured transport.
  • Stricter chain spec validation (#77, #80): a node now refuses to start if EvmLimitsFork0 sets txGasLimitCap, maxCodeSize or maxInitcodeSize to 0, or if a state-override fork contains code that cannot be decoded as bytecode. Both were previously accepted and failed only at the activation block.

Upgrade notes

  • Removed flags. --engine.sparse-trie-max-hot-slots, --engine.sparse-trie-max-hot-accounts and the --engine.sparse-trie-max-storage-tries alias are removed. The node refuses to start if any of them is passed; remove them from your launch configuration before upgrading.
  • Engine persistence defaults. --engine.persistence-threshold now defaults to 7 (was 2), and --engine.memory-block-buffer-target defaults to the smaller of the persistence threshold and 5 (was 0), so a node keeps a few more blocks in memory ahead of the last persisted block. Pass --engine.persistence-threshold 2 --engine.memory-block-buffer-target 0 to keep the previous behaviour. Nodes recover the unpersisted blocks automatically after an unclean shutdown.
  • eth_getMultiProof is not served on any transport, including the authenticated endpoint.
  • isSystemTx is a JSON boolean. Transaction RPC responses for deposits with the system-transaction flag return true instead of "0x1". Only pre-Regolith deposits carry this flag.
  • Rollback. A database written by v2.4.0 opens with v2.3.1 and v2.3.0, so rolling back is an image change; no resync or snapshot restore is needed.

Docker

docker pull ghcr.io/conduitxyz/conduit-op-reth:v2.4.0

Multi-arch image digest: sha256:560ef893edaaba1a59b2ece5713acf8569e89de7db17fd01f4a510d139979156 (linux/amd64, linux/arm64).

Changes

  • chore: bump version to 2.4.0 (#92)
  • chore: upgrade op-reth to v2.6.0 (#91)
  • fix(rpc): only install flashblocks call overrides where eth is enabled (#82)
  • chore: upgrade op-reth to v2.5.0 (#86)
  • fix(chainspec): reject state override code that cannot be decoded (#80)
  • ci: require an exact version match in the release tag check (#79)
  • fix(chainspec): reject zero EvmLimitsFork0 limits (#77)
  • docs: fix the clone URL and minimum Rust version in the README (#78)

Full diff: v2.3.1...v2.4.0

Don't miss a new conduit-op-reth release

NewReleases is sending notifications on new releases.