github paradigmxyz/reth v1.0.8
Reth v1.0.8

19 hours ago

image

Summary

This release contains performance improvements and bug fixes:

  • fix: enable js-tracer (#11087)
  • fix: never ban trusted peers (#11254)
  • fix: apply 4788 system call in tracing (#11417)
  • fix: sequencer client must be arced (#11337)

The new Engine API --engine.experimental mode now has ExEx support and has had various stability improvements and bug fixes.
Users should try the --engine.experimental mode.

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

  • fix: windows build (#11465)
  • Map TransferKind::EofCreate => OperationType::OpEofCreate (#11090)
  • chore(provider): clone after filtering on sealed_headers_while (#11459)
  • fix: use correct rpc errors (#11463)
  • feat(grafana): ExEx WAL (#11461)
  • fix: ensure the request's gas limit does not exceed the target gas limit (#11462)
  • feat(rpc): Add codes in execution witness return (#11443)
  • chore(provider): use block_ref instead on BlockState (#11458)
  • chore: release 1.0.8 (#11457)
  • feat: add metrics for failed deliveries (#11456)
  • chore(provider): find last_database_block_number with BlockState anchor instead (#11455)
  • chore(provider): use get_in_memory_or_storage_by_block on fn block_body_indices (#11452)
  • chore(exex): adjust WAL gauge metric names (#11454)
  • chore(provider): use get_in_memory_or_storage on transactions_by_block_range (#11453)
  • feat: impl payload attributes builder (#11336)
  • fix(exex): limit the duration of a backfill job to 30 seconds (#11450)
  • chore: replace Compact with bincode on ETL usage of SealedHeader (#11442)
  • fix(exex): WAL size metric (#11448)
  • primitives: remove optimism re-export in reth-primitives (#11438)
  • fix: env tempdir failure on WAL creation (#11446)
  • docs: fix wrong method name (#11441)
  • chore: make clippy happy (#11439)
  • feat: add get_in_memory_or_storage_by_tx_range (#11414)
  • fix: reset pruned sender numbers on stage drop (#11150)
  • feat(exex): commit notifications to WAL before sending to ExExes (#11354)
  • Fix: Reorder all serde_bincode_compat module definitions (#11435)
  • feat(exex): WAL metrics (#11431)
  • chore(provider): dont recover sender from BlockState transaction on transaction_sender (#11424)
  • chore: remove temporary allow attribute (#11428)
  • chore(sdk): define traits for primitives Block and BlockBody (#11411)
  • chore(provider): rename to get_in_memory_or_storage_by_block_range_while (#11421)
  • fix(exex): do not finalize WAL with a block higher than finalized header (#11420)
  • feat(chain-state): notify about new safe/finalized only if modified (#11383)
  • fix: apply 4788 system call in tracing (#11417)
  • feat(stages): fail Execution if post execute commit input isn't consumed (#11418)
  • feat(trie): bincode compatibility for trie updates (#11409)
  • chore: rm todos (#11400)
  • fix(exex): check exex head against node head to determine canonical (#11410)
  • fix(stages): call post execute/unwind commit hooks (#11413)
  • dev: swap_remove (#11405)
  • feat: add get_in_memory_or_storage_by_block to BlockchainProvider2 (#11384)
  • chore: rm crate reth-rpc-types (#11341)
  • feat(net): Perform graceful network shutdown before dropping network in NetworkManager (#11404)
  • chore: make clippy happy (#11408)
  • chore: add metric and trace for already executed blocks (#11406)
  • fix: fetch header by hash (#11407)
  •  ci: pin clippy to working version (#11401)
    
  • chore: rename default chainspec parser (#11398)
  • chore(Makefile): separate features by spaces only (#11393)
  • fix(engine): is_fork header traversal (#11368)
  • feat(primitives): bincode compatibility for EIP-7702 transaction (#11394)
  • fix: add tracing features to op binary (#11395)
  • fix(tree): use in-memory data first to query total difficulty (#11382)
  • fix: use pending state if available (#11391)
  • chore(db): simplify Compact for Vec (#11361)
  • fix(provider): handle race on fn transaction_id (#11380)
  • chore: Remove redundant impl NetworkManager (#11390)
  • chore(deps): bump some breaking deps (#11388)
  • chore: limit tracing logs to debug by default (#11377)
  • fix(exex): set next file ID when creating WAL storage (#11372)
  • feat(trie): deserialize trie updates with serde as hex (#11369)
  • perf(engine): avoid unnecessary arc clones on new head (#11381)
  • feat: add ReputationChangeWeights::zero (#11375)
  • test(engine): improve deep reorg test (#11378)
  • chore: propagate std feature to alloy-trie (#11371)
  • dev: block_with_senders on BlockState (#11363)
  • fix(evm): propagate optimism and test features correctly (#11373)
  • fix(provider): use canonical_chain on range lookups (#11332)
  • docs: misc in memory docs (#11365)
  • chore: log num hash (#11364)
  • ci(hive): update expected rpc-compat failures (#11367)
  • feat(exex): use rmp-serde for WAL storage (#11353)
  • fix: never ban trusted peers (#11254)
  • chore(cli): Add warning for misconfigured HTTP API flags (#11360)
  • fix(hooks): sort reverts in BundleState before comparison (#11358)
  • perf(db): use Into to encode StoredNibbles (#11350)
  • feat(exex, primitives): serde bincode compatibility (#11331)
  • fix(provider): replace block_state_by_tx_id with get_in_memory_or_storage_by_tx_id (#11340)
  • feat: wire SystemCaller (#11321)
  • fix(providers): collect BlockState before constructing DB provider (#11338)
  • impl Encodable2718, Decodable2718 for TransactionSigned (#11218)
  • fix: sequencer client must be arced (#11337)
  • fix(libmdbx): Some options can only be set after mdbx_env_open (#11328)
  • chore: alloy 0.4 (#11334)
  • deps: remove reth-metrics-derive for metrics-derive (#11335)
  • feat(exex): finalize WAL below the given block (#11324)
  • chore(builder): reorder revm State import (#11316)
  • feat: add SystemCaller helper type (#11068)
  • fix(trie): witness empty root node (#10972)
  • feat(exex): finalize WAL with the lowest finished height (#11323)
  • primitives: rm more alloy_primitives reexports (#11325)
  • primitives: rm more alloy_primitives reexports (#11255)
  • use core::error::Error (#11317)
  • chore: update default payload builder logs (#11315)
  • feat(exex): finalize WAL only when all ExExes are on the canonical chain (#11289)
  • chore(deps): weekly cargo update (#11319)
  • Remove unused dependencies (#11320)
  • chore: rm ToRpcError usage from engine crate (#11311)
  • chore: use core::error (#11313)
  • chore: relax trait bounds on transact fns (#11310)
  • feat: mev_simBundle (#11252)
  • feat: use OpChainSpec in OptimismNode and its components (#11304)
  • fix: improve ecies error fatal variants (#11303)
  • chore(op): unify crate name reth-optimism-* (#11223)
  • chore(blockchain-tree): replace reth-primitives with alloy-eips (#11276)
  • chore: remove generics from Decode and Decompress (#11295)
  • perf(db): cache ProcessUID::own in memory (#11302)
  • chore(deps): bump tracy (#11305)
  • test(rpc): filter test is taking too long (#11288)
  • perf(trie): use unstable sort when sorting for computing roots (#11301)
  • chore: rename param (#11287)
  • chore(exex):move maximum ExExManager capacity to a constant (#11293)
  • fix(reth-ipc): pass through extensions from request (#11300)
  • chore(rpc): use alloy's Keccak256 hasher instead of manually concatenating hash bytes (#11298)
  • perf(db): use encode_to in Scale implementations (#11297)
  • perf: improve IntegerList API to avoid allocations (#11292)
  • feat(trie): extract StorageProof (#11269)
  • feat(exex): send canonical notifications when head is provided (#11280)
  • perf(db): use smallvec for mdbx table names (#11291)
  • optimism: fix 'expecte' (#11290)
  • chore(exex-eips): replace reth-primitives with alloy-eips (#11275)
  • feat: ExExEvent::FinishedHeight takes BlockNumHash instead (#11278)
  • perf: remove sidecar clone if no listeners (#11285)
  • chore: add traces for blob sidecar ops (#11284)
  • fix: make canonical_chain atomic and canonical (#11283)
  • chore: use Arc over Box (#11281)
  • docs: clarify block order (#11279)
  • feat: canonical state for local engine (#11245)
  • chore(trie): early return on empty state (#11271)
  • feat(exex): WAL handle (#11266)
  • feat(exex): add parent hash to WAL block cache, index by hashes (#11263)
  • feat(exex): write notification files atomically (#11264)
  • chore(exex): remove unneeded code (#11267)
  • deps: alloy-trie@0.6.0 (#11260)
  • feat(tree): introduce reorg count metrics in new engine (#11226)
  • primitives: rm more alloy_primitives reexports (#11250)
  • move op storage tests into new crate reth-optimism-storage (#11233)
  • feat: tx and receipt compression utils for no-std config (#11112)
  • fix(cli): fix ImportReceiptsOp (#11216)
  • chore: update revm and alloy primitives (#11235)
  • chore:include payload id in trace (#11249)
  • feat: make NetworkConfigBuilder independent of concrete ChainSpec (#11176)
  • primitives: rm more alloy_primitives reexports (#11222)
  • primitives: rm H* deprecated types (#11246)
  • chore(trie): replace ParallelStateRoot with AsyncStateRoot (#11213)
  • refactor: extract optimism receipts hashing logic to reth-optimism-consensus (#11230)
  • ci: pin clippy to working version (#11237)
  • chore(evm): replace reth-primitives with alloy (#11232)
  • reth-codec: remove unused derives from alloy compat types (#11231)
  • chore(tree): make tree trace targets all engine::tree (#11227)
  • chore(tree): add legacy tree metrics to new engine (#11175)
  • remove IntoRecoveredTransaction (#11221)
  • chore: update helper fn (#11209)
  • fix(storage): only delete static file if last_block is on a previous static file (#11029)
  • doc: update some exexhead docs (#11214)
  • refactor(exex): move notifications to a separate module (#11212)
  • feat(storage): add HeaderExt to compact Header (#11166)
  • rpc-types: rm alloy-rpc-types-engine reexport (#11206)
  • feat(exex): ExExNotification::into_inverted (#11205)
  • perf(engine): migrate to AsyncStateRoot (#10927)
  • primitives: rm alloy_consensus::transaction reexports (#11191)
  • feat(exex): finalize ExEx WAL on new finalized block header (#11174)
  • feat(rpc): Replace TypedTransactionType (#11089)
  • feat: verify unused bits on types derived with Compact (#11131)
  • chore(cli): print an hex encoded string instead on reth db get ... --raw (#11195)
  • primitives: rm TxKind reexport (#11197)
  • primitives: rm UintTryTo reexport (#11196)
  • primitives: rm revm-primitives reexport (#11193)
  • primitives: rm alloy_eips::eip2930 reexports (#11188)
  • feat: add slack notification for hive tests (#11189)
  • chore: Remove ChainSpec from PayloadConfig (#11103)
  • primitives: rm alloy_eips::eip7702 reexport (#11179)
  • chore(tree): move persistence_state out of mod.rs (#11180)
  • primitives: rm alloy_genesis reexport (#11181)
  • primitives: rm alloy_eips::eip4844::kzg_to_versioned_hash reexport (#11182)
  • chore(tree): log and diff header root difference in witness hook (#11184)
  • feat(grafana): create initial Reth Performance grafana (#11183)
  • fix(chain-state): fork choice stream should return only when changed (#11178)
  • primitives: rm alloy_eips::eip1559::calc_next_block_base_fee reexport (#11177)
  • feat: relax chainspec bounds on NodeBuilder and rpc types (#11160)
  • feat(witness): use block executor to execute block inside debug_execution_witness (#11149)
  • fix(storage): dont skip consistency checks for op-mainnet if using minimal bootstrap (#11099)
  • chore(rpc): remove redundant trait bound (#11162)
  • feat(exex): write ahead log (#10995)
  • feat(trie): use packed encoding HashSet<Nibbles> serialization (#11147)
  • feat: add transact function to 7251 (#11158)
  • feat: add transact function to 4788 (#11157)
  • chore(ethereum): replace reth-primitives with alloy (#11155)
  • feat: EngineValidator (#11144)
  • feat: add transact function to 7002 (#11156)
  • Refactor Block (#10913)
  • fix: use nibbles map serialization for TrieUpdates (#11146)
  • feat: add FlatCallTracer (#11114)
  • chore(codecs-derive): update should_use_alt_impl (#11148)
  • feat(trie): add way to serialize maps with Nibbles keys (#11141)
  • chore(trie-common): make tests run without arbitrary (#11142)
  • fix: increment post block balances in invalid block hook (#11139)
  • feat(grafana): make execution duration percentage stack plot (#11137)
  • fix(docs): fix error message for missing jwtsecret flag (#11138)
  • feat(trie): use global thread pool in async state root calculation (#11057)
  • chore: remove redundant phantom (#11134)
  • fix(tree): adjust both number and hash when removing persisted blocks from memory (#11133)
  • feat: add execute_with_witness (#11074)
  • feat(engine): save original files for witness invalid block hook (#11132)
  • chore: unify last persisted block hash and number in PersistenceState (#11126)
  • chore: rm redundant builder types (#11129)
  • feat: add ChainSpec AT to EngineTypes (#11054)
  • chore: remove reth-rpc-types import (#11125)
  • docs(ci): add docs to bench.yml (#11128)
  • feat: use alloy Signature type (#10758)
  • chore(deps): weekly cargo update (#11101)
  • primitives: use alloy Header struct (#10691)
  • feat: add set code tx helper to e2e utils (#11118)
  • chore: Log an error when failing to resolve external ip address (#11085)
  • storage-api: update BlockReaderIdExt (#11110)
  • chore(hive): update expected failures (#11121)
  • feat: add deploy tx helper to e2e utils (#11117)
  • docs: correct requested_empty_payload metric docs (#11119)
  • chore: clear reth rpc types from reth binary (#11120)
  • chore(exex): replace reth-primitives with alloy (#11104)
  • Add payload builder metrics to Grafana dashboard (#11102)
  • rpc: rm useless reexports in reth-rpc-types (#11113)
  • fix(cli): handle case when first transaction range is None on reth db stats (#11107)
  • use HashMap::with_capacity (#11106)
  • rpc: rm useless alloy_rpc_types reexport (#11098)
  • rpc: rm useless alloy_rpc_types_debug reexport (#11095)
  • rpc: rm useless alloy_rpc_types_trace reexport (#11096)
  • Split MevApi trait into two #11036 (#11081)
  • rpc: rm useless alloy-rpc-types-anvil reexport (#11094)
  • rpc: rm useless alloy-rpc-types-mev reexport (#11093)
  • chore: reth payload without reth rpc types (#11097)
  • rpc: rm useless alloy_rpc_types_txpool reexport (#11092)
  • rpc-types: replace reth TransactionRequest by alloy (#11091)
  • chore(storage): add test cases for Transactions and Receipts truncation (#11070)
  • chore: stop using static mut (#11088)
  • fix: enable js-tracer (#11087)
  • chore: replace reth-rpc-types by alloy-rpc-types (#11071)
  • chore: allow static mut ref (#11083)
  • Add new NetIf variant to NatResolver for IP resolution via network interface (#10922)
  • chore: remove dead_code on InMemoryAccountTrieCursor (#11080)
  • perf: increase threads in global pool (#11075)
  • feat(tree): add more insert block debug logs (#11078)
  • Move OptimismHardfork to new crate reth_optimism_forks (#10963)
  • Replace reth-provider dep in reth-rpc-eth-types (#11077)
  • docs: fix rpc-types-compat in docs (#11076)
  • chore(rpc): remove use of extensible transaction + receipt types (#9774)
  • chore(storage): add test cases for Header truncation (#11048)
  • feat(payload): abstract payload builder in trait (#10965)
  • net: replace reth-primitive imports with alloy-eips (#11027)
  • docs: correct optimism snapshot download url (#11065)
  • test: improve test coverage for 4844 rlp transactions (#11058)
  • chore(engine): replace reth_primitives with alloy_primitives (#11064)
  • chore(deps): bump revm to 14.0.2 (#11063)
  • chore(ci): unpin nightly version in lint job (#11062)
  • chore(rpc): use FullNodeComponents::Network in EthApiBuilderCtx (#10996)
  • fix(discv5): change default discv5 port (#11051)
  • fix(tree): prevent noisy canonical block debug logs (#11061)
  • refactor: use pre-genned wallet from e2e utils in test (#11059)
  • feat: add Display for BeaconConsensusEngineEvent (#11055)
  • feat: impl Display for ChainEvent (#11056)

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.0.8-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 reth-v1.0.8-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 reth-v1.0.8-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 reth-v1.0.8-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 reth-v1.0.8-aarch64-apple-darwin.tar.gz PGP Signature
System Option - Resource
Docker paradigmxyz/reth

What's Changed

New Contributors

Full Changelog: v1.0.7...v1.0.8

Don't miss a new reth release

NewReleases is sending notifications on new releases.