github paradigmxyz/reth v1.1.5
Reth v1.1.5

2 days ago

image

Summary

Important

Legacy engine implementation has been made non-default in v1.1.1.
--engine.legacy flag and legacy engine support is dropped for op-reth in this release and will be removed for reth in the next release.

This release contains performance improvements and bug fixes.

  • fix(simulate_v1): fill transactions sequentually (#13532)
  • fix: only skip last tx commit in eth_simulate (#13528)
  • pref: use batch tx validation in eth validator (#13490)
  • feat(rpc): remove total difficulty (#13303)
  • fix(builder): desired block gas limit (#13351)
  • fix: call bundle recursion (#13425)

OP-Reth

  • includes mainnet holocene fork timestamps that goes live Jan 9th (#13419)

Reth as a library

This contains several breaking API changes surrounding primitive types.

  • Compatible alloy-* version is 0.9.2
  • Make block field private (#13628); migration: replace field access .body with .body()
  • Several primitive types have been unified with alloy's
    • Use alloy block types (#13518)
    • Rename reth_primitives::RecoveredTx functions to match alloy::Recovered (#13663); migration: update renamed functions
    • Remove usage of PooledTransactionsElementEcRecovered alias (#13690); migration: use Recovered<PooledTransaction>
  • Improved no-std/riscv support, more WIP
  • Total difficulty has been removed from all APIs; removed EvmEnvProvider trait (#13503)
  • Make block <-> payload conversions generic over transaction (#13389)

ExEx migration reference: paradigmxyz/reth-exex-examples#35

Next release focuses on finalizing the transition from feature gated Transaction types (eth, op) to dedicated network types followed by cleanup, ergonomic improvements, docs and examples.

Update Priority

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

User Class Priority
Payload Builders medium
Non-Payload Builders medium
Op-Reth high

See Update Priorities for more information about this table.

All Changes

  • chore: release 1.1.5 (#13700)
  • chore: relax tryfrom impl (#13691)
  • chore: rm usage of PooledTransactionsElementEcRecovered alias (#13690)
  • chore: disable reth-primitives std default feature (#13687)
  • Revert "feat(no-std): enable no_std support for op consensus rules" (#13689)
  • chore: no-std consensus common (#13686)
  • feat(no-std): enable no_std support for op consensus rules (#13684)
  • chore: move signedtx ext trait (#13677)
  • chore: move accesslist tests (#13680)
  • fix(tree): do not reveal nodes twice in sparse trie (#13674)
  • chore: remove optimism feature from execution-types tests (#13676)
  • chore: rm uneccessary serde mod (#13681)
  • chore: remove duplicated compact consts (#13679)
  • chore: use secp fns directly (#13675)
  • feat(primitives): re-export alloy Recovered (#13670)
  • chore(root): log multiproof calculation (#13673)
  • chore: bump revm 19.2 (#13667)
  • chore: remove unused WithdrawalsProvider::latest_withdrawal (#13671)
  • refactor: Remove standalone from_recovered functions and make part of TransactionCompat trait (#13653)
  • chore(consensus): Cut down on reth-primitives::TransactionSigned usage (#13659)
  • feat: rename reth_primitives::RecoveredTx functions to match alloy::Recovered (#13663)
  • ci: prettify hive/parse.py (#13668)
  • chore(trie): parallel storage proof should not error on closed recv (#13448)
  • feat: Implement "Add BlockBody::transaction_count helper function" (#13660)
  • chore(deps): weekly cargo update (#13657)
  • chore: mark op chainspec riscv (#13654)
  • chore: replace trie-common dep with alloy-trie (#13652)
  • docs(ci): remove moved deny workflow (#13645)
  • integrate EIP-7840 in chainspec (#13605)
  • chore: use generics for RecoveredTx (#13650)
  • chore: use HashMap::from_iter (#13649)
  • feat: remove PartialEq+Eq from ProviderError and all others affected (#13592)
  • fix: no_std case hashmap imports (#13617)
  • feat: add helper iter for tx hashes (#13638)
  • chore: rm another payload conversion fn (#13637)
  • test: move tests out of reth-primitives (#13636)
  • chore: rm unused recovery fns (#13634)
  • chore: rm some direct header access (#13633)
  • feat: merge BlockBodyTxExt trait into BlockBody (#13613)
  • chore: use alloy TransactionMeta (#13632)
  • chore: use alloy-eip2124 code (#13629)
  • chore: make block field private (#13628)
  • chore: use more payload conversion fns (#13625)
  • chore: remove redundant payload fn (#13624)
  • chore: bump alloy 0.9.2 (#13623)
  • chore: update license to 2025 (#13616)
  • chore: use native conversions for payload to block (#13608)
  • fix: implement StateCommitmentProvider for BlockchainProvider (#13620)
  • chore: lower file client bad message log verbosity (#13619)
  • feat: handle Isthmus in revm_spec_by_timestamp_after_bedrock() (#13607)
  • feat: use alloy block types (#13518)
  • chore(bench): more determinism (#13603)
  • chore(deps): bump alloy-trie 0.7.8 (#13604)
  • chore: bump alloy 0.9.1 (#13602)
  • chore: add ChainSpec::from_genesis (#13601)
  • feat(metrics): Add cumulative transaction counters to improve observability (#12273)
  • feat(bench): make benchmark inputs deterministic using fixed seed (#13586)
  • feat: update revm 19 alloy 09 (#13594)
  • fix: net/nat retain https scheme for external (#13507)
  • fix(storage): update proptest configuration for deterministic bench runs (#13580)
  • chore: correct typo docs (#13557)
  • feat(tx-pool): make benchmark inputs deterministic (#13570)
  • feat(engine): make benchmark inputs deterministic (#13536)
  • chore: include typename in assert (#13595)
  • chore: use correct assert message (#13591)
  • chore: simplify transaction to call request conversion (#13574)
  • chore: move payload builder types to standalone mod (#13593)
  • chore: use correct error message (#13587)
  • chore(deps): weekly cargo update (#13589)
  • chore: replace match with let else (#13585)
  • chore: disable chainspec default features (#13583)
  • chore: add no-std support for eth-wire-types (#13577)
  • chore: update WASM build exclusion list (#13576)
  • chore(db): relax consistent view provider bound (#13566)
  • chore: rm unused dep and add required (#13569)
  • fix: use correct vars (#13567)
  • feat: integrate OpPrimitives (#13556)
  • fix(pool): oversized data error (#13565)
  • fix(pool): max init code error (#13564)
  • feat(net): make benchmark inputs deterministic (#13563)
  • chore: simplify revm specId mapping (#13553)
  • feat: use new engine in e2e tests for OP (#13558)
  • feat: generic data primitives block builder test framework (#13522)
  • chore: make clippy happy (#13561)
  • perf: query bytecodes with &B256 to avoid copying code hash (#13559)
  • chore(version) Remove const_format dependency (#13504)
  • perf: query accounts with &Address to avoid copying address (#13554)
  • fix: typo in thread name (#13555)
  • fix: debug client etherscan (#13542)
  • chore: deduplicate FillTxEnv traits (#13551)
  • chore: make EthStorage generic over transaction (#13549)
  • feat: impl compression traits for op primitives (#13550)
  • refactor: avoid using NoopTransactionPool in OP payload builder (#13547)
  • feat: introduce OpPooledTransaction (#13548)
  • feat: add more impls for OpTransactionSigned (#13546)
  • chore: relax cli bounds (#13543)
  • fix: Compact impl for OpTypedTransaction (#13544)
  • feat: add L2EthApiExt trait (#13539)
  • chore: relax EngineNodeLauncher bounds (#13540)
  • Add drop aware sender new type (fixes #13242) (#13495)
  • chore: make NodeEvent generic over NodePrimitives (#13534)
  • refactor: integrate BuiltPayload::Primitives (#13484)
  • feat: add missing from impls (#13527)
  • chore: move EventSender out of BeaconConsensusEngineHandle (#13533)
  • fix(simulate_v1): fill transactions sequentually (#13532)
  • chore(bench): fix non deterministic bench IDs (#13530)
  • chore: reuse build_import_pipeline for OP (#13529)
  • fix: only skip last tx commit (#13528)
  • feat: use batch tx validation in eth validator (#13490)
  • chore: expose execution error of debug_cmd/merkle.rs (#13515)
  • Fix typo in the command example in the comments Update main.rs (#13524)
  • feat: make ReceiptFileClient generic over receipt (#13523)
  • chore: rm evmenvprovider trait (#13503)
  • chore: replace root fns with alloys (#13501)
  • chore(bench): codspeed name workaround (#13519)
  • chore: mark chainspec as riscv compatible (#13517)
  • chore: disable default std serde_json feature (#13513)
  • chore: disable op- default features (#13511)
  • chore: remove unused rand (#13512)
  • chore: use imported b256 types (#13509)
  • ci: mark trie-common as risc compatible (#13510)
  • chore: correct typos docs (#13505)
  • docs: update https external link (#13508)
  • chore: disable itertools default features (#13500)
  • chore: bump alloy-trie and nybbles (#13502)
  • docs: use ots_ prefix (#13498)
  • fix: reth-trie no_std case hashmap (#13497)
  • chore: use NoopConsensus in CLI unwind (#13487)
  • update links in crates/static-file/static-file/README.md (#13462)
  • feat: relax eth_callBundle bounds (#13485)
  • chore: relax build_receipt (#13486)
  • chore(deps): weekly cargo update (#13494)
  • fix typos (#13489)
  • feat(ethereum-forks): remove total difficulty for hardfork check (#13362)
  • feat: add block traits for alloy types (#13470)
  • ci: don't run codspeed in merge_group for now (#13483)
  • chore(chain-state): MemoryOverlayStateProvider as alias (#13285)
  • chore: add missing from impl (#13477)
  • chore(engine): remove allow dead code annotations in StateRootTask (#13480)
  • chore: enable std with arbitrary (#13479)
  • chore(consensus): Add docs ab soon deprecated BeaconConsensusEngine (#13439)
  • chore: remove revm default std (#13478)
  • chore: use try into directly (#13476)
  • chore: fix unused import in net fetcher (#13474)
  • feat: set up codspeed (#13372)
  • chore: make trie-common no-std (#13473)
  • chore: rm async from state root from bench (#13472)
  • chore: sprinkle a few track_caller (#13471)
  • perf(engine): include selfdestructs in StateRootTask bench input (#13293)
  • chore: fix reth-primitives traits test build (#13467)
  • fix: use correct merge activation block for sepolia (#13466)
  • chore: assert etl_config.file_size != 0 (#13435)
  • fix(tree): destroyed accounts should not have storage in state root task (#13460)
  • chore: bump alloy 0.8.2 (#13459)
  • chore: relax PayloadBuilderService bound (#13456)
  • chore: relax pool maintain future (#13455)
  • meta: update code owners (#13457)
  • chore: use op feature for engine local (#13454)
  • perf(engine): use ParallelProof::multiproof in StateRootTask (#13260)
  • fix(trie): memoize the hash of a revealed sparse node (#13233)
  • perf(trie): use local ThreadPool in Parallel::multiproof (#13416)
  • fix: drop and remove lockfile when test (#13437)
  • feat: add manual broadcast in full (#13453)
  • chore: add missing getters (#13444)
  • chore: remove redundant Send bounds for BlockReader types (#13452)
  • chore: remove redundant bound in EthRequestHandler (#13450)
  • chore: add BlockBody associated type helpers (#13451)
  • chore: add helper trait for BlockReader tied to NetworkPrimitives (#13449)
  • chore: add docs for removing from state in system calls (#13447)
  • Removed manual implementations of core::error::Error (#13370)
  • fix: return bool for set_max_da_size (#13423)
  • feat(root): support proof prefetch in the task (#13428)
  • feat(engine): integrate state root task and comment it (#13265)
  • chore(root): cleanup some debt (#13427)
  • fix(root): send error on failure to retrieve provider (#13426)
  • fix: call bundle recursion (#13425)
  • chore(ci): update hive rpc-compat expected failures (#13424)
  • Add holocene mainnet time (#13419)
  • chore: bump alloy 0.8.1 (#13418)
  • chore: move database to FullNodeTypes (#13414)
  • chore(engine): state root task debug logs (#13415)
  • chore(engine): log about finished state updates in state root task (#13411)
  • perf: rm redundant lookup (#13398)
  • feat: introduce OpNetworkPrimitives (#13335)
  • perf: remove redundant fallback cleanup (#13401)
  • chore: extra data (#13410)
  • chore: replace TrieAccount with alloy's (#13397)
  • chore: rm evm_env_for_raw_block function (#13403)
  • chore(deps): weekly cargo update (#13407)
  • feat: impl SignedTransaction for OpPooledTransaction (#13406)
  • perf: skip lockfile exist checking when disable-lock enabled (#13355)
  • chore: make ensure_well_formed_payload generic over transaction (#13404)
  • fix: break instead of return (#13402)
  • chore: rm noisy debug_asserted traces (#13399)
  • chore: downgrade noisy debugs (#13400)
  • Micro optimizations for pending hash fetching (#13220)
  • chore: Introduce helper type for evm cfg and env tuple (#13377)
  • chore: add test_segment_config_backwards (#13394)
  • chore: releax on canonical state change (#13392)
  • chore: move serde bincode compat bound to NodePrimitives (#13393)
  • chore: rm blob_versioned_hashes (#13390)
  • chore: unify unchecked naming (#13391)
  • feat: make block <-> payload conversions generic over transaction (#13389)
  • perf(engine): include spent calculation time in StateRootTask output (#13387)
  • feat: make Block generic over transaction (#13388)
  • fix(test): exclude lock file from storage files count (#13343)
  • chore: use reth-primitives-traits-directly (#13386)
  • chore: remove PooledTransactionsElement alias (#13384)
  • Propagating OpDAConfig to OpPayloadBuilder (#13375)
  • feat: relax on new head in validator (#13352)
  • chore: ignore warnings from hickory (#13385)
  • perf(history_by_block_hash): reuse provider instead of creating two (#13382)
  • chore: add roundtrip test for StaticFileSegment filename (#13381)
  • chore: use pow for bsc p2p example (#13380)
  • chore: rm pooledtx element type (#13286)
  • chore: misc sealed fn (#13378)
  • chore: use hash fn directly (#13379)
  • chore: small Requests clean up (#13374)
  • chore(trie): make MultiProofTargets a type alias (#13364)
  • feat: remove default receipts for network components (#13371)
  • test: add 7702 mock tx variant (#13373)
  • feat: ethereum-specific transaction (#13368)
  • chore: unused dependencies warnings (#13369)
  • chore: remove the workaround for pre-bedrock OP transactions (#13365)
  • docs: document fork_id behaviour (#13367)
  • chore: update holocene fns (#13366)
  • chore: move all secp256k1 helpers to primitives-traits (#13363)
  • chore(builder): remove extra data from basic payload generator (#13353)
  • chore: relax some op pool validator internals (#13358)
  • chore: rm redundant return (#13361)
  • feat: relax maintain (#13349)
  • fix(builder): desired block gas limit (#13351)
  • perf(engine): cache proof targets in proof sequencer for state root task (#13310)
  • fix(engine): return error on StateRootTask multiproof and root calculation failures (#13356)
  • chore: rm reth-provider dep from payload crate (#13348)
  • chore: use OpTypedTransaction directly (#13350)
  • chore: add BlockBodyIndicesProvider trait (#13347)
  • feat: optimism-specific receipt (#13317)
  • chore: update gas limit on new head block (#13333)
  • feat(trie): replace TrieInput by its components in ParallelProof (#13346)
  • docs: inline mermaid diagrams while aquamarine is fixed (#13302)
  • chore: unify noop provider impls (#13345)
  • feat(rpc): remove total difficulty (#13303)
  • feat: make BuiltPayload generic (#13337)
  • chore: relax eth pooled tx (#13271)
  • chore: move secp256 crypto to primitive-traits (#13341)
  • chore: impl evm env provider for noop (#13342)
  • feat(reth-execution-types): make generic DisplayBlocksChain (#13336)
  • feat(blockchain-tree-api): remove manual implementations of core::error::Error (#13332)
  • chore: add OmmersProvider trait (#13331)
  • fix: use generic receipt in StaticFileProducer (#13324)
  • feat(builder): ethereum builder config (#13315)
  • chore(sdk): fix docs to match generic tx type (#13316)
  • feat(op-isthmus): impl Debug for BlockchainProvider (#13312)
  • chore: rm chainspec max gas limit (#13308)
  • chore(ci): refactor code to build image used in several workflows (#13304)
  • chore(ci): run kurtosis-op twice a day (#13305)
  • feat(engine): integrate blinded provider factory into state root task (#13294)
  • chore: use consistent naming for tx fns (#13306)
  • feat: ethereum-specific receipt (#13295)
  • chore: remove MaybeArbitrary trait (#13301)
  • perf: rm redundant clones (#13299)
  • fix(trie): parallel proof should return empty storage proofs (#13300)
  • chore: rm receiptsext trait (#13296)
  • perf: pass blinded_node path by reference (#13298)
  • feat(EthApi): Add broadcast stream for incoming raw transactions (#13165)
  • fix: only terminate the stream if range is empty (#13281)
  • chore: move tx errors (#13288)
  • chore: improve CompactZstd macro (#13277)
  • chore: rm associated type (#13292)
  • chore: bump version 1.1.4 (#13291)
  • chore: cut down on tx_type usage (#13287)
  • chore: Generic data prims EngineSyncController (#13037)
  • refactor: use constructor functions (#13255)
  • fix: fromstr impl for miner variant (#13289)
  • chore: reduce revm scope in txpool (#13274)
  • chore: introduce receipts generic (#13276)
  • perf: trie micro optimizations (#13282)
  • perf: reduce size of DatabaseError (#13283)
  • perf: enable map-foldhash alloy-primitives feature globally (#13278)
  • feat: add NetworkPrimitives to NetworkBuilder (#13169)
  • Bump alloy to 0.8.0 (#13268)
  • chore: remove unused evm env provider fns (#13272)
  • feat(engine): parallel sparse storage roots (#13269)
  • feat: make engine block downloaders generic over block (#13273)
  • chore: add StorageLocation to BlockBodyWriter trait (#13266)

Binaries

See pre-built binaries documentation.

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

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

What's Changed

New Contributors

Full Changelog: v1.1.3...v1.1.5

Don't miss a new reth release

NewReleases is sending notifications on new releases.