alethia-reth v1.4.0
Superseded by v1.4.1. The v1.4.0 image build failed on a stale
Cargo.lock, so no v1.4.0 Docker images were published. v1.4.1 ships the same node code; use it instead.
This release moves alethia-reth to reth v2.4.1 (revm 41, alloy-evm 0.37), removes the built-in Masaya network, rejects Amsterdam-era Engine API fields that Taiko does not support, and fixes tracer event forwarding. It also includes the RPC fixes first shipped in v1.3.1. It contains no fork-schedule changes, and Taiko's block execution rules are unchanged.
CLI changes
Removed:
--chain masaya, along with thetaiko-masayaandtaiko masayaaliases. The built-in presets are nowmainnet,taiko-hoodi, anddevnet.
Inherited from reth v2.4.1:
- Discv5 discovery is now enabled by default.
--enable-discv5-discoveryis still accepted but does nothing; use the new--disable-discv5-discovery(or--disable-discovery) to turn discv5 off. --engine.legacy-state-rootis still accepted but does nothing and logs a warning.--engine.state-root-task-timeoutnow defaults to4s(was1s).nodeandre-executenow list reth's--jit/--jit.*options. alethia-reth rejects--jitat startup because Unzen zk gas metering requires the interpreter; the other--jit.*options have no effect.- New optional flags include
--tx-channel-memory-limit(default 1 GiB),--rpc.disable-metrics,--db.disable-metrics,--rpc.compute-state-root-for-eth-simulate,--engine.suppress-persistence-during-build, and--debug.skip-genesis-validation. The Amsterdam block-access-list options (--engine.disable-bal-*,--rpc-cache.max-bals,--db.balstore-cache-size) have no effect on Taiko.
Breaking and operator-visible changes
- Masaya support is removed.
alethia-reth-chainspecno longer exportsTAIKO_MASAYA,TAIKO_MASAYA_HARDFORKS,TAIKO_MASAYA_GENESIS_HASH, orTAIKO_MASAYA_CHAIN_ID. - Because discv5 is now on by default, the node binds UDP port
9200for discv5 unless you disable it. - Proof-history metrics follow the upstream
reth-optimism-trierename. The per-blockreth_optimism_trie_block_*duration and trie-write metrics are no longer emitted. The proof-window gauges moved fromreth_optimism_trie_block_{earliest,latest}_numbertoreth_optimism_trie_proof_window_{earliest,latest}. Update dashboards and alerts. - On first start, proof-history storage that finished initialization but never indexed a live block is migrated in place and logs
migrated legacy proof-history storage. If the stored anchor and earliest block disagree, startup stops and asks for the proof-history storage to be wiped and re-initialized. - Release builds now include trace-level logs: reth's
min-trace-logsdefault replacesmin-debug-logs. - Building from source requires Rust 1.95.
- The reth database does not need a migration or resync.
Engine API and header validation
newPayloadrejects payloads that carryblockAccessListorslotNumber.forkchoiceUpdatedrejects payload attributes that carryslotNumber,targetGasLimit, or a non-zeroparentBeaconBlockRoot. A non-zero beacon root cannot round-trip throughnewPayloadon Taiko. taiko-client never sets any of these fields.- Headers are rejected when Amsterdam is active at their timestamp, or when they carry
blockAccessListHashorslotNumber, matching upstreamEthBeaconConsensus. Payload building also refuses to run under a custom chain spec that activates Amsterdam. No Taiko network schedules Amsterdam.
RPC and tracing fixes
- Tracers now receive
logandselfdestructevents. Previously, the zk gas metering wrapper placed around every tracer dropped both events on all forks. As a result,callTracerwithwithLog: truereturned no logs, and self-destructs were missing from call traces andtrace_*output. eth_simulateV1now applies abeaconRootblock override to the EIP-4788 beacon-roots call in simulated Unzen blocks. Previously that root was always zero.
Dependencies
- reth moves from
27bfddetof2eecc6, which is v2.4.0 plus 9 commits: the revision op-reth pins, with dependencies aligned to v2.4.1. Also upgraded: revm 38 → 41, alloy-evm 0.33 → 0.37, alloy 2.0 → 2.1, andreth-optimism-trie(ethereum-optimism/optimism)bcf489e→4f21ce6. - The zk gas interpreter loop is ported to revm 41 and charges out-of-gas halts exactly as before. Unzen zk gas totals, which are committed to
header.difficulty, are unchanged. - Precompile backends follow reth's defaults: MODEXP now runs on GMP, and P256VERIFY on aws-lc-rs. Gas and zk gas charges are unchanged.
Included from v1.3.1
v1.3.1 was cut from a maintenance branch, so v1.4.0 is the first release from main that includes its fixes:
debug_trace*andtrace_*replay no longer fail at the anchor transaction with-32003.eth_estimateGasno longer fails withzk gas limit exceededfor transactions that use a large share of the Unzen block budget.taikoAuthtx-pool preselection reserves2,000,000zk gas for the anchor transaction.
Full changelog: v1.3.0...v1.4.0