github paradigmxyz/reth v1.0.6
Reth v1.0.6

17 days ago

image

Summary

This release contains performance optimizations, bugfixes, and new features.

It comes with the (still experimental) new EngineAPI implementation which is available as an opt-in via --engine.experimental, drastically reducing the time it takes to handle the fork choice update message (<1ms). ExEx usage in this mode is currently discouraged.
Further performance improvements are underway before this becomes the default implementation of EngineAPI in upcoming versions.

The main bugfixes are:

  • RPC
  • OP-Reth
    • chore: Update granite mainnet time (#10430)
    • fix: only set isSystemtx if true (#10496)
    • fix(op): empty receipts for block not counted by file client (#10581)
    • fix: set gas price for op deposit (#10495)
    • feat: disable l1 data gas cost in --dev mode (#10332)

New dev changes and features include:

  • Dev
    • feat: ChainSpec associated type (#10292)
    • feat(rpc): Add method removal functionality for RPC transports (#10497)
    • feat: add subscribe_safe_block & subscribe_finalized_block to CanonicalInMemoryState (#10317)
    • feat : add the ability to connect to a peer (#10028)

Breaking Changes

  • removed CLI value for rpc module eth_callBundle which is now part of eth: (#10486)

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

See Update Priorities for more information about this table.

All Changes

  • fix(op): empty receipts for block not counted by file client (#10581)
  • fix: op fee fields (#10615)
  • release: v1.0.6 (#10609)
  • chore: bump op-alloy to latest (#10607)
  • test: TransactionsProvider implementation of BlockchainProvider2<DB> (#10594)
  • tree: bump persistence threshold and memory buffer target (#10608)
  • chore(deps): bump alloy (#10537)
  • chore: re-export reth_chainspec in reth (#10604)
  • chore(tree): make on_engine_message more concise (#10605)
  • fix(hive): remove eth_createAccessList tests from expected failures (#10601)
  • chore(trie): clean up state root methods (#10598)
  • Pending receipt (#10597)
  • chore(trie): StorageRootProvider (#10592)
  • ethereum: add unit tests for consensus validation (#10578)
  • chore(trie): remove plain state proof variant (#10593)
  • refactor: split validate_block_pre_execution into hardfork specific functions (#10576)
  • fix: pop consolidation requests in payload builder (#10591)
  • feat(debug): engine reorg util depth (#10575)
  • chore: bump discv5 (#7981)
  • docs(book): update observability.md (#10587)
  • fix(op): receipts import, fix chunked read of file with optional block data (#10577)
  • chore(tree): make remove_before bound inclusive (#10559)
  • chore: add tempfile to dev dep (#10569)
  • refactor(provider): random_block and random_block_range functions (#10563)
  • chore(op): Add OpChainSpec (#10516)
  • chore: sort lints (#10565)
  • test: BlockReader implementation of BlockchainProvider2<DB> (#10557)
  • clippy: add needless_for_each clippy lint (#10555)
  • docs(reth-engine-tree): slightly improve inline docs (#10561)
  • clippy: add manual_is_variant_and clippy lint (#10556)
  • chore: delay initial filter tick (#10564)
  • feat: Properly bubble up InsertBlockFatalError (#10276)
  • fix(engine): memory overlay hashed storage root (#10543)
  • remove transaction forwarder trait (#9678)
  • chore(chainspec): move op stack chain specs to reth-optimism-chainspec (#10485)
  • chore: export RethApiClient trait (#10545)
  • feat(rpc): implement eth_getTransactionBySenderAndNonce (#10540)
  • chore: remove usage of RichBlock (#10538)
  • perf(engine): lazy load overlay trie state (#10541)
  • dev(pool): trait object safe BestTransactions (#10478)
  • perf(trie): remove some clones (#10406)
  • feat: use system call to update blockhashes (#10535)
  • clippy: add implicit_clone clippy lint (#10529)
  • clippy: add if_not_else clippy lint (#10524)
  • Feat: exact gasUsed for eth_createAccessList (#10422)
  • storage: add test_block_body_indices for block_body_indices (#10429)
  • clippy: add unnested_or_patterns clippy lint (#10526)
  • clippy: add redundant_else clippy lint (#10525)
  • chore: rm unused op rpc types (#10534)
  • clippy: add cloned_instead_of_copied clippy lint (#10530)
  • feat: impl From alloy-consensus::TxType for reth_primitives::TxType (#10523)
  • clippy: add option_as_ref_cloned clippy lint (#10528)
  • chore(reth-codec): remove unused code (#10531)
  • chore(reth-codec): use constant (#10533)
  • fix(trie): consider all intermediate nodes invalidated for wiped storage (#10476)
  • chore: fix clippy (#10532)
  • feat: add impl From BlockExecutionOutput for ExecutionOutcome (#10507)
  • tx-pool: add try_from_consensus for PoolTransaction (#10504)
  • chore(deps): weekly cargo update (#10506)
  • primitives: rm IntoRecoveredTransaction for TransactionSignedEcRecovered (#10505)
  • fix: transaction_by_hash_with_meta implementation of CanonicalInMemoryState (#10501)
  • docs: fix git clone urls (#10490)
  • fix: only set isSystemtx if true (#10496)
  • refactor(rpc): Use TransactionInfo instead of individual fields (#10500)
  • fix: set gas price for op deposit (#10495)
  • tx-pool: rm into tx constraint for PoolTransaction (#10057)
  • feat(rpc): Add method removal functionality for RPC transports (#10497)
  • refactor: mv ChangedAccount (#10472)
  • chore(txpool): rename the function of tx_by_sender_and_nonce (#10473)
  • docs: fix broken link in review.md (#10480)
  • chore: remove clippy::missing_debug_implementations (#10491)
  • chore(cli): rename optimism args test (#10492)
  • rpc: remove special module handling for eth_callBundle (#10486)
  • feat : add the ability to connect to a peer (#10028)
  • Add emhane as code owner for optimism crates (#10488)
  • Add emhane as code owner for reth-chainspec (#10487)
  • refactor: replace ForkChoiceStream type with generic stream type (#10458)
  • fix(provider): check list size before calling range.nth (#10460)
  • fix(provider): fix subtract overflow on block_state_by_tx_id (#10467)
  • fix(exex): instrument ExEx::launch with the span (#10481)
  • Remove redundant EthChainSpec::Hardfork (#10470)
  • fix(trie): take earliest value in HashedStorage::from_reverts (#10475)
  • perf(rpc): avoid redundant tx decoding on witness generation (#10474)
  • chore(trie): remove PrefixSetMut::contains (#10466)
  • fix(trie): collect revert state for historical storage root (#10465)
  • refactor: use EIP TX_TYPE_ID (#10471)
  • Add tests for withdrawals provider (#10428)
  • chore(tree): remove BlockAttachment usage (#10453)
  • feat(trie): hashed state from cache (#10455)
  • docs(ci): expand introduction to CI workflows (#10291)
  • fix: FetchFullBlockRangeFuture doesn't return on bad header (#10449)
  • chore(rpc): config network specific transaction type in node builder (#10417)
  • test: BlockIdReader implementation of BlockchainProvider2<DB> (#10362)
  • Test CanonStateSubscriptions for BlockchainProvider2 (#10361)
  • chore(net): expose max concurrent GetPooledTransactions reqs in cli (#10358)
  • feat: ChainSpec associated type (#10292)
  • test: CanonChainTracker implementation for BlockchainProvider2 (#10378)
  • feat: make js-feature non default (#10447)
  • chore: no feature gated imports (#10440)
  • Make js-feature non default (#10445)
  • consensus: fix build_header_template output (#10444)
  • exex: add more robust tests for finished_height update (#10439)
  • consensus: refactor build_header_template (#10442)
  • fix(trie): filter out removed nodes on extend (#10433)
  • evm: wider use of RethEvmBuilder (#9944)
  • fix: range update (#10424)
  • chore: replace RichBlock by Block (#10399)
  • feat: add method in txpool for handling pending transactions (#10303)
  • chore: Update granite mainnet time (#10430)
  • fix link typo on BlockState (#10431)
  • test(provider): RequestsProvider of BlockchainProvider2 (#10356)
  • chore: make consensus/debug-client helpers public (#10423)
  • test: add gh workflow to run hive tests with experimental flag (#10355)
  • test(provider): ChangeSetReader of BlockchainProvider2 (#10415)
  • fix(rpc): apply blockhashes update in witness RPC (#10419)
  • fix(rpc/otterscan): set fullblock.tx_count with block's (#10421)
  • test(trie): fuzz in-memory storage nodes (#10413)
  • test: ReceiptProviderIdExt (#10420)
  • fix: block_range (#10418)
  • chore(lint): allow needless update for tests (#10414)
  • fix(trie): skip cleared storage database lookup on InMemoryStorageTrieCursor::next (#10412)
  • fix(trie): clear all deleted storage nodes on extend (#10411)
  • test: BlockReader implementation of BlockchainProvider2<DB> (#10370)
  • Use more appropriate names for forkchoice subscriptions (#10401)
  • fix: getAccount (#10402)
  • fix(trie): filter in-memory storage node on seek_exact (#10410)
  • chain-state: rm Arc wrapper around BlockState for pending_state (#10408)
  • deps: bump derive_more to 1.0 (#10403)
  • evm: add unit tests for ConfigureEvm with Op cfg (#10280)
  • test: BlockReaderIdExt implementation for BlockchainProvider2 (#10376)
  • feat(node): remove freelist from status log (#10395)
  • fix: reorgs with forks including invalid blocks (#10320)
  • feat: track persistence metrics (#10250)
  • docs: fix discv4 typos (#10394)
  • feat: add ForkChoiceSubscriptions to FullProvider supertrait (#10319)
  • chain-state: add unit test for set_pending_block (#10363)
  • chore(net): expose pending pool imports bound in cli (#10357)
  • chore: invert p2p and network types dep (#10390)
  • feat(provider): implement ForkChoiceSubscriptions for BlockchainProvider2 (#10318)
  • exex: add unit tests for exex manager (#10380)
  • feat: add subscribe_safe_block & subscribe_finalized_block to CanonicalInMemoryState (#10317)
  • dep: rm confy as a dep (#10290)
  • feat: Superchain mainnet - Granite hardfork timestamps (#10387)
  • feat: light cleaning (#10385)
  • chore: update hive expected failures (#10386)
  • chore(db): enable arbitrary feature on reth-db-models (#10384)
  • chore(deps): weekly cargo update (#10379)
  • feat(rpc): get_account (#10369)
  • very small refactor (#10382)
  • feat: improve connecting downloaded blocks (#10368)
  • test(provider): BlockNumReader of BlockchainProvider2 (#10354)
  • chore(tx-pool): pool cli args (#10323)
  • chore(net): Expose max seen transactions history size as cli arg (#10327)
  • fix(net): fix constants for TransactionsManager that use LruMap by length (#10324)
  • feat: add impl From GenesisAccount to Account (#10256)
  • test(provider): HeaderProvider of BlockchainProvider2 (#10330)
  • fix(trie): exclude trie updates for root node (#10306)
  • feat(db): models crate (#10314)
  • fix(payload): 7702 hardfork activation validation (#10360)
  • test(provider): BlockHashReader of BlockchainProvider2 (#10335)
  • dev(primitives): signature conversion (#10371)
  • chore(node): Refactor node builder wrt stable 1.79.0 (#10367)
  • chain-state: add unit test for to_chain_notification (#10373)
  • fix(engine2): ensure static files are up to the tip when coming from an old engine node (#10299)
  • chain-state: derive Default for ExecutedBlock (#10372)
  • docs: fix param name (#10366)
  • refactor(storage): small refactor in convert_block_number (#10364)
  • chore(lint): Fix lint (#10359)
  • feat: disable l1 data gas cost in --dev mode (#10332)
  • rpc: small refactor in ommer_by_block_and_index (#10325)
  • feat: implement tx validator for either (#10328)
  • fix: use saturating add for datagas (#10315)
  • feat(provider): receipt and transaction by id in BlockchainProvider2 (#10281)
  • feat(provider): BlockchainProvider2::transaction_id (#10296)
  • doc: update the recommended hardware in the installation page (#10313)
  • fix(engine): aggregate state for chain notification (#10295)
  • feat(provider): BlockchainProvider2::account_block_changeset (#10311)
  • reth book: add instruction to update rust version (#10308)
  • book: add env guide to exex book (#10310)
  • fix(provider): range methods in BlockchainProvider2 (#10300)
  • fix: set first block at the beginning of batch execution (#10302)
  • feat(net): Add panel for dropped egress cap messages (#10275)
  • docs: add engine kind flag to op-mainnet book (#10289)
  • chore: remove rlp derivation from sealed block (#10287)
  • chore(reth-storage-errors): no_std support (#10011)
  • chore(consensus): ease accepted validation types (#10285)
  • feat: return empty list for post-merge blocks in BlockchainProvider2::ommers (#10286)
  • fix: make RequestsProvider method aware of in-memory state (#10252)
  • perf(tree): re-use intermediate nodes (#9836)
  • chore(engine): enable engine debug streams in new implementation (#10282)
  • feat(ci): compile reth-consensus crate for Wasm (#10277)
  • fix(ci): include Wasm job in merge group success (#10279)
  • fix(network, p2p): Wasm compilation (#10278)
  • rpc: small refactoring in build_transaction_receipt (#10269)
  • feat(ci): check all crates for Wasm (#10084)
  • chore(reth-consensus): no_std support (#9663)
  • chore(reth-execution-errors) no_std (#10048)
  • chore: prevent warnings on docker build (#10273)
  • rpc: rm PeerCount usage (#10271)
  • fix: fix tx propagation when full (#10251)
  • chore(deps): weekly cargo update (#10257)
  • docs: delete interface (#10265)
  • refactor: remove #[reth_codec] and #[derive_arbitrary] macros (#10263)
  • chore: fix typos (#10260)
  • chore(reth-engine-primitives): remove unused code (#10261)

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

What's Changed

New Contributors

Full Changelog: v1.0.5...v1.0.6

Don't miss a new reth release

NewReleases is sending notifications on new releases.