Pectra
This release is Pectra ready and includes timestamps for the upcoming Holesky and Sepolia hardforks.
Network | Timestamp |
---|---|
Holesky | Feb 24 2025 21:55:12 GMT |
Sepolia | Mar 05 2025 07:29:36 GMT |
--engine.legacy
deprecation
As announced in v1.1.5, this release fully removes support for the --engine.legacy
option.
Users that rely on the legacy behaviour where blocks are immediately flushed to disk should run with --engine.persistence-threshold 0
and --engine.memory-block-buffer-target 0
to restore that behaviour.
Gas Limit increase
Default suggested gas limit is now 36M: #13318
Performance
This release includes a new State Root Task and Sparse Trie data structure that improve the state root computation performance, and it’s enabled by default for all users.
It reduces the engine_newPayload
call latencies by up to 50%. The average 99th percentile response time has been reduced from 120ms to 80ms. This work is part of ongoing improvements that will be rolled out in upcoming releases.
For more technical details on how the new design works, see https://github.com/paradigmxyz/reth/blob/main/crates/engine/tree/docs/root.md.
We’re going to be implementing more optimizations & testing, and then roll this out on OP Stack L2s for all OP-Reth users by default as well.
OP Stack
- This release contains some preparations for the upcoming Isthmus hardfork, but is not yet Isthmus ready.
- Includes support for forwarding
sendRawTransactionConditional
to the sequencer.
Reth as a library
This release introduces new top level meta crates for easier Reth dependency management:
reth_ethereum
re-exports various commonly used Ethereum and Reth specific types, such as primitives, node components, RPC…reth_op
re-exports various commonly used Optimism and Reth specific types, such as primitives, node components, RPC…
Primitives
This contains several breaking API changes surrounding primitive types.
- Compatible
alloy-*
version is 0.11.1 - This release finalises the separation of Etheruem and Optimism specific primitive types (
Block
,Transaction
,Receipt
). - The core abstraction is now defined by the
Block
trait inreth-primitives-traits
. The Ethereum types are now included inreth-ethereum-primitives
and optimism types inreth-optimism-primitives
- This release stabilises the primitive abstraction and introduces:
SealedHeader<Header>
: supports lazy block hashingSealedBlock<Block>
: contains theSealedHeader
andBlockBody
RecoveredBlock<Block>
:SealedBlock
with all recovered transaction senders.
Conversions are now embedded into the trait abstraction, such as:
Block::try_into_recovered
returnsRecoveredBlock<Block>
Block::seal
returnsSealedBlock<Block>
SignedTransaction::try_recover
returnsRecovered<SignedTransaction>
All internals can only be accessed via functions, so block.body.transactions
now becomes block.body().transactions()
.
The Block
, BlockBody
and SignedTransaction
trait were extended with additional helper functions, such as:
BlockBody::transaction_count
BlockBody::encoded_2718_transactions_iter
This introduces a new container type for the ExecutedBlock
:ExecutedBlockWithTrieUpdates
which includes the ExecutedBlock
and the trie updates of the block.
Deprecated
This release marks various primitives types as deprecated:
BlockWithSenders
which is nowRecoveredBlock<Block>
SealedBlockWithSenders
which is also justRecoveredBlock<Block>
RecoveredTx
is now justRecovered
Deprecated types will be removed in upcoming releases.
Components
This release contains breaking changes for configuring a custom payload builder: #14276, for migration see also: #14320
The PayloadServiceBuilder
setup now consists of two steps, allowing to reuse the default generator.
ExEx migration reference: paradigmxyz/reth-exex-examples#36
Upcoming features
- Upcoming releases will rollout a transition to alloy-rs/evm in combination with a migration to new the new revm implementation. This will allow more flexibility for things like custom evm modifications.
- Combined with that fully RISC-V compatible implementations of the OP-Stack and Etheruem block execution implementations are in progress.
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 |
See Update Priorities for more information about this table.
All Changes
- fix(ci): docker release (#14458)
- chore(ci): update hive expected failures (#14454)
- chore: release v1.2.0 (#14438)
- feat: add Block::seal (#14451)
- chore: remove
BatchExecutor
(#14453) - fix(trie): reveal blinded sparse trie when calculating root (#14449)
- feat: add Consensus to
ExecutionStage
(#14447) - feat(grafana): add block validation overhead graph (#14431)
- fix(grafana): use correct datasource for all metrics (#14432)
- feat(op, cli): add cli option to enable tx conditional (#14421)
- chore: export cli from reth ethereum (#14444)
- docs(tree): state root task (#14400)
- feat(optimism): disable state root task by default (#14446)
- chore: use shorter map names (#14445)
- Increase default gas limit from 30M to 36M (#13318)
- chore: export exex (#14443)
- refactor: Add more low-level methods to
Executor
(#14440) - chore: bump alloy 0.11.1 (#14439)
- feat: add MaybeSerdeBincodeCompat to SignedTx (#14433)
- feat: Return root result without blocking due to sparse trie Drop (#14333)
- chore: use reth-ethereum in example (#14409)
- feat(l2-withdrawals): Define
OpEngineApiBuilder
(#14426) - chore: phase out reth-primitives from op-evm (#14428)
- Fix branch (#14416)
- chore: rm unused err variant (#14427)
- fix: use alloc::vec::Vec (#14423)
- feat: impl serde for OpPrimitives (#14422)
- feat: append tx conditional to pooled tx (#14403)
- feat(l2-withdrawals): Define
OpEngineApi
(#14414) - feat: add alloy-compat for op prims (#14406)
- docs: Complete missing stage descriptions in stages.md (#14415)
- chore(tree): expect message on state root handle unwrap (#14419)
- fix(tree): state root task finished log (#14418)
- perf: only fetch parent if not latest (#14412)
- feat: add DecodedStorageProof and DecodedStorageMultiProof (#14391)
- fix: use generic table types (#14413)
- fix(ci): changes in kurtosis-op network config latest optimism package (#14402)
- chore: add root_with_updates method to sparse trie (#14393)
- chore: bump revm 19.5 (#14408)
- fix(validation-rpc): validate against parent, not latest (#14405)
- feat(bin, engine): make state root task default (#14371)
- feat(engine): use Hash Builder as a fallback to the Sparse Trie on newPayload (#14387)
- feat: add reth-op crate (#14401)
- Decode raw conditional correctly (#14397)
- Add helper trait (#14394)
- chore: remove unused arbitrary dep from optimism-primitives (#14392)
- chore: rm unused dependencies from optimism crates (#14396)
- fix: bytecode override (#14390)
- feat: Add cli arg for pool lifetime (#14273)
- Introduce StatusEth69 for
eth/69
status messages (#14292) - feat: add cross-block cache size cli arg (#14305)
- chore: correct the comments (#14339)
- feat(op, txpool): impl send_raw_tx_cond endpoint (#14311)
- chore: re-export rpc types (#14381)
- chore: abstract
OpPayloadBuilder
overChainSpec
(#14374) - feat(l2-withdrawals): Use
OpExecutionPayloadV4
for new payload v4 (#14379) - Added from<alloy_rpc_types_eth::Transaction> for TransactionSigned (#14350)
- fix(trie): do not reveal same node twice in sparse trie (#14370)
- feat: add operator fee params on RPC L1BlockInfo (#14269)
- feat: add reth-eth meta crate (#14361)
- feat(l2-withdrawals): Declare
OpEngineApiServer
andOpEngineApiClient
(#14359) - chore: remove code snippets from stages.md (#14367)
- feat(engine): invalid block event (#14365)
- feat(tree): enter tracing span for each storage trie in state root task (#14363)
- feat: avoid zstd dependency in reth-evm, reth-evm-ethereum and reth-optimism-evm (#14356)
- chore: rm reth-primitives from eth payload (#14357)
- Fix: Correct functionality of
get_queued_transactions_by_sender
andget_pending_transactions_by_sender
(#14353) - feat:
EngineApiBuilder
(#14354) - prague: testnet timestamps (#14270)
- add debug_chainConfig endpoint (#14346)
- added BeaconConsensusEngineHandle to RpcHandle (#14348)
- added helper error enums for L1BlockInfoError (#14326)
- refactor: move
ValidationApi
setup toEthereumAddOns
(#14342) - added EventSender to FullNode type (#14268)
- chore(ci): pin op-node image for kurtosis-op (#14343)
- chore(deps): weekly
cargo update
(#14340) - feat(engine): emit events with executed blocks (#14341)
- test: add a test for devnet failure (#14288)
- chore: make stages types no-std (#14334)
- fix: update --rpc-cache.headers name (#14336)
- feat: add other helpers for ProviderError (#14325)
- chore: add codec and serde features to prune types (#14327)
- chore: typos (#14330)
- chore: add serde feature to stages types (#14329)
- chore: silence unused warnings (#14328)
- feat: Add
is_vx
helpers for EngineApiMessageVersion (#14323) - chore: rm reth-primitives from engine api crate (#14324)
- feat: add providerfactory builder to OpNode (#14322)
- chore: rm reth_primitives from reth_revm (#14317)
- fix: use custom generator in custom builder example (#14320)
- chore: bump alloy-trie to 0.7.9 (#14318)
- chore: bump apache license year to 2025 (#14319)
- chore: misc eth strategy cleanup (#14315)
- feat: add standalone DockerfileOp for local building (#14309)
- integration test for capability version mismatch (#14304)
- feat: add granular prewarm metrics (#14282)
- feat: record save_cache duration metrics (#14281)
- docs(tree): state root task lifecycle (#14302)
- fix(provider): fix pending block retrieval in
find_block_by_hash
(#14303) - chore(engine): make block buffer pub (#14298)
- fix: increment pending out on manually triggered connect (#14257)
- Introduce AnyError (#14294)
- chore(engine): make invalid headers cache pub (#14297)
- perf(tree): short-circuit multiproof computation on empty targets (#14265)
- chore: rm unused cli args (#14295)
- chore(txpool): explicity drift txpool on first event (#14290)
- feat: remove from fspath conversion for storagelockerr (#14291)
- perf(tree): state provider builder (#14279)
- chore: rm todo (#14289)
- feat: abstract op executor over chainspec (#14285)
- feat: add newPayload latency gauge metric (#14287)
- feat: simplify PayloadBuilder setup (#14276)
- refactor: extract OP txpool types to a separate crate (#14280)
- perf(tree): add cross-block caching (#13769)
- chore: use recovered api for prewarm (#14272)
- Avoiding infinite recursion in trait implementation (#14261)
- feat(op, txpool): add conditionals to op pooled tx (#14264)
- Moved HashedPostState to trie-common crate (#14230)
- feat(tree): more logs for proofs prefetching (#14263)
- feat: abstract
OpPooledTransaction
andOpPool
over consensus tx (#14256) - [Feature]: added max lifetime setting for queued transactions (#14242)
- feat: handle Isthmus operator fee params (#14243)
- chore: rm reth_primitives from reth_net_p2p (#14258)
- feat: expose pool transaction in
PayloadTransactions
(#14249) - feat: relax
BasicPayloadJobGenerator
bounds (#14254) - fix: use correct default for get_local_pending_transactions (#14253)
- chore: remove usages of reth_primitives from reth bin (#14252)
- chore: rm redundant Send,Sync bounds on ParallelProof (#14248)
- chore: simplify
PayloadBuilder
trait (#14246) - chore: use u64 for blobcount (#14250)
- perf(trie): deduplicate already fetched prefetch targets (#14223)
- chore: remove redundant bounds on StateRootTask (#14245)
- feat: track max blobcount in forktracker (#14231)
- feat: add exceeds allowance error message (#14232)
- chore: move
Transaction lock acquired
mdbx log to trace (#14218) - fix: use proofs from prefetch and updates for root completion (#14222)
- refactor: Adds type downcasting helpers for
InvalidPoolTransactionError
(#14046) - feat: enable prewarm spawn metrics (#14229)
- chore(ci): update hive expected failures (#14239)
- fix: use blob params in payload building (#14217)
- chore: enable rand in test utils (#14234)
- chore: simplify rpc block compat (#14225)
- chore: use alloy traits for
PoolTransaction
(#14228) - docs: add docs for instantiating EthFilter (#14224)
- fix: use different cancel wrapper for prewarm tasks (#14221)
- feat(isthmus): withdrawals root in block building (#14209)
- fix: rm redundant revert in error message (#14215)
- ci(hive): add
ethereum/eest
simulator (#14009) - Remove blocktime handling from maintain pool future (#14210)
- chore: update authmodule new with new engine trait (#14206)
- perf: warm transactions in parallel (#13759)
- fix(reth-bench): return error on invalid range (#14198)
- feat: expose blob_store fn on top level pool type (#14205)
- feat: type erase concrete engine server trait (#14204)
- feat: abstract
OpBeaconConsensus
over primitives and chainspec (#14171) - fix: return correct
prune_target_block
when syncing (#14181) - feat(no_std): Add
no_std
support forreth-storage-api
(#14187) - feat: add
ExecutionData
AT (#14179) - ci: ensure consensus crates remain riscv compatible (#14186)
- chore: rm unused prune error variant (#14185)
- ci: enable getreceipts hive test again (#14184)
- chore: rm unused rpc_types_compat import from reth-bench (#14182)
- feat: add helpers for handling other errors (#14180)
- chore: rm unused error variants (#14183)
- chore: convert_to_payload_body_v1 (#14168)
- feat: add dedicated blobpool args to cli (#14173)
- refactor: couple ExecutionPayload and ExecutionPayloadSidecar (#14172)
- feat: abstract
EthTransactionValidator
overChainSpec
(#14162) - chore(ci): unpin clippy (#14167)
- feat: abstract OP payload builder over transaction (#14153)
- docs: add example docs (#14164)
- feat(grafana): add Datasource variable to dashboard (#14158)
- fix: rename variables and fix typos in tables.rs, execution.rs, and mdbx code (#14148)
- perf: add more granular newPayload metrics (#14134)
- feat(grafana): add cache hitrate panel (#14135)
- chore: use rlp_length_for (#14144)
- chore: simplify
OpBuiltPayload
(#14152) - chore(deps): weekly
cargo update
(#14155) - chore: use chainspec
blob_params
for blob calculations (#14139) - feat: simplify envelope conversion (#14146)
- meta: temporarily allow missing const for fn (#14147)
- chore: remove block_to_payload_v1 (#14143)
- chore(clippy): smol clippy fix (#14145)
- chore: remove block_to_payload_v2 (#14142)
- chore: rm Once-cell dep (#14141)
- [wip] feat: alloy tx type conversions back to OpTransactionSigned (#14121)
- chore: phase out
block_to_payload_v3
(#14140) - feat(eth-wire-types): add snap sync protocol types (#14119)
- fix(grafana): fix rpc cache metrics panel (#14137)
- feat: generalize Block impls (#14133)
- refactor: remove
Receipts
struct (#14130) - fix(hive): overflow when timestamp is
u64::max
(#14132) - integration test for trusted peer only (#14127)
- feat: integrate
blob_params_at_timestamp
(#14128) - chore: rm redundant conversion fn (#14129)
- perf(mdbx): do not always collect the backtrace of a locked transaction (#14123)
- added helper function new_alloy_provider (#13579)
- chore(transaction-pool): remove duplicate code (#13627)
- feat: phase out payload conversion helpers (#14090)
- feat: remove transaction_to_call_request helper fn (#14089)
- chore: bump alloy 0.11 (#14122)
- fix:
BlockSource
check for pending block (#14112) - feat(cli): add use-caching-and-prewarming flag (#14114)
- Add helper functions to
NewPooledTransactionHashes68
struct (#14118) - feat: abstract RPC error over
HaltReason
(#14104) - fix(trie): update prefix set on the call to
RevealedSparseTrie::update_rlp_node_level
(#14108) - chore: rename ovm types (#14116)
eth
for NetworkConfigBuilder (#14109)- docs(reth-bench): add comprehensive setup and analysis docs (#14088)
- chore: reexport eip types for convenience (#14107)
- feat: add helpers for WithPeerId Option (#14106)
- added SealedHeaderFor alias to validate.rs and without_evm.rs (#14103)
- feat: add alloy tx type conversions back (#14110)
- feat(root): state root task metrics (#14102)
- chore: shrink cache queues (#14105)
- fix: Add dummy system tx in op dev mode (#14062)
- feat: abstract over
Evm::Error
(#14085) - feat(engine): update pending block on
InsertExecutedBlock
(#14098) - chore: add example for sending tx hashes (#14094)
- fix: ensure the pending block has the requested hash (#14096)
- feat: add missing serde derive (#14095)
- Export chainspec's HardforkBlobParams struct publicly (#14092)
- chore(trie): remove reth-primitives dep (#14080)
- fix: validate block against header on
reth import
(#14076) - chore(ethereum-node): remove reth-primitives dep (#14081)
- chore(trie-db): remove reth-primitives dep (#14079)
- chore: rm todos that are nofixes (#14082)
- fix(root): do not re-calculate targets for sparse trie update (#14074)
- feat: enable state root task during persistence (#12392)
- feat(chainspec): add Chainspec::blob_fee_params_at_timestamp (#14049)
- feat(trie): include address on storage trie update error (#14075)
- chore: make optypedtx fields private (#14065)
- chore: remove reth-primitives dep from consensus (#14067)
- chore: update reth-bench docs (#14060)
- chore: relax cache bounds (#14068)
- feat: replace BincodeRepr From bound with conversion function (#14069)
- chore: correct the docs (#14070)
- feat(rpc): created EthApiBuilder type (#14041)
- refactor: remove
PruneModes
from batch executor (#14025) - chore: make transaction type fields private (#13915)
- feat: introduce helper alias type (#14058)
- feat: modified MultiConsumerLruCache to track inMemory usage (#14034)
- feat(rpc/validation): Expose metric for validation disallow list size. (#14057)
- fix: return the correct action on drop (#14054)
- Make impls for MockEthProvider more generic (#14055)
- fix: check for duplicate request types on validation (#14056)
- docs: add note about recorded transfer logs (#14053)
- chore: bump revm 19.4 (#14031)
- feat: validate headers loaded from file on
reth import
(#14050) - feat: introduce ProviderFactoryBuilder (#13989)
- docs: add docs about bincode compat (#14045)
- integration test for max outgoing connections (#14039)
- feat: introduce custom exex wal errors (#11789)
- chore: rename evm to headers in dashboard (#14036)
- chore: rm optimism feature from reth-provider (#14035)
- refactor: remove
Events
generic from RPC types (#14033) - docs(exex): Expand documentation with examples, assumptions, and invariants. (#13581)
- add format checker to .toml (#13968)
- feat(tree): handle no-op updates in trie update differences (#14013)
- fix: redirect issues in documentation links (#14032)
- perf: remove empty HashMap instances from TrieUpdates and HashedPostState (#13976)
- chore: update profiles (#14029)
- chore: use BlockNumHash in exex (#14015)
- chore(tree): simplify insert_executed (#14026)
- feat: extend example with tx handling (#14030)
- chore(trie): remove from_cache_state (#14028)
- ci(hive): remove tests from expected failures (#14027)
- fix: add
EthereumHardfork::Frontier
by default on genesis to chainspec impl (#14024) - chore(deps): bump docker/build-push-action from 5 to 6 (#14023)
- feat(rpc): implement debug_executionWitnessByHash (#14022)
- chore: remove reth-primitives dep from reth-engine-tree (#14019)
- chore: remove executed_block from EthBuiltPayload (#14017)
- chore: move EthPrimitives to reth-ethereum-primitives (#14018)
- perf: do not clone recovered block (#14016)
- feat: add network request proxy example (#13974)
- feat(evm): add nonce methods to TxEnv (#14014)
- chore(deps): weekly
cargo update
(#13992) - fix: do not record trie root metrics for ParallelProof (#13960)
- feat(eth-wire): improve Capability arbitrary implementation (#14011)
- docs: add section about recovery naming (#14012)
- feat: add find-transaction-by-hash (#14008)
- refactor: store plain receipts instead
Option
s inReceipts
(#14010) - fix(root): drop sparse trie tx sender when state updates finished (#14004)
- fix: gracefully handle missing
persisted_trie_updates
(#13942) - chore: rm unused databasemetadata trait (#14003)
- test(trie): use DB for hash builder in sparse trie fuzz (#13754)
- feat(trie): more logs for proofs (#13843)
- chore: use asref path for open db (#13998)
- feat(mdbx): record backtrace of read transactions and log on timeout (#13707)
- feat: add
make profiling
to Makefile (#13996) - chore(net): derive
Arbitrary
onRequestPair
(#13997) - chore: enable no-std for execution types crate (#13986)
- chore: fix spelling issues (#13978)
- chore: fix error messages for request validation (#13983)
- chore: Changed visibility of Cli struct attributes to
pub
for op-reth (#13985) - feat: validate empty execution requests for OP (#13980)
- perf: add eth response backpressure (#13971)
- feat: impl inmemory for vec (#13964)
- chore!:unify trait fn naming for recovery (#13981)
- chore: update links
crates/ethereum-forks/src/hardfork/ethereum.rs
(#13977) - feat: add a helper to create txenv (#13979)
- test: Add ValidBlocks and InvalidBlocks blockchain tests (#13969)
- feat: Add open db transaction graph in grafana dashboard (#13611)
- test: reenable
test_state_root_task
test (#13911) - feat: add
Spec
generic forEvmEnv
(#13975) - feat: add clone_transactions convenience fn (#13962)
- chore: remove
fill_
APIs (#13970) - feat: generic
TxEnv
(#13957) - refactor: change latest block == parent hash by block window distance check (#13961)
- docs: receipts cache touchups (#13963)
- fix: only increment proofs_processed for state update proofs results (#13956)
- chore: refine the reproducible builds and add it to the release workflow (#13947)
- docs: fix broken links in
docs/crates/network.md
(#13948) - chore: add comment to crunchy pin (#13949)
- chore: use more block_num_hash in insert_block_inner (#13943)
- feat: integrate request validation in EnginveValidator (#13858)
- feat: add sealed_block method to ExecutedBlock (#13945)
- chore: do not clone already recovered block (#13944)
- feat(test-utils): Make MockEthProvider generic over Transaction (#13853)
- chore: rm unused capabilities code (#13935)
- chore: use alloy-eip2124 directly (#13941)
- feat: add NetworkManager::eth (#13936)
- chore: disable default features for engine primitives (#13939)
- feat(sdk): introduce PrimitivesTy helper type (#13933)
- fix: temporarily pin crunchy (#13938)
- chore: remove some unnecessary direct imports (#13934)
- refactor: finalize proofs mod move from
reth-primitives
toreth-primitives-traits
(#13875) - chore(ci): Exclude
reth-payload-builder
from wasm check (#13932) - feat(no_std): Add
no_std
support forreth-payload-primitives
(#13922) - feat(no_std): Add
no_std
support forreth-ethereum-engine-primitives
(#13931) - feat(no_std): Add
no_std
support forreth-engine-primitives
(#13924) - chore: remove network dep from tree (#13921)
- chore: 404 link
layout.md
(#13920) - chore: retry empty responses (#13923)
- chore: use flz estimate (#13930)
- fix(engine): attempt to advance persistence after it finished (#13928)
- chore: replace maili deps with op-alloy (#13927)
- tests: misc p2p blockbody roundtrip tests (#13925)
- feat: unify recover fn result type (#13897)
- chore: remove broken link layout.md (#13919)
- chore: move receipts pruning to provider (#13886)
- chore(ci): set --rpc.eth-proof-window for kurtosis-op (#13916)
- chore: decrease private access (#13912)
- feat: add transactions_iter helper (#13910)
- feat: restore custom build profiles in RETH_BUILD_PROFILE (#13906)
- perf(root): untangle the state root task (#13898)
- feat: add
S3Stage
downloader (#13784) - chore: move and integrate ConfigureEvmFor (#13896)
- chore: use builtin launch fn for opnode (#13900)
- chore: move SealedHeader::cloned to &H (#13904)
- feat: add transactions_recovered iter (#13903)
- feat: implement Optimism builder DA limits (#13757)
- feat: add
StaticFileBlockWithdrawals
todb-model
(#13894) - docs: cleanup discv4 docs (#13884)
- chore: move state root task result handling to fn (#13892)
- chore: rm legacy helper traits (#13895)
- perf: check block cache for requested header (#13890)
- perf: lift chainspec call (#13889)
- chore: deprecate recoveredtx alias (#13887)
- feat: add state_hook_sender fn on StateRootTask (#13885)
- chore: mark ecrecovered types as deprecated (#13882)
- chore: move node builder trait helpers to separate module (#13883)
- chore: misc asset cleanup (#13881)
- chore(ci): add failing rpc-compat test to hive expected failures (#13880)
- chore: use correct compressed size estimation fn (#13876)
- feat: add ConfigureEvmFor, ConfigureEvmEnvFor helper traits (#13865)
- refactor: mv proofs mod to reth-primitives-traits and split tests (#13871)
- feat: get
BlockMeta
table values from static file or database (#13844) - chore: simplify evm setup (#13864)
- chore(deps): weekly
cargo update
(#13866) - chore(ci): remove eth_feeHistory from hive's rpc-compat expected failures (#13869)
- fix(net): increment in counter after peer's state is marked as in (#13863)
- chore: rm pooled transaction tests (#13860)
- chore: use exported oncelock (#13859)
- feat: add
Evm
trait (#13823) - test: rm reth-pirmitives block tests (#13850)
- chore: phase out reth-primitives from eth-wire (#13855)
- test: move reth-primitives tx tests (#13852)
- feat: Track DA cost in Op Pooled transactions (#13806)
- chore: remove redundant strategy fn impls (#13838)
- feat: expose additional eth functions on engine api (#13837)
- fix(trie): check branch node masks if
store_in_db_trie
isNone
(#13828) - chore(trie): make rlp_node fns pub (#13818)
- ci: install mold as the linker (#13842)
- chore: not panic on
RpcBlockProvider
(#13841) - feat: extend
BlockBodyIndicesProvider
withblock_body_indices_range
(#13829) - fix(trie): reveal blinded node along with masks in sparse trie (#13827)
- chore(trie): derive
Clone
on noop cursor factories (#13840) - fix: pin clippy to nightly-2025-01-16 (#13839)
- chore(trie): branch node has only one child log (#13836)
- feat: use
reth-ethereum-primitives
(#13830) - fix(trie): use correct
store_in_db_trie
value for sparse extension nodes (#13826) - feat(cli): added header request retry in stages run command (#13816)
- chore: rm broken link in hooks README.md (#13814)
- ci: use reusable cargo update workflow (#13824)
- Nit: replace block and sender with RecoveredBlock in ExecutedBlock (#13804)
- Higher limit for total_difficulty.bit_len (#13820)
- fix(trie): empty sparse trie branch node masks (#13825)
- chore(trie): less logs for sparse branch node updates (#13811)
- refactor: always create Evm through ConfigureEvm (#13812)
- fix(trie): delete removed node from updated nodes in sparse trie (#13822)
- feat(trie): sparse trie accessors (#13815)
- fix(trie): remove branch nodes in sparse trie that shouldn't be stored (#13808)
- fix(trie): remove branch nodes from updates if it was deleted (#13813)
- fix(builder): prague blob params activation (#13810)
- chore: trim ConfigureEvm trait (#13807)
- refactor: use
EvmEnv
when setting upEvm
(#13800) - chore: add distroless minimal base image (#13788)
- fix: correct trusted peer excemptions (#13801)
- feat: add SealedBlock in reth-primitives-traits (#13735)
- feat: introduce
StaticFileSegment::BlockMeta
(#13226) - chore: remove DefaultExternalContext AT (#13797)
- fix: track local senders better during truncation (#13768)
- fix(tree): use in memory trie cursor for trie updates comparison in tree (#13789)
- feat: add receipt builder for
OpExecutionStrategy
(#13792) - chore: bump revm 19.3 (#13793)
- fix(cmd): initialize
StaticFileProducer
with configPruneModes
unwind command (#13791) - feat(trie): blinded providers trace logs (#13786)
- docs: edited the "deny" shield link. (#13779)
- chore: remove unused p2p error type (#13785)
- feat: add
evm_for_block
helper to simplify EVM setup (#13787) - feat(engine): validate execution requests (#13685)
- chore(deps): weekly
cargo update
(#13776) - refactor: update receipt codec from
HackReceipt
toOpGethReceipt
(#13738) - perf(op-receipts): reuse
l1_block_info
for multiple receipts (#13781) - feat: add snmalloc support (#13771)
- fix: apply legacy cleanup to opnode (#13775)
- feat: integrate EngineArgs into NodeCommand (#13748)
- feat(rpc): setters for
TransportRpcModules
(#13773) - test(validation): add tests for EIP-7702 transaction filtering in EthMessageFilter (#13756)
- chore: make clippy happy (#13772)
- test: add json genesis test (#13770)
- feat(tree): when comparing trie updates, check the database (#13765)
- feat(tree): --engine.state-root-task-compare-updates (#13763)
- fix(trie): sparse trie tree masks (#13760)
- chore(tree): use MultiProofTargets for PrefetchProofs (#13717)
- chore(trie): reveal witness by ref (#13751)
- chore(engine): use Arcrayon::ThreadPool for StateRootTask (#13755)
- chore!: make senders fields private (#13752)
- chore(trie): simplify blinded provider (#13753)
- feat(trie): add leaf value retrieval methods to
SparseStateTrie
(#13750) - chore: integrate Test trait for sealed types (#13746)
- chore: remove outdated
as _;
imports (#13744) - chore: remove Block generic from apply_pre_execution_changes (#13743)
- perf(persistence): reuse cursor for updating history indices (#13622)
- feat: add Test traits for Header and Block (#13741)
- fix(ci): install missing deps for wasm build checks (#13745)
- feat: add SealedBlock::clone_sealed_header (#13739)
- perf: introduce moka cached state provider (#12214)
- chore: add
Hardfork::boxed
(#13737) - chore: misc SealedBlock prep (#13736)
- chore: rm last mentions of deprecated crates (#13734)
- chore: rm redundant std cfgs (#13733)
- refactor: reduce
Hardforks
trait usage (#13728) - chore: rename error types (#13732)
- chore: rm blockchaintree api crate (#13731)
- chore: rm blockchaintree dep from errors (#13730)
- chore: rm blockchaintree dep from engine-tree (#13729)
- perf(trie): set trie mask bits directly (#13724)
- chore!: rename blockchainprovider2 (#13727)
- chore!: rm legacy blockchain tree crate (#13726)
- chore!: rm legacy blockchain provider (#13725)
- chore!:rm beacon consensus crate (#13723)
- chore: rm beacon consensus deps everywhere (#13722)
- chore: rm unused hooks (#13721)
- chore: rm beacon consensus dep from engine-tree (#13720)
- feat:
SparseStateTrie::reveal_witness
(#13719) - chore: move beacon consensus engine event (#13718)
- feat(no-std): add
no_std
support forreth-optimism-consensus
(#13692) - chore: rm beacon consensus deps (#13716)
- chore: relax arb for sealedwithsenders (#13715)
- chore: move beacon handle type (#13714)
- chore: remove blockchaintree dep from reth bin (#13712)
- chore: remove rayon from reth primitives (#13711)
- feat: add standalone rayon recovery functions (#13710)
- chore: make SealedBlock.header field private (#13646)
- Discussion draft: change DB Writer to take value references (#13672)
- feat: use engine launcher as default (#13709)
- refactor:
Consensus
trait error type (#13655) - fix(ci): Enable wasm check for
reth-optimism-primitives
(#13693) - feat(root): compare trie updates of state root task with regular root (#13704)
- refactor: move
LazyLock
andOnlyLock
exports to primitives traits (#13682) - chore: make engine-tree independent of blockchaintree (#13705)
- chore: reduce blockchaintree usage (#13702)
- docs: add additional BasicPayloadJob docs (#13706)
- chore: remove reth-primitives dep from op-primitives (#13699)
- perf: relax condition in seek_inner (#13614)
- feat(engine): wire StateRootTask in EngineApiTreeHandler (#12639)
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.2.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.2.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.2.0-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.2.0-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.2.0-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth | ||
Docker (Reproducible) | paradigmxyz/reth-reproducible |