github paradigmxyz/reth v1.8.0
Reth v1.8.0

latest release: v1.8.1
9 hours ago

image

Reth v1.8.0

Summary

This release includes activation timestamps for the upcoming Fusaka hardfork.
Also includes rpc fixes, performance improvements and new SDK features.

Bug Fixes

  • Fixed block gas limit validation in RPC calls (#18583)
  • Fixed incorrect RPC method names in trace calls documentation (#18619)
  • Disabled transaction gas limit checks in RPC calls for Osaka compatibility (#18473)
  • Fixed peer total difficulty validation during Ethereum handshake (#18611)
  • Fixed timestamp-derived maximum blob count on launch (#18590)
  • Prevented double-processing of transaction pool tiers (#18446)
  • Added tree config setting for optimizing canonical header unwinding (#18420)

Performance

  • Optimized in-memory trie cursor with Vec<Option<...>> instead of HashMap (#18479)
  • Significant performance improvement by reusing MDBX DBIs for the same transaction (#18292)
  • Open MDBX DBIs only once at startup instead of per-operation (#18424)
  • Optimized segment operations by caching lookups (#18588)
  • Reduced memory usage by downsizing transaction priority from U256 to u128 (#18413)
  • Use NoopProvider for pending block state root calculations (#18523)

Features

  • Made send_raw_transaction_sync timeout configurable via --rpc.send-raw-transaction-sync-timeout flag (default: 30s) (#18558)
  • Added admin_clearTxpool RPC method (#18539)

OP Stack

v1.7.0 introduced support for local flashblocks, this release now also supports flashblocks in eth_getTransactionReceipt and eth_sendRawTransactionSync

Features

  • Implemented minimum base fee feature for OP chains with Jovian upgrade (#18407)
  • Initial implementation of FlashBlockConsensusClient engine sidecar (#18443)
  • Improved pending state handling using flashblocks (#18518)
  • Updated superchain commit for latest chain configurations (#18481)
  • Specialized send_raw_transaction_sync for op-reth with flashblocks support (#18586)

Bug Fixes

  • Fixed canonical chain updates for OP Stack chains (#18410)
  • Fixed flashblock usage in transaction receipt responses (#18530)
  • Fixed interop maintenance task activation (#18563)

SDK

Features

  • Replaced tx_hash method with TxHashRef trait bound (#18362)
    Migration for custom Transaction types: move SignedTransaction::tx_hash to TxHashRef implementation
  • Enhanced type safety in CLI interfaces (#18375)
  • Added Future associated type to LaunchNode with customizable local attributes builder (#18556)
  • Added CliApp wrapper for easier Ethereum CLI configuration (#18458)
  • Added convert_receipt_with_block method for more flexible receipt handling (#18542)
  • More flexible RPC receipt handling for custom implementations (#18501)

Dependencies
Compatible versions:

revm: 29.1.0
alloy: 1.0.35
op-alloy: 0.20.0
alloy-evm: 0.21.0
revm-inspectors: 0.30.0

Update Priority

This table provides priorities for which classes of users should update particular components.

User Class Priority
Payload Builders high
Non-Payload Builders high
Non-Payload Builders high

See Update Priorities for more information about this table.

All Changes

  • chore: update version to 1.8.0 in Cargo.toml (#18638)
  • fix: check request gas limit before (#18639)
  • chore(observability): add tokio runtime with custom thread naming (#18635)
  • docs: update dashboard table and rpc urls (#18637)
  • feat: add osaka+bpo timestamps (#18627)
  • chore: disable fee charge in env (#18634)
  • chore: bump inspectors 0.30 (#18633)
  • chore(revert): revert tokio runtime with custom thread naming (#18631)
  • chore: bump deps (#18630)
  • chore(observability): add tokio runtime with custom thread naming (#18623)
  • chore(primitive-traits): remove redundant auto-trait bounds from FullNodePrimitives (#18626)
  • docs: fix incorrect RPC method names in trace calls (#18619)
  • fix(cli): bootnode default address (#18617)
  • fix(primitives-traits): simplify Rayon bounds and fix docs (#18620)
  • chore: specialize send_raw_transaction_sync for op-reth with flashblocks support (#18586)
  • fix(handshake): validate peer TD from their_status_message during eth handshake (#18611)
  • chore: enforce max tx gas limit on estimate and accesslit (#18612)
  • fix: disable block gas limit (#18583)
  • chore: Remove reth recover storage-tries sub-command (#18580)
  • fix: replace tx_hash method with TxHashRef trait bound (#18357) (#18362)
  • test: add test case for op tx env conversion (#18581)
  • fix(cache): Ensure execution cache remains locked until updated (#18564)
  • test(engine): add new payload handling tests for canonical insertion and invalid ancestors (#18608)
  • docs: multiple small textual defects (#18598)
  • chore(deps): weekly cargo update (#18600)
  • chore(ci): unpin teku image for kurtosis-op (#18595)
  • chore(ci): update expected and ignored hive tests (#18594)
  • perf(persistence): lookup segment operation once (#18588)
  • feat(rpc): make send_raw_transaction_sync timeout configurable (#18558)
  • fix: use timestamp derived max blob count on launch (#18590)
  • chore(payload-builder): relax Sync bounds on resolve futures (#18585)
  • chore(db): Simplifications to trie-related storage-api methods (#18579)
  • chore: clippy manual_string_new warning in version.rs (#18576)
  • chore(trie): Use Vec<Option<...>> in InMemoryTrieCursor (#18479)
  • fix(rpc): return empty log set for invalid filter block ranges (#18112)
  • fix(txpool): prevent double-processing of tx pool tier (#18446)
  • fix(reth-bench): do not panic on empty results (#18570)
  • fix(optimism): always enable interop maintenance task if activated (#18563)
  • chore(evm): add public constructor to BlockAssemblerInput (#18559)
  • feat: add Future AT to LaunchNode and allow customizing local attributes builder (#18556)
  • chore: map NaN to 0.0 (#18560)
  • chore(chainspec): reuse local hardforks in DEV instead of cloning again (#18557)
  • chore(docker): add FEATURES for op dockerfile (#18489)
  • chore(consensus): update EIP-7825 error message format (#18549)
  • docs(op): decompress the state file before init-state (#18416)
  • feat: tree config setting for unwinding canonical header (#18420)
  • feat(rpc): add admin_clearTxpool api (#18539)
  • chore(ci): bump hive timeout (#18544)
  • feat(rpc): Add convert_receipt_with_block method to ReceiptConverter (#18542)
  • chore: add cache traces (#18538)
  • docs: document critical cache safety assumptions in ExecutionCache (#18536)
  • feat(op-reth): initial setup FlashBlockConsensusClient engine sidecar (#18443)
  • refactor: EmptyBodyStorage block reader logic (#18508)
  • feat(node): rename debug.rpc-consensus-ws to debug-rpc-consensus-url to suport HTTP (#18027)
  • fix(rpc): use flashblock when preparing tx response on gettxreceipt (#18530)
  • chore(ci): bump hive eest tests to v5.1.0 (#18528)
  • fix: use noopprovider for pending block state root (#18523)
  • refactor(evm): Replace revm_spec* functions with alloy-evm and alloy-op-evm versions (#18526)
  • deps: Upgrade alloy and alloy-evm versions 1.0.30 => 1.0.32 and 0.21.0 => 0.21.1 respectively (#18525)
  • docs(engine): improve cache naming and documentation (#18457)
  • feat: relax OpEngineValidatorBuilder for more custom payload types (#18520)
  • fix(trie): Don't run repair-trie if MerkleExecute is incomplete (#18497)
  • chore(engine): remove calldata exception workaround (#18521)
  • feat(engine): fallback for when both state root task and parallel state root failed (#18519)
  • feat(optimism): Implement local_pending_state for RPC that uses pending_flashblock (#18518)
  • feat(op/jovian): implement min base fee in op-reth. bump alloy, alloy-evm deps. (#18407)
  • fix(docs): correct BlockBody root docs and RecoveredBlock “safer variant” references (#18510)
  • chore(ci): run eest osaka tests on hive workflow (#18516)
  • chore: add myself to CODEOWNERS (#18514)
  • feat(metrics): add transaction error counter for prewarming (#18509)
  • fix: don't override existing tables in create_tables_for (#18511)
  • chore: add myself to CODEOWNERS for engine and stages (#18512)
  • fix: don't require closure to be Debug (#18507)
  • chore(engine): avoid panic on mpsc send in sparse trie worker (#18502)
  • feat: relax EthBlockAssembler (#18505)
  • feat: make EthBuiltPayload generic over NodePrimitives (#18504)
  • feat: more flexible rpc receipts (#18501)
  • chore: skip prewarm transact errors (#18498)
  • fix(engine): exit MultiProofTask loop on closed internal channel (#18490)
  • fix(cli): disallow --instance 0 (#18496)
  • docs: fix incorrect transaction type count (#18437)
  • docs(engine): fix LiveSync target doc and clarify disable-parallel-sparse-trie semantics (#18478)
  • chore: deconstruct non-exhaustive (#18492)
  • chore: update superchain commit (#18481)
  • feat(op-reth): specialize get_transaction_receipt to check pending flashblocks (#18374)
  • fix: missing generic type hint for cursor (#18483)
  • feat(network): add shadowfork block hash filtering for peers (#18361)
  • feat: Block::iter_recovered (#18476)
  • feat(storage): bump MDBX map size to 8TB (#18360)
  • fix(rpc): disable tx gas limit in calls (#18473)
  • feat: add CliApp wrapper for ethereum CLI configuration and execution (#18458)
  • chore(ci): update ignored hive tests (#18412)
  • fix(rpc): add validation for missing headers in debug execution witness (#18444)
  • perf(db): open MDBX DBIs only once at startup (#18424)
  • fix(engine): remove redundant method-level where bound in InvalidBlockWitnessHook (#18459)
  • fix(engine): perform cache updates with guard (#18435)
  • perf: Enforce EIP-7825 transaction gas limit for Osaka (#18439)
  • chore(ci): unpin kurtosis op package (#18456)
  • docs: multiple small textual defects (#18434)
  • chore: remove type aliases (#18433)
  • chore(deps): weekly cargo update (#18431)
  • chore: move and rename PendingBlockAndReceipts to BlockAndReceipts (#18430)
  • chore: clean up TS warnings in search index & file finder (#18426)
  • chore: add state and response to miner error (#18422)
  • feat: add helper to PendingBlockAndReceipts (#18423)
  • feat: fn recovered_tx to indexedTx (#18421)
  • chore(storage): remove unused primed_dbis (#18415)
  • perf: downsize mempool tx priority from U256 to u128 (#18413)
  • feat(observability): add phase-level observablity to newPayload processing (#18308)
  • fix: dont update canon chain to ancestor for opstack (#18410)
  • feat(txpool): break down queued transaction states into specific reasons (#18106)
  • perf(db): reuse MDBX DBIs for the same tx (#18292)
  • chore: update e2e-test-utils code owners (#18397)
  • fix(e2e): persist accepted header in CheckPayloadAccepted and align timestamp (#18275)
  • chore: fixed broken link in history-expiry.mdx (#18400)
  • chore: use decode_2718_exact for recover raw txs (#18381)
  • fix: still use real chain id for no-op network (#18382)
  • feat: replace PendingBlockAndReceipts tuple with dedicated struct (#18395)
  • fix: map EIP-7623 gas floor errors to expected exception type for test compatibility (#18389)
  • fix(docs): mv search-index to dist from .vocs (#18390)
  • fix(docs): disable jekyll which removes the search-index (#18388)
  • fix: relax nonce gap rule if configured (#18385)
  • feat: add helper aliases for node adapters (#18366)
  • refactor!: more type-safety in cli (#18375)
  • perf(trie): Use ParallelSparseTrie (if enabled) for storage tries (#17959)
  • fix: check payload id (#18370)
  • feat: bump hive eest tests (#18013)
  • fix(engine): avoid block fetching inconsistencies for checks during reorgs (#18368)
  • feat(engine): check header validity after invalid transaction (#18356)
  • fix(docs): include .vocs to retain search-index (#18363)
  • feat: add some ethapi builder fns (#18358)
  • perf: optimize canonical_hashes_range with Vec::with_capacity pre-allocation + benchmark (#18072)
  • fix: add is_osaka check before erroring in default_ethereum_payload (#18355)
  • fix: fix search in vocs doc (#18354)
  • feat(op-sdk): custom precompiles (#18350)
  • fix(prune): TransactionLookup pruning issues with pre-merge expiry (#18348)
  • feat: support customizable RPC namespace parsers (#18160)
  • feat(stateless): Run EEST tests in stateless block validator & bug fixes (#18140)
  • refactor(revm): (#18150) use hardfork activation helpers (#18349)
  • perf: use debug_assert for parked pool lookup (#17712)
  • fix(stages): implement entities checkpoint update in merkle stage unwind (#18131)
  • fix(ci): pin teku image to fix kurtosis-op build (#18345)
  • perf(reth-engine-local): use VecDeque reduce removal operations (#18198)
  • feat(op-reth/flashblocks): subscribe to the flashblock sequences produced (#18276)
  • fix: properly compute genesis hash (#18300)
  • perf(merkle-stage): only fetch checkpoint in the branch that needs it (#18339)
  • feat: cache latest built payload (#18324)
  • chore(deps): bump actions/stale from 9 to 10 (#18335)
  • chore(deps): bump actions/github-script from 7 to 8 (#18334)
  • chore(deps): bump actions/setup-go from 5 to 6 (#18332)
  • chore(trie): use read-only db handle during repair-trie dry-runs (#18328)
  • docs: update public dashboards (#18331)
  • chore: bump docs version 1.7.0 (#18326)

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E

Reth

System Architecture Binary PGP Signature
x86_64 reth-v1.8.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 reth-v1.8.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 reth-v1.8.0-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 reth-v1.8.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 reth-v1.8.0-aarch64-apple-darwin.tar.gz PGP Signature
Docker paradigmxyz/reth -

OP-Reth

System Architecture Binary PGP Signature
x86_64 op-reth-v1.8.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 op-reth-v1.8.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 op-reth-v1.8.0-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 op-reth-v1.8.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 op-reth-v1.8.0-aarch64-apple-darwin.tar.gz PGP Signature
Docker paradigmxyz/op-reth -

What's Changed

New Contributors

Full Changelog: v1.7.0...v1.8.0

Don't miss a new reth release

NewReleases is sending notifications on new releases.