Releases: paradigmxyz/reth
Reth v1.1.1
Summary
This release contains performance improvements and bug fixes. The new, default engine implementation is now recommended for all users.
- fix(engine): run pruner after saving blocks (#11927)
Important
Users may experience a longer startup time on the initial restart due to this fix
- fix: estimateGas edge case (#11764)
- fix: always poll new pool imports (#11675)
- fix(rpc/trace): return empty if after >= traces (#11715)
- fix: always accept transactions with current nonce (#11931)
- fix(rpc): apply beacon root contract call in debug_traceTransaction (#11845)
Op-Reth
With this release, op-reth is now also defaulting to the new engine API implementation introduced in https://github.com/paradigmxyz/reth/releases/tag/v1.1.0
- chore: switch op to new engine (#12329)
Important
Applications which access the database externally, and require the database to be at the head of the chain, should use --engine.legacy
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
- primitives: rm alloy
BlobTransactionValidationError
reexport (#12311) - chore: 1.1.1 (#12334)
- primitives: rm more alloy block reexports (#12308)
- chore: limit initial status size (#12324)
- chore: switch op to new engine (#12329)
- renamed OptimismEngineValidator to OpEngineValidator (#12312)
- primitives: rm alloy
Signature
reexport (#12313) - primitives: rm alloy
BlockNumHash
reexport (#12304) - feat(engine): add StateRootTask skeleton (#12305)
- primitives: rm alloy
BlockId
reexport (#12303) - primitives: rm alloy
BlockHashOrNumber
reexport (#12302) - primitives: rm alloy
Withdrawal
reexport (#12296) - primitives: rm useless
OP_
constants (#12298) - chore: Move FillTxEnv::fill_tx_env into SignedTransaction trait and implement in TransactionSigned (#12186)
- docs: add debug.etherscan in the book (#12293)
- Refactor: use fully-qualified paths in Compact derives(Deon Branch) (#12279)
- feat: add more decimals to database growth (#12288)
- renamed OptimismEngineTypes to OpEngineTypes (#12285)
- chore(deps): weekly
cargo update
(#12289) - renamed OptimismEvmConfig to OpEvmConfig (#12284)
- feat: remove AnyNetwork usage (#12280)
- renamed OptimismPayloadTypes to OpPayloadTypes (#12281)
- feat: add
CachedReads::extend
(#12277) - chore: make some fields owned (#12274)
- chore(ci): unpin kurtosis (#12272)
- renamed OptimismBeaconConsensus to OpBeaconConsensus (#12271)
- renamed OptimismGenesisInfo to OpGenesisInfo (#12270)
- Use Arc in SystemCaller (#12268)
- fix: clippy lints (#12269)
- feat: flashbots_validateBuilderSubmissionV4 (#12243)
- renamed OptimismConsensusBuilder to OpConsensusBuilder (#12265)
- test: make cargo t compile in db-models (#12263)
- test: make cargo t compile in codecs (#12261)
- renamed OptimismExecutorBuilder to OpExecutorBuilder (#12258)
- fix: check hashed state for loading
TriePrefixSets::destroyed_accounts
(#12235) - feat: add asref impls (#12257)
- chore: use deref directly (#12256)
- renamed OptimismNetworkBuilder to OpNetworkBuilder (#12255)
- chore: simplify cached db usage (#12242)
- test(chain-state): add unit tests for
CanonStateNotification
(#12110) - refactor: move
payload/builder/src/database.rs
torevm/src/cached.rs
(#12252) - feature: transaction's input truncate function (#12236)
- Remove redundant
SignedTransaction::Signature
(#12185) - feat: track buffered outgoing messages (#12220)
- db-api: opt StorageShardedKey encode, decode (#12143)
- chore: apply same member order (#12253)
- txpool: added a helper to filter pending txns by predicate (#12204)
- rpc: add
rename
method inTransportRpcModules
(#12239) - revm: add
Database
Either
helper type (#12240) - refactor(revm): simplify
Database
impl forStateProviderDatabase
(#12241) - chore: clippy happy (#12248)
- renamed OptimismPoolBuilder to OpPoolBuilder (#12246)
- replace DisplayHardforks with Box (#12219)
- feat:
flashbots_validateBuilderSubmissionV3
(#12168) - renamed OptimismPayloadBuilder to OpPayloadBuilder (#12234)
- chore(book): fix engine api typo (#12231)
- chore(ci): pin kurtosis to working version (#12225)
- renamed OptimismBuiltPayload to OpBuiltPayload (#12227)
- chore: simplify SystemCaller setup (#12223)
- fix(trie): move to sibling on invalid tree mask (#12193)
- Apply beacon system call to trace_block (#12030)
- chore: rm deprecated txpool fn (#12198)
- renamed OptimismPayloadBuilderAttributes to OpPayloadBuilderAttributes (#12213)
- feat: add rlp support for
EthVersion
(#12221) - docs: add context truncated input (#12207)
- Reth primitives traits tx type (#11720)
- test: add test case for BestTransactions (#12209)
- feat: add missing is active at timestamp fns (#12206)
- chore: rename v1 type (#12205)
- Wrap sidecar in arcs (#11554)
- feat: add is_ethereum trait fn (#12197)
- feat(eth69): support for ETH69 (#12158)
- feat: Eip1559 params in extradata (#11887)
- tx-pool: fix
ExceedsGasLimit
error message order (#12191) - fix(ecies): bound initial header body size (#12172)
- chore(meta): update SECURITY.md (#12190)
- feat: introduce StateCommitment type (#11842)
- feat(discv4): neighbors packet logging (#12042)
- feat: transaction trait (#11877)
- test(prune): add unit tests for
ReceiptsLogPruneConfig
(#11916) - feat(provider): use
NodeTypes
onDatabaseProvider
instead (#12166) - chore: remove generate sidecar fn (#12167)
- feat: Introduce trait for OpTransaction (#11745)
- Revert "Revert "feat: add geometry to database args"" (#12165)
- feat(storage): pass changesets to unwind methods (#7879)
- Revert "feat: add geometry to database args" (#12164)
- consensus: add unit tests for
ForkchoiceStateTracker
andForkchoiceStateHash
(#12077) - feat: add geometry to database args (#11828)
- chore(ci): try to read all vectors on
compact-codec
before exiting in error (#12160) - storage:
into_iter
withself
by value (#12115) - feat: without-evm cli option in reth (#12134)
- chore(provider): remove unused
BlockExecutionReader
trait (#12156) - refactor: change
PayloadConfig
to use parent header instead of parent block (#12159) - fix(ecies): ecies typo (#12155)
- feat: rate limit incoming ips (#12153)
- test: use port0 in tests (#12154)
- fix: use net::discv5 for reth's discv5 tracing target namespace (reverts #12045) (#12151)
- dev: track invalid transactions by sender in pool (#12138)
- chore: remove one unwrap (#12152)
- fix: restrict concurrent incoming connections (#12150)
- fix(op): fix payload id calculation (#11730)
- chore(rpc): remove redundant
LoadState::cache
(#12147) - chore(rpc): remove redundant
LoadTransaction::cache
(#12148) - chore(rpc): add super trait
RpcNodeCoreExt
toLoadReceipt
(#12149) - chore(rpc): remove redundant
LoadFee::cache
(#12146) - chore(rpc): relax
FullNodeComponents
trait bound onOpEthApi
toRpcNodeCore
(#12142) - chore(rpc): inline trait methods of
RpcNodeCore
impl (#12144) - chore(rpc): define trait
RpcNodeCoreExt
and replaceLoadBlock::cache
(#12141) - test(trie): use proptest to generate random values (#12140)
- chore: add version to PayloadBuilderAttributes::try_new (#12137)
- perf(trie): reduce allocations in sparse trie rlp node calculation (#12092)
- refactor: replace receipt envelope encoded with trait (#11742)
- chore(deps): weekly
cargo update
(#12108) - perf(trie): cache prefix set lookups in sparse trie (#12088)
- refactor(chainspec): refac and improved doc for
last_block_fork_before_merge_or_timestamp
(#12114) - chain-spec: use alloy
MAINNET_DEPOSIT_CONTRACT_ADDRESS
constant (#12113) - feat: add a wrapper for
BestTransactions
prioritizing given senders (#12123) - fix(ci): remove renaming from
compact-codec
(#12133) - feat: add
pending|queued
txs pool helpers (#12128) - feat: Add version to
BeaconEngineMessage
FCU (#12089) - perf(trie): collect only changed sparse nodes at a depth (#12093)
- bench(trie):
RevealedSparseTrie::update_rlp_node_level
(#12046) - chore(rpc): remove redundant
EthTransactions::provider
(#12121) - chore(rpc): remove redundant
LoadFee::provider
(#12122) - fix(ci): remove import path from type names on
compact-codec
(#12125) - fix(trie): sparse trie walk should be done in a sorted manner (#12087)
- chain-state: fix typo (#12112)
- refactor: rm re-exports of alloy eip 4844 constants (#12120)
- docs: small fix in payload doc (#12116)
- TransactionsHandle propagation commands should not adhere to caching (#12079)
- chore(rpc): remove redundant
Trace::evm_config
(#12102) - chore(rpc): remove redundant
EthBlocks::provider
(#12109) - chore(rpc): remove redundant trait bounds in eth api (#12105)
- chore(rpc): remove redundant trait method
LoadBlock::provider
(#12100) - refactor(storage): small refactor (#12106)
- refactor(tx-pool): small refactor (#12107)
- chore(rpc): Add super trait
RpcNodeCore
toLoadPendingBlock
(#12098) - chore(rpc): simplify trait bounds on
EthApiSpec
impl (#12101) - chore: only check for better payload if tx_pool (#12097)
- chore(op): simplify blob fields in newly built block header (#12035)
- Remove trait method
Call::evm_config
(#...
Reth v1.1.0
Summary
Reth Engine 2.0
This release enables the new performant engine architecture for ethereum chains by default. This was previously opt-in, as the --engine.experimental
flag.
Important
Nodes which do not want to use the new engine MUST now add --engine.legacy
to their cli flags to preserve the old engine behavior.
Using --engine.legacy
is recommended for stakers / payload builders, as the previous architecture has been tested in production for a longer period of time. Validators that update to 1.1.0
without changing any command line flags will not be using the previous architecture, hence the recommendation to add the --engine.legacy
flag.
The new engine is not enabled for op-reth
by default, and must still be enabled using the --engine.experimental
flag. We encourage op-reth users to use this flag.
Important
Applications which access the database externally, and require the database to be at the head of the chain, should use --engine.legacy
Engine 2.0 overview
The previous engine architecture required that the node database be always at the head of the chain. This requirement made it simple to reason about the database, but required that the node's engine_forkchoiceUpdated
API synchronously commit to the database, which caused high latency for the API. Removing this requirement required a rewrite of the node's consensus handling logic.
This new engine architecture yields great performance improvement when syncing near the tip of the chain. Here is the engine_forkchoiceUpdated
latency with the old engine:
And here is the engine_forkchoiceUpdated
latency with the new engine:
ExEx breaking changes and improvements
The ExExNotifications::recv
and ExExNotifications::poll_recv
are now removed.
ExExNotifications::with_head
is introduced - this method allows exex notifications to work properly with the new engine, and requires users to specify a head block. This head block determines where the exex notifications will start from.
Engine 2.0 improvements
There have been some performance improvements and bug fixes for the new engine architecture since 1.0.8:
op-reth related enhancements and fixes
We have fixed some issues for op-reth instances running with --engine.experimental
:
- feat: store safe block num as well (#11648)
- fix: persist finalized block (#11623)
- fix: always handle payload building for opstack (#11629)
There are also various fixes not related to the new engine architecture:
- fix: set system tx correctly (#11601)
- fix(op-reth): add jemalloc feature to optimism-cli for version (#11543)
Observability improvements
New metrics have been added, and the dashboard has been improved:
- feat(evm, trie): more metrics (#11613)
- Add metrics for failed deliveries to Grafana dashboard (#11481)
- fix(grafana): remove rate function from panel "Transactions by Type in Pool" (#11542)
- grafana: add metrics of all transactions in pool by type (#11515)
RPC improvements
- fix: use original bytes for codes (#11593)
- chore(rpc): remove include_preimage param on debug_execution_witness (#11466)
- fix(rpc-eth-types): incorrect error msg(; -> :) (#11503)
- fix(provider): fix sub overflow on
tx_range
queries for empty blocks (#11568) - chore: enforce window (#11540)
- perf(rpc): optimistically retrieve block if near the tip on
eth_getLogs
(#11582)
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | Low priority |
Non-Payload Builders | Medium priority |
See Update Priorities for more information about this table.
All Changes
- feat: store safe block num as well (#11648)
- chore: preempt single block downloading (#11647)
- fix: don't unwrap missing requests (#11646)
- chore(rpc): don't recover sender if we have it (#11645)
- feat(bin): make experimental engine default (#11612)
- chore: release 1.1.0 (#11640)
- feat(ci): move book clippy and tests to matrix (#11618)
- feat(exex): commit only notifications with unfinalized blocks to WAL (#11638)
- feat(ci): add Kurtosis workflow (#11615)
- docs: clarify op-mainnet --debug.tip (#11634)
- Broadcast external IP from NAT in enode record (#10274)
- Remove duplicate EngineTypes comment (#11624)
- feat(trie): noop hashed cursors (#11627)
- chore(trie): make initialization of in-memory trie cursors
pub
(#11628) - fix: always handle payload building for opstack (#11629)
- feat(evm, trie): more metrics (#11613)
- fix: actually commit (#11626)
- chore(ci): disable hive discord alerts (#11625)
- chore(metrics): remove redundant
starting metrics
log (#11621) - fix: persist finalized block (#11623)
- test: add sanity test for local txs args (#11620)
- chore: bump op-alloy (#11617)
- fix(witness): destroyed slots as proof targets (#11596)
- fix: 7702 gas fields (#11614)
- chore(rpc): use
block_hash
asBlockId
oneth_callMany
(#11595) - perf(rpc): optimistically retrieve block if near the tip on
eth_getLogs
(#11582) - fix(net): add concurrency param from config to
TransactionFetcherInfo
(#11600) - fix(grafana): set instance variable from
reth_info
metric (#11607) - feat: add helper function to provde the tx manager config (#11608)
- feat: add tx propagation mode (#11594)
- fix(trie): prefix set extension (#11605)
- fix: set system tx correctly (#11601)
- fix: set deposit gasprice correctly (#11603)
- fix(net): max inflight tx reqs default (#11602)
- fix: active inflight count (#11598)
- perf(rpc): use
Arc<BlockWithSenders
onfull_block_cache
(#11585) - fix: use original bytes for codes (#11593)
- fix: simplify reorg handling (#11592)
- docs: delete missing part path (#11590)
- feat: add mul support for SubPoolLimit (#11591)
- chore: also derive arb for test (#11588)
- chore(rpc): use
block_hash
instead on fetchingdebug_trace_block
block (#11587) - chore(ci): remove expected failures related to checksummed addresses (#11589)
- chore: bump alloy primitives 0 8 7 (#11586)
- chore(providers): test race condition on all
BlockchainProvider2
macro tests (#11574) - fix: in-memory trie updates pruning (#11580)
- fix(exex): exhaust backfill job when using a stream (#11578)
- feat: impl
Encodable2718
andDecodable2718
forPooledTransactionsElement
(#11482) - chore: rm bad cap function (#11562)
- chore: replace some revm deps (#11579)
- chore: rm unused optimism feature from engine api (#11577)
- feat: adding a new method to network config builder (#11569)
- chore(provider): add more test coverage on
BlockchainProvider
non-range queries (#11564) - fix(provider): fix sub overflow on
tx_range
queries for empty blocks (#11568) - chore: relax trait bound for
EthTransactions
(#11571) - fix: actually configure the custom gas limit (#11565)
- docs(exex): include code for ExEx book from real files (#11545)
- Added InternalBlockExecutionError to execute.rs exports (#11525)
- chore: rm unused optimism feature from compat (#11560)
- feat(trie): expose storage proofs (#11550)
- chore: rm unused optimism feature (#11559)
- chore: chain manual serialisation implementation (#11538)
- Introduce Op PayloadTypes Impl (#11558)
- chore: rm redundant type hint (#11557)
- chore: move ethfiltererror (#11552)
- fix(grafana): remove rate function from panel "Transactions by Type in Pool" (#11542)
- fix(op-reth): add jemalloc feature to optimism-cli for version (#11543)
- Introduce Eth PayloadTypes Impl (#11519)
- Refactor get_payload_bodies_by_hash_with to be non-blocking (#11511)
- chore: enforce window (#11540)
- feat(exex): subscribe to notifications with head using
ExExContext
(#11500) - grafana: add metrics of all transactions in pool by type (#11515)
- chore: dont fail on ttd (#11539)
- fix: acquire permit first (#11537)
- ci: add
windows
cargo check (#11468) - feat: add get_highest_tx_by_sender to pools (#11514)
- chore: delete rpc-types (#11528)
- rpc: use
eth_api()
method (#11516) - fix(tree): make state methods work for historical blocks (#11265)
- feat(provider): add
test_race
toBlockchainProvider2
tests (#11523) - test: add unit tests for
PruneLimiter
(#11517) - chore(deps): weekly
cargo update
(#11518) - feat: expose Op node network_config helper (#11506)
- feat: add PoolBuilderConfigOverrides (#11507)
- fix: cap gas limit properly (#11505)
- chore: rm from genesis impl (#11509)
- chore(lint): fix
clippy::needles_lifetimes
(#11496) - chore: Remove duplicate EthereumChainSpecParser in favor of existing EthChainSpecParser (#11412)
- Add metrics for failed deliveries to Grafana dashboard (#11481)
- feat: rpc replace function created (#11501)
- Reexport optimism specific crates from
op-reth
(#11499) - fix(rpc-eth-types): incorrect error msg(; -> :) (#11503)
- chore(provider): add more test coverage on
BlockchainProvider::*by_block_range
queries (#11488) - chore(lint): fix lint storage (#11485)
- chore: rm deposit contract config for op (#11479)
- test: ensure default hash matches (#11486)
- chore(provider): add more test coverage on
BlockchainProvider::*by_tx_range
queries (#11480...
Reth v1.0.8
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 onBlockState
(#11458) - chore: release 1.0.8 (#11457)
- feat: add metrics for failed deliveries (#11456)
- chore(provider): find
last_database_block_number
withBlockState
anchor instead (#11455) - chore(provider): use
get_in_memory_or_storage_by_block
onfn block_body_indices
(#11452) - chore(exex): adjust WAL gauge metric names (#11454)
- chore(provider): use
get_in_memory_or_storage
ontransactions_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
withbincode
onETL
usage ofSealedHeader
(#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 ontransaction_sender
(#11424) - chore: remove temporary allow attribute (#11428)
- chore(sdk): define traits for primitives
Block
andBlockBody
(#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
toBlockchainProvider2
(#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
withget_in_memory_or_storage_by_tx_id
(#11340) - feat: wire SystemCaller (#11321)
- fix(providers): collect BlockState before constructing DB provider (#11338)
- impl
Encodable2718
,Decodable2718
forTransactionSigned
(#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
formetrics-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
inOptimismNode
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'sKeccak256
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
takesBlockNumHash
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 concreteChainSpec
(#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(t...
Reth v1.0.7
Summary
This release contains performance improvements, new features, and bug fixes.
RPC now includes eth_simulateV1
(#10829), as well as many bug fixes:
- fix: don't recurse on op rpc err conversion (#10860)
- fix: improve nonce too low error (#10711)
- fix: reject 7702 transactions with empty auth list (#10709)
- feat: Include missing block id in error responses (#7416)
The new Engine API --engine.experimental
mode has had some bug fixes:
- fix: always acquire numbers lock first (#10842, #10843) - fixes a deadlock that some users were experiencing
Users should try the --engine.experimental
mode on non-critical workloads, although ExEx usage is still discouraged. The --engine.experimental
mode has also had some observability improvements:
- fix(metrics): set sync metrics when blocks are added (#10799)
- chore(tree): make tree trace targets consistent (#10731)
Block witnesses are now produced whenever a bad block is produced:
- feat(engine, tree): witness invalid block hook (#10685)
- feat(cli): enable witness invalid block hook by default (#10839)
Syncing optimism mainnet is now supported with minimal bootstrap (only requires bedrock state snapshot)
- feat: allow syncing op-mainnet with only state and without importing blocks/receipts (#10850)
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: rm more windows (#11050)
- feat: add
blocks_per_file
field toStaticFileProvider
(#11043) - chore: use alloy-chains is_ethereum (#11049)
- feat: make
NodeConfig
generic overChainSpec
(#11039) - chore(engine): revert disabling parallel state root (#11047)
- Revert "chore(op-payload-builder): Refactor
optimism_payload
into smaller, reusable functions" (#11041) - hash_keys bench: use HashSet::with_capacity (#11044)
- Update
OptimismPayloadBuilder
field visibility (#11042) - feat: make
DatabaseProvider
generic over chainspec (#10978) - reth-stages: remove duplicate buf clear (#11035)
- chain-state: replace primitive imports with alloy-eips (#11038)
- feat: local engine (#10803)
- test: 4844 testdata (#11033)
- fix(engine): state retrieval for parallel root with persisted parent (#10966)
- Update function visibility for
cfg_and_block_env()
(#11022) - fix(lint): lint warnings for db benchmark tools (#11011)
- chore(payload): replace reth_primitives with alloy_primitives (#11030)
- fix: only decode fields (#11031)
- fix(lint): lint warnings trie tests (#11012)
- fix(lint): lint warnings consensus test-utils (#11013)
- fix(lint): lint warnings in
reth-eth-wire
(#11008) - fix(lint): lint warnings rpc builder (#11014)
- fix(lint): warnings engine API (#11015)
- fix(lint): warnings ef testing (#11016)
- fix(lint): warnings network tests (#11017)
- fix(lint): warnings rpc testing utils (#11018)
- fix(lint): ethereum node tests (#11019)
- fix(lint): op-reth tests (#11020)
- feat: make
reth-stages
independent of concreteDatabaseProvider
(#10934) - fix(lint): lint warnings for storage codecs fuzz (#11009)
- docs: recorrect the sentry (#11028)
- fix: update pool gas limit (#11025)
- chore(engine): disable parallel state root (#11024)
- net: replace reth-primitive imports (#11023)
- chore(op-payload-builder): Refactor
optimism_payload
into smaller, reusable functions (#10904) - fix(lint): lint for derive
Compat
(#11005) - fix(lint): lint warnings for libmdbx benches (#11007)
- (fix): lint warning IPC (#11006)
- Handle non-default cargo target dir (#10775)
- chore: remove windows cfg (#11002)
- storage: replace reth-primitive imports with alloy-eips (#10992)
- feat(cli): expose tree engine persistence configuration (#10999)
- chore: move eip7251 impl (#11000)
- chore: move eip7002 impl (#10998)
- chore(reth-primitives): use COMPACT_EXTENDED_IDENTIFIER_FLAG (#10926)
- feat:
eth_simulateV1
support (#10829) - emv: add
BlockHeader
trait and defaultfill_block_env
(#10993) - feat: allow syncing
op-mainnet
with only state and without importing blocks/receipts (#10850) - storage: replace reth-primitive imports (#10981)
- chore: make error msg conform to normal usage (#10988)
- feat: extend pool configuration (#10985)
- cli: replace reth-primitive imports with alloy-eips (#10994)
- chore: move eip4788 impl (#10977)
- chore: change
BlockAndProofV1
to use alloy_eips instead (#10969) - chore: release 1.0.7 (#10990)
- chore: bump alloy (#10989)
- chore: bump revm and inspectors (#10982)
- chore: add display to FromEngine and other messages (#10986)
- fix: also include reverts for op (#10979)
- chore(e2e-test-utils): replace reth_primitives with alloy_primitives (#10980)
- chore(chain-state): replace reth_primitives with alloy_primitives (#10975)
- evm: use
Header
AT inConfigureEvmEnv
(#10968) - fix(trie): remove
debug_assert
for storage root (#10973) - docs: add geth reference for call fee check (#10970)
- feat: move next block cfg and env to configureevm (#10962)
- deps: bump
alloy-trie
to0.5.3
(#10960) - perf(rpc): use only Revm cache for execution witness (#10454)
- feat(cli): enable witness invalid block hook by default (#10839)
- chore: early return EMPTY_ROOT_HASH (#10957)
- chore: move eip2935 impl (#10954)
- feat(exex): backfill on subscription with head (#10787)
- chore: include network primitives in workspace (#10952)
- execution: add transaction and header AT to
ConfigureEvmEnv
(#10754) - Move cfg_env and block_env configuration from PayloadBuilderAttributes into PayloadBuilder (#10510)
- reafctor: improve tx count (#10889)
- fix(cli) Allow Pruning CLI Args to take precedence over TOML configuration (#10774)
- error: use derive-more
Error
for deriving error (#10841) - chore(reth-primitives): use derive_more::From when possible (#10917)
- chore(primitives, ethereum-forks): replace std feature gate alloc imports (#10945)
- blockchain-tree-api:replace reth_primitives with alloy_primitives (#10946)
- fix(rpc): add fee/value and balance to insufficient funds RPC error (#10872)
- chore(op): remove redundant op feature from
reth-optimism-consensus
(#10944) - chore(reth-ethereum-consensus): use const GAS_LIMIT_BOUND_DIVISOR (#10948)
- chore(reth-primitives-traits): use EOF_BYTECODE_ID etc (#10949)
- chore(reth-provider): use Vec::with_capacity (#10912)
- feat(reth-evm-ethereum): use EVMError::map_db_err (#10916)
- chore: use MIN_TRANSACTION_GAS replace magic number (#10910)
- fix(exex): do not advance backfill range twice (#10942)
- feat: use
DBProvider
instead ofDB
oninit_genesis
(#10937) - fix(ci): use
taiki-e/install-action
instead forcargo-udeps
(#10938) - feat: use
DbProvider
onUnifiedStorageWriter
(#10933) - ci: dev udeps (#10855)
- trie: replace reth_primitives with alloy_primitives (#10931)
- refactor: make
reth-prune
independent of concreteDatabaseProvider
(#10921) - feat(engine): compare invalid block witness against a healthy node (#10844)
- feat(trie): integrate
TrieInput
intoParallelStateRoot
&AsyncStateRoot
(#10930) - feat(trie): expose multiproof via
StateProofProvider
(#10915) - feat(trie): integrate
TrieInput
intoStateProofProvider
methods (#10929) - feat(trie): async root intermediate nodes (#10920)
- feat(trie):
TrieInput
(#10918) - chore(deps): weekly
cargo update
(#10911) - chore: add is granite active at timestamp (#10908)
- chore: update genesis to chain spec conversion (#10764)
- chore(reth-execution-errors): use derive_more::From when possible (#10897)
- chore: Some minor refactoring for cargo.toml (#10906)
- chore: fix ci (#10903)
- feat(evm-optimism): add OpBlockAccessListExecutor (#10895)
- chore: remove an intermediate allocation in ExecutionOutcome (#10900)
- fix: actually use
RevmBytecode::new_raw_checked
(#10899) - perf: improve genesis handling (#10878)
- chore: separate trait for conversion into state provider (#10858)
- Fix: Allow missing docs for test modules (#10893)
- feat(evm-ethereum): add BlockAccessListExecutor (#10849)
- feat: add support for wrapping the allocator with tracy (#10874)
- chore: bump alloy 0.3.5 (#10891)
- chore(op): Move imports in
reth_optimism_rpc::sequencer
to module prelude (#10886) - chore(op): Use
tokio::sync::OnceCell
to setSequencerClient
(#10885) - cfg: replace std feature gate alloc imports with extern crate alloc (#10861)
- dev: add send_and_resolve (#10847)
- fix(cli): remove static file providers from cache on
reth db stats
(#10887) - chore(op): Clean up module
reth_optimism_rpc::eth::sequencer
(#10884) - chore: remove unnecessary
segment
argument fromStaticFileProviderRW
(#10882) - fix: don't validate requests in optimism (#10883)
- fix(cli): ensure
reth init-state
doesn't end in an invalid state root (#10880) - fix(reth): bin/reth missing help msg of segment (#10873)
- fix: use configured chainspec parser for commands (#10876)
- docs: minor evm doc changes (#10867)
- dev: test vectors seed (#10859)
- fix: revert header error message change (#10866)
- chore: remove useless non exhaustive (#10865)
- fix: include reverts in execution outcome when building payload (#10837)
- chore(grafana): display empty string if no cargo features are available (#10862)
- perf(engine): parallel storage roots (#10666)
- chore: alias of datadir.static-files and upate book cli (#10856)
- fix: don't recurse on...
Reth v1.0.6
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
- Feat: exact gasUsed for eth_createAccessList (#10422)
- add
position
to callTracer (paradigmxyz/revm-inspectors#186) - fix(rpc/otterscan): set fullblock.tx_count with block's (#10421)
- feat(rpc): get_account (#10369)
- OP-Reth
New dev changes and features include:
- Dev
Breaking Changes
- removed CLI value for rpc module
eth_callBundle
which is now part ofeth
: (#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 ofBlockchainProvider2<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 ofBlockchainProvider2<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
forblock_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
forPoolTransaction
(#10504) - chore(deps): weekly
cargo update
(#10506) - primitives: rm
IntoRecoveredTransaction
forTransactionSignedEcRecovered
(#10505) - fix:
transaction_by_hash_with_meta
implementation ofCanonicalInMemoryState
(#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 ofBlockchainProvider2<DB>
(#10362) - Test
CanonStateSubscriptions
forBlockchainProvider2
(#10361) - chore(net): expose max concurrent
GetPooledTransactions
reqs in cli (#10358) - feat:
ChainSpec
associated type (#10292) - test:
CanonChainTracker
implementation forBlockchainProvider2
(#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
byBlock
(#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
ofBlockchainProvider2
(#10356) - chore: make
consensus/debug-client
helpers public (#10423) - test: add gh workflow to run hive tests with experimental flag (#10355)
- test(provider):
ChangeSetReader
ofBlockchainProvider2
(#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 ofBlockchainProvider2<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...
Reth v1.0.5
Summary
- Support for OP Granite hardfork (#10107)
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
OP (Sepolia) | critical |
See Update Priorities for more information about this table.
All Changes
- evm: unit tests for
evm_with_inspector
andevm_with_env_and_inspector
(#10253) - deps: rm useless dependencies (#10255)
- typo: replace [Block] by [
Block
] in doc (#10254) - feat: ForkChoiceNotifications for BlockchainProvider and NoopProvider (#10231)
- Add generic BlockStateNotificationStream type for pending, safe, finalized watchers (#10249)
- fix: TreeState::on_new_head fork and reorg handling (#10232)
- fix: make WithdrawalsProvider methods aware of in-memory state (#10245)
- docs: add more engine design docs (#9748)
- fix: use --chain base for op-sync CI test (#10244)
- fix: use op-reth bin for unwind in op-sync CI (#10243)
- fix: make EvmEnvProvider methods aware of in-memory state (#10240)
- chore: remove WriteTransactions from PersistenceAction (#10241)
- chore: release 1.0.5 (#10242)
- feat: add stage run tests (#10164)
- chore: remove reference to EngineApiTreeHandlerImpl (#10239)
- test: add test for prune.segments toml parsing (#10236)
- feat: add setting for how many blocks can be persisted (#10237)
- feat: function-like macro for generating tests (#10233)
- chore: add trace for when nothing to propagate (#10226)
- chore: use exact max full peer count or round (#10228)
- fix: only mark propagated txs as seen (#10234)
- feat: add metrics for dropped outgoing messages (#10225)
- evm: add unit tests for
ConfigureEvm
trait (#10230) - deps: rm unused deps (#10229)
- Add support for optimism granite hardfork (#10107)
- docs: fix Common metrics types path (#10224)
- feat: make additional validation tasks size configurable (#10200)
- feat: integrate engine2 for optimism (#10222)
- feat: inject locally built payloads into the tree (#10216)
- feat: make Eth node launcher generic (#10218)
- fix: detect invalid buffered block when insert fails (#10217)
- feat: make EthService generic over engine types and block executor (#10212)
- chore: derive serde traits (#10198)
- fix: properly modify spec id for evm (#10210)
- refactor: replace once_cell Lazy with LazyLock (#9844)
- Bump tokio version to mitigate default error in
reth-chain-state
(#10207) - chore: downgrade ipc warning (#10205)
- fix: return only canonical blocks for history_by_* methods (#10190)
- refactor: derive
PartialEq
forCanonStateNotification
(#10195) reth-eth-types
: Do not importJsInspectorError
by default (#10202)- fix: add requests root when converting alloy header (#10197)
- chore: remove some outdated todos (#10196)
- Convert pending block to a watch channel (#10203)
- deps: rm unused deps (#10192)
- chore: allocate for encoded txs (#10193)
- feat: use in memory state for header_td (#10189)
- feat: add basic engine2 exec and root perf logs (#10188)
- feat(engine-util): reorg interceptor (#10173)
- feat: add block_body_indices for BlockchainProvider2 (#10106)
- chore: Replace
reth-provider
dependency forreth-eth-types
with direct dependencies (#10175) - build in --debug mode for update-book-cli (#10178)
- fix: reset auth list in txenv on non-7702 txs (#10177)
- feat: add error tracing when persistence service fails (#10170)
- docs: add spec docs and todo for OP (#10171)
- fix: dont reset build interval when block finished (#10166)
- feat: support ms for --builder.interval (#10168)
- feat: integrate executed block into OP built payload (#10162)
- feat: introduce EngineApiRequest type (#10158)
- feat: add stream helper types (#10163)
- feat: add executed block to built payload trait (#10161)
- chore: lower persistence threshold (#10156)
- test: engine tree live sync, FCU extends canon chain with existing blocks (#10154)
- feat: execute downloaded blocks in batches (#10155)
- feat: swap
Dashmap
forStaticFileWriters
onStaticFileProvider
(#10089) - test: live sync test to check make canonical (#10131)
- Feature gate
jsonrpsee
related crates and check features powerset forreth-rpc-types
(#10141) - feat: make EngineApiRequestHandler generic over request (#10147)
- fix: use in memory state for state_by_block_number_or_tag (#10152)
- Add CI lint check using cargo hack for checking features powerset (#10142)
- chore: remove EngineTwoDockerfile (#10151)
- fix: only use tags if they have been set (#10150)
- feat: add
--engine.experimental
flag to enable engine2 (#10051) - feat: keep sender in tree task (#10148)
- feat: add header to stage command (#10127)
- chore: remove clippy::manual_unwarp_or_default (#10146)
- feat: ensure consistent forkchoice state always (#10144)
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.5-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.0.5-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.0.5-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.0.5-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.0.5-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth |
What's Changed
- feat: ensure consistent forkchoice state always by @Rjected in #10144
- chore: remove clippy::manual_unwarp_or_default by @nkysg in #10146
- feat: add header to stage command by @greged93 in #10127
- feat: keep sender in tree task by @mattsse in #10148
- feat: add
--engine.experimental
flag to enable engine2 by @nkysg in #10051 - fix: only use tags if they have been set by @Rjected in #10150
- chore: remove EngineTwoDockerfile by @Rjected in #10151
- Add CI lint check using cargo hack for checking features powerset by @citizen-stig in #10142
- fix: use in memory state for state_by_block_number_or_tag by @Rjected in #10152
- feat: make EngineApiRequestHandler generic over request by @mattsse in #10147
- Feature gate
jsonrpsee
related crates and check features powerset forreth-rpc-types
by @citizen-stig in #10141 - test: live sync test to check make canonical by @fgimenez in #10131
- feat: swap
Dashmap
forStaticFileWriters
onStaticFileProvider
by @joshieDo in #10089 - test: engine tree live sync, FCU extends canon chain with existing blocks by @fgimenez in #10154
- feat: execute downloaded blocks in batches by @mattsse in #10155
- chore: lower persistence threshold by @mattsse in #10156
- feat: add executed block to built payload trait by @mattsse in #10161
- feat: add stream helper types by @mattsse in #10163
- feat: introduce EngineApiRequest type by @mattsse in #10158
- feat: integrate executed block into OP built payload by @mattsse in #10162
- feat: support ms for --builder.interval by @mattsse in #10168
- fix: dont reset build interval when block finished by @mattsse in #10166
- docs: add spec ...
Reth v1.0.4
Summary
-
RPC
- trace_filter filtering with trace's address (#9722)
- fix trace inconsistencies (paradigmxyz/revm-inspectors#173 paradigmxyz/revm-inspectors#172 paradigmxyz/revm-inspectors#171 paradigmxyz/revm-inspectors#170)
- include current stage progress in
eth_syncing
(#10042) - include error in
eth_createAccessList
(#10021) - add
debug_executionWitness
(#9249) - Relax nonce and fee validation for eth_calls and alike (#9967 #9968)
- don't error on "pending" block in
eth_feeHistory
(#9904)
-
fix: deadlock on StaticFileProvider::get_writer (#10069)
-
fix: drop provider before getting the next one on range queries (#10034)
-
fix: set finalized & safe block information on startup (#9898)
-
fix: allow empty IP when decoding Ping's from field (#9953)
-
OP-reth
- make discv4 opt-in (#9938)
-
Dev
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
- Check features powerset for
reth-primitives
(#10138) - chore: ensure persistence receiver is dropped (#10133)
- fix: use actual latest state for BlockchainProvider2 (#10137)
- chore: rename EngineApiTreeHandler (#10140)
- chore(reth-node-metrics): remove unused code (#10139)
- chore: remove trait EngineApiTreeHandler (#10136)
- Check features powerset in
reth-codecs
(#10134) - chore: release 1.0.4 (#10122)
- docs: misc engine docs (#10135)
- feat: add EngineApiKind enum (#10128)
- typo: replace [BlockId] by [
BlockId
] (#10121) - trie: add
Default
impl forAccountProof
(#10132) - remove pending block support from OpEthApi (#10074)
- feat: add EngineApi metrics (#10125)
- chore(engine): enable clippy checks (#10120)
- update op-reth docs for discv4 option (#10119)
- feat: Support custom EvmConfig for ethereumpayload builder (#10117)
- fix: validate header against parent in engine2 (#10114)
- dep: rm unused dependencies (#10099)
- perf: spawn eth orchestrator as regular task (#10113)
- chore: rm redundant ( (#10112)
- chore(deps): bump EmbarkStudios/cargo-deny-action from 1 to 2 (#10109)
- fix: use in memory state for state_by_hash (#10105)
- feat: enable asm-keccak on more platforms (#10101)
- chore(net): Move
reth_network::NetworkEvents
intoreth-network-api
(#10062) - chore: add additional traces for promoted txs (#10093)
- fix: ensure we're skipping invalid tx kinds (#10095)
- chore(reth-network-api): fix typos (#10094)
- test: live sync transition, tree requests required blocks (#10082)
- chore: dont use tmp lock vars (#10092)
- Add in-memory block TD lookup support (#10052)
- tx-pool: add unit tests for
add_sender_count
(#10086) - chore(rpc): remove parent beacon root from conversion functions (#10090)
- feat: add metrics for in-memory state (#10085)
- fix: use recv timeout if persistence task is active (#10087)
- feat(evm): support
wasm32-wasip1
(#10083) - fix: deadlock on StaticFileProvider::get_writer (#10069)
- tx-pool: add unit tests for
EthPooledTransaction
(#10080) - feat: add api bindings for eth_simulateV1 (#10050)
- feat: add empty state method for tests (#10045)
- chore: re-add derived 7702 arbitrary impl (#9720)
- workflows: don't run assertoor tests on forks (#10077)
- Move
PeersHandleProvider
to new modulereth_network_api::test_utils
(#10060) - tx-pool: add unit tests for
FinalizedBlockTracker
update
(#10078) - chore(reth-ethereum-engine): Replace HeadersClient + BodiesClient with BlockClient (#10065)
- chore(reth-beacon-consensus): Replace HeadersClient + BodiesClient with BlockClient (#10066)
- chore(reth): Replace HeadersClient + BodiesClient with BlockClient (#10067)
- chore(reth-engine-tree): Replace HeadersClient + BodiesClient with BlockClient (#10073)
- Move reth_eth_wire::ProtocolVersion and reth_eth_wire::Capabilities to reth-eth-wire-types (#10071)
- chore(reth-network-p2p): Replace HeadersClient + BodiesClient with BlockClient (#10058)
- chore(reth-node-builder): Replace HeadersClient + BodiesClient with BlockClient (#10059)
- chore(deps): weekly
cargo update
(#10064) - fix: start payload builder on already canon head (#10041)
- chore(net): move
reth_network::BlockDownloaderProvider
toreth-network-api
(#10003) - chore: replace unreachable error variant (#10049)
- feat: improve download observability (#10039)
- implement part of
reth p2p rlpx ping
(#9762) - Added sync stages status to eth_sync (#10042)
- chore: remove expects in persistence task (#10031)
- fix: drop
provider
before getting the next one on range queries (#10034) - feat: use BTreemap for block numbers in CanonicalInMemoryState (#10040)
- feat: add prague check in ExecutionPayloadValidator (#10033)
- feat: add engine2 Dockerfile (#10036)
- deps: bump zstd (#10032)
- feat: support in memory lookups in BlockchainProvider2 (#9999)
- feat: add more granular tx propagation logs (#10026)
- chore(net): move
reth_eth_wire::DisconnectReason
toreth-eth-wire-types
(#10006) - tx-pool: rm constraint for
PoolTransaction
(#10024) - chore: use correct type in
getAccount
(#10023) - chore: use
UnifiedStorageWriter::commit
where possible (#10019) - chore: sort workspace Cargo.toml entries (#10022)
- chore: use alloy AccessList result (#10021)
- feat: add method to check prague active at timestamp (#10020)
- feat(primitives):
k256
crate fallback forsecp256k1
module (#9989) - fix(rpc/trace): trace_filter filting with trace's address (#9722)
- feat: add tx-level subpool add and remove traces (#10001)
- chore: better tree observability (#10014)
- tx-pool: add
Default
impl forTransactionOrigin
(#10013) - chore: downgrade empty blocks to persist trace to debug (#10012)
- feat : add storage_root provider function for account (#9659)
- op-reth: Enable eth_getProof inside authrpc (#10010)
- refactor(trie): remove dependency on
reth-db
andreth-db-api
(#10008) - refactor(trie): move database implementations of trie cursors to
reth-trie-db
crate (#10004) - feat(rpc):
debug_executionWitness
(#9249) - refactor(trie): move hashed post state database transaction related functions to
reth-trie-db
crate (#9987) - chore(sdk): enable referencing network type via
FullNodeComponents::Network
(#9921) - feat(ci):
check_no_std
->check_wasm
(#9982) - feat: add has eip7702 transactions (#9996)
- chore: move
remove_blocks_above
toStorageWriter
(#9997) - feat: add pipeline consistency check to launch ctx and use in launcher (#9994)
- chore(net): extract
NetworkHandle
methods for launching node to traits (#9966) - chore: move
save_blocks
toStorageWriter
(#9991) - chore: combine persistence task removal methods (#9975)
- fix: do not truncate blocks to persist (#9986)
- chore(net, primitives): use
derive_more::Display
more (#9992) - test: add engine tree test, FCU triggers reorg with all the blocks present (#9943)
- feat(primitives): improve
no_std
with manual errors andalloc::String
(#9990) - typo: fix typo in
best
tx pool doc (#9988) - feat(trie): expose trie witness on proof provider (#9915)
- feat: handle disconnected blocks (#9981)
- tx-pool: Make txpool independent of primitive tx types (#9916)
- chore: turn static file field generic on
StorageWriter
(#9980) - chore(trie): move
PrefixSetLoader
to db crate (#9985) - chore(net): Remove dependency
reth-network-p2p
->reth-network-types
(#9984) - feat: Add OP cli flag to opt-in into discv4 discovery (#9938)
- chore: remove
segment
argument fromincrement_block
(#9977) - fix: only write receipts once on
PersistenceService::save_blocks
(#9976) - feat: include block number in input (#9971)
- feat: combine block writing in persistence task (#9960)
- fix: remove persisted blocks properly (#9969)
- doc: replace expired example (#9973)
- fix: treat maxfeepergas 0 as missing (#9967)
- fix: also ignore nonce in eth_estimate (#9968)
- feat(exex): backfill stream in batches (#9738)
- chore: remove outdated Bodies stage TODO (#9965)
- chore: remove outdated TODOs on execution tests (#9964)
- Move reputation types from
reth-network-api
toreth-network-types
(#9914) - fix: dont select more rayon threads than cpus (#9956)
- fix: allow empty IP when decoding Ping's from field (#9953)
- refactor(trie): use
reth-storage-errors
forDatabaseError
type (#9951) - feat(provider): more logs for static files (#9949)
- feat: set pending block in canonical memory (#9950)
- chore: remove
write_trie_updates
fromStorageWriter
(#9947) - fix: share
DatabaseProviderRW
onPersistenceAction::SaveBlocks
(#9929) - fix: update indices outside of loop on
PersistenceService
(#9945) - fix: only check canonical height (#9941)
- docs: improving docs from
TestBlockBuilder
(#9936) - chore: pick safe hash for initial download (#9934)
- feat: handle insert buffered block err gracefully (#9933)
- fix: persistence action initial block insertion (#9930)
- chore: move
write_hashed_state
fromStorageWriter
totrait StateChangeWriter
(#9927) - feat: support DNS in reth.toml for trusted_nodes (#9864)
- test: add TestBlockBuilder (#9925)
- chore: use StateRootProvider::hashed_state_root_w...
Reth v1.0.3
Summary
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | low |
Non-Payload Builders | low |
op-reth base | critical |
See Update Priorities for more information about this table.
All Changes
- chore: release 1.0.3 (#9619)
- feat: move canon state types to new module (#9613)
- configurable middleware and metrics & http middleware (#9596)
- feat: allow custom provider type (#9606)
- revert: 4b8a66f (#9604)
- chore(reth-network-api): no_std support (#9595)
- chore: clarify metrics and prometheus (#9603)
- chore: rm unused mods (#9602)
- feat(trie): add empty
reth-trie-db
crate (#9585) - chore(reth-db): no_std support (#9597)
- ef-tests: derive
Default
for ef-tests structs (#9601) - chore: disable reth-codec default feature (#9556)
- feat: BackFillJobStream (#9578)
- feat: add canonical in memory state (#9588)
- fix: Use correct base fee params for Base mainnet after canyon hardfork (#9600)
- feat: make
to_compact
borrow (#9488) - fix(prune): saturating subtract for genesis deposit contract block (#9584)
- no_std in reth-ethereum-forks (#9589)
- chore(tracing): export tracing-appender crate (#9590)
- chore: no_std in reth-codec (#9587)
- chore(no_std): fixed
no_std
compiler errors inreth-primitives-traits
(#9572) - chore: use each prune segment method on
remove_blocks_above
(#9568) - chore(exex): move notification to types crate (#9586)
- feat: add in memory state container (#9574)
- feat: add start backfill sync fn (#9580)
- feat: add EthNodeLauncher (#9575)
- chore(evm): remove unneeded lifetimes (#9583)
- chore(rpc): remove use of
optimism
feature fromreth-rpc
library (#9579) - chore(rpc): move
OpEthApi
traits intoreth-optimism-rpc
(#9581) - chore: replace
StoredBranchNode
,StoredTrieMask
andStoredHashBuilderValue
types withCompact
impl instead (#9573) - chore: remove serde support from reth-codec (#9570)
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.3-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.0.3-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.0.3-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.0.3-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.0.3-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth |
What's Changed
- chore: remove serde support from reth-codec by @nkysg in #9570
- chore: replace
StoredBranchNode
,StoredTrieMask
andStoredHashBuilderValue
types withCompact
impl instead by @joshieDo in #9573 - chore(rpc): move
OpEthApi
traits intoreth-optimism-rpc
by @emhane in #9581 - chore(rpc): remove use of
optimism
feature fromreth-rpc
library by @emhane in #9579 - chore(evm): remove unneeded lifetimes by @shekhirin in #9583
- feat: add EthNodeLauncher by @mattsse in #9575
- feat: add start backfill sync fn by @mattsse in #9580
- feat: add in memory state container by @fgimenez in #9574
- chore(exex): move notification to types crate by @shekhirin in #9586
- chore: use each prune segment method on
remove_blocks_above
by @joshieDo in #9568 - chore(no_std): fixed
no_std
compiler errors inreth-primitives-traits
by @martinezjorge in #9572 - chore: no_std in reth-codec by @nkysg in #9587
- chore(tracing): export tracing-appender crate by @shekhirin in #9590
- no_std in reth-ethereum-forks by @nkysg in #9589
- fix(prune): saturating subtract for genesis deposit contract block by @shekhirin in #9584
- feat: make
to_compact
borrow by @mattsse in #9488 - fix: Use correct base fee params for Base mainnet after canyon hardfork by @BrianBland in #9600
- feat: add canonical in memory state by @fgimenez in #9588
- feat: BackFillJobStream by @loocapro in #9578
- chore: disable reth-codec default feature by @mattsse in #9556
- ef-tests: derive
Default
for ef-tests structs by @tcoratger in #9601 - chore(reth-db): no_std support by @nkysg in #9597
- feat(trie): add empty
reth-trie-db
crate by @RomanHodulak in #9585 - chore: rm unused mods by @mattsse in #9602
- chore: clarify metrics and prometheus by @mattsse in #9603
- chore(reth-network-api): no_std support by @nkysg in #9595
- revert: 4b8a66f by @mattsse in #9604
- feat: allow custom provider type by @mattsse in #9606
- configurable middleware and metrics & http middleware by @smatthewenglish in #9596
- feat: move canon state types to new module by @mattsse in #9613
- chore: release 1.0.3 by @mattsse in #9619
New Contributors
- @RomanHodulak made their first contribution in #9585
Full Changelog: v1.0.2...v1.0.3
Reth v1.0.2
Summary
- RPC Bug fixes (#9448 #9477 #9469)
- Prometheus metrics endpoint improvement (#9459)
- Improved full node pruning observability (#9520)
- Breaking NodeBuilder API (#9444)
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
- chore: bump revm 12.1 (#9567)
- chore: update
Base
to new max gas limit (#9566) - feat: rm HashedStateChanges, introduce StorageWriter::write_hashed_state (#9561)
- feat(rpc/admin): compatible with geth's admin_nodeInfo (#9448)
- chore: rm outdated impls (#9560)
- feat(rpc/otterscan): set total_fees in ots_getBlockDetails (#9477)
- feat: bump alloy version (#9545)
- feat: impl remove_blocks_above to static file service (#9553)
- chore(deps): move zstd to workspace (#9552)
- rpc: refactor
ReceiptBuilder
(#9551) - chore(meta): remove myself from CODEOWNERS (#9549)
- chore: release 1.0.2 (#9538)
- chore(net): enable rust.unnameable-types = "warn" lint (#9505)
- chore(op): remove optimism feature for
LoadReceipts
(#9504) - chore: more reth-codec cfgs (#9547)
- chore(op): remove optimism feature from
LoadPendingBlock
(#9503) - chore(op): implement
Call
forOpEthApi
(#9502) - feat: add
StorageWriter
standalone type (#9507) - feat: feature gate reth-codec impl (#9492)
- test: flaky tx type test (#9542)
- feat: blockchain provider tree state integration (#9518)
- chore(rpc): expose ethapi in node builder for op customisation (#9444)
- feat(stages): unwind prune checkpoints (#9528)
- feat: implement remove_blocks_above in db service (#9533)
- fix: commit receipts in write_execution_data (#9525)
- Rename main codec to reth db codec (#9501)
- chore(deps): bump tsickert/discord-webhook from 5.3.0 to 6.0.0 (#9532)
- docs: document Options in get_highest_* and ensure_invariants (#9529)
- chore: rename terminal_difficulty to total_difficulty (#9530)
- fix: add sync-op-mainnet to book (#9527)
- feat(pruner, stages): logs for Prune stage (#9520)
- typo: fix typo in rpc (#9514)
- feat(tree): implement trie traits for in-memory overlay provider (#9522)
- feat(stages): add more logs to Execution (#9524)
- move HackReceiptFileCodec into reth-optimism-cli (#9499)
- feat(trie): write sorted hashed state (#9519)
- fix(stages): update prune sender recovery stage checkpoint (#9513)
- feat: subscribe to finalized and safe headers (#9402)
- feat(trie): sorted iterators for updated hashed state entries (#9516)
- feat(provider): hashed state methods for trie related providers (#9510)
- chore(grafana): re-order prune stages (#9511)
- feat: implement generalizable rpc middleware (#9429)
- feat(ci): add hive discord alert on failure (#9482)
- fix(grafana): fix broken mempool panel (#9506)
- example(exex): move to a separate repo (#9500)
- chore(deps): weekly
cargo update
(#9496) - refactor: optimize eth_sendTransaction to exit early if signer not found (#9494)
- chore: rm redundant optimism feature (#9489)
- feat: OP: keep encoded txs in payload attributes (#9467)
- replace optimism error variant with Other (#9483)
- feat: route commands to correct persistence service (#9435)
- test: add EngineApiTreeHandlerImpl integration test (#9453)
- feat(primitives): re-export EIP-7702 types (#9481)
- chore: some no-std touchups (#9480)
- feat(trie): reimplement in-memory trie cursors (#9305)
- replaced generic to box dyn (#9443)
- feat: add
max_gas_limit
toChainSpec
(#9473) - test(revm): unit test
insert_post_block_withdrawals_balance_increments
(#9194) - refactor(pruner): dedicated static file segments (#9262)
- feat(net/peer): simple support rank higher with static peer (#9471)
- chore: use create_test_provider_factory in more places (#9463)
- chore: remove BundleStateInit dup in take/get/remove_state methods (#9464)
- chore: remove sender recovery dup in db provider (#9466)
- fix(chainspec): set dao_fork_support=true for mainnet,sepolia,holesky (#9468)
- feat(rpc/otterscan): change BlockId to u64 in has_code (#9469)
- chore: add
COMPACT_EXTENDED_IDENTIFIER_FLAG
const toTxType
(#9461) - book: remove not exist files links (#9360)
- feat: add remove_block_and_execution_range (#9432)
- chore: use
DatabaseProviderRW
instead ofTX
on*State*::write_to_db
(#9460) - chore: move
get
methods toDatabaseProvider<DbTx>
(#9454) - chore: replace base fee constants with native const (#9437)
- chore(pruner): remove deletion limit per block, make it per run (#9446)
- fix: accept concurrent prometheus connections (#9459)
- chore: use
DatabaseProviderRW
onStateWriter::write_to_storage
instead ofTX
(#9449) - feat(prune, stages): prune pipeline stage (#9419)
- chore: use
DatabaseProviderRW
instead ofTX
oninsert_genesis_header
(#9452) - chore: use
DatabaseProviderRW
instead ofTX
onstages
(#9451) - feat: tree hook for persisting blocks (#9365)
- chore: resolve new clippy error w/ suggested fix part 2 (#9447)
- test: ensure block reader traits are object safe (#9440)
- chore: use vec for encoding (#9442)
- chore: rm redundant is_optimism checks (#9438)
- chore: remove node-core from CODEOWNERS (#9426)
- feat: eip-7702 (#9214)
- docs(node): replace the old --dicsv5.addr with --discovery.addr (#9436)
- feat: introduce static file task (#9234)
- chore: resolve new clippy error w/ suggested fix (#9427)
- docs: remove random pub from transaction docs (#9423)
- chore: move
sigsegv handler
toreth-cli-util
crate (#9421) - feat: remove get or take usage (#9412)
- feat: add fs-util for reading, writing json files (#9418)
- chore: rm redundant clippy allow (#9415)
- Optimism Cli struct (#9416)
- feat: parsers (#9366)
- Added wrapper type defaulting to prague engine caps (#9413)
- chore(deps): trim cli-util crate deps (#9410)
- feat: add
get
andtake
methods to db provider (#9406) - feat: add DatabaseProvider remove method (#9405)
- feat: make unwind_table_by_walker take RangeBounds (#9404)
- fix(op): fixes impl of eth api for OP (#9377)
- test: add serial lock for lockfile tests (#9403)
- chore: remove unused
chainspec
field fromOptimismPayloadBuilder
(#9397) - test: make test compile in reth-rpc (#9399)
- style: move function below impl (#9398)
- chore: move
import
command toreth-cli-commands
(#9394) - Integrate Request evm env filling in ethapi (#9358)
- chore: move
node
command toreth-cli-commands
(#9395)
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.2-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
aarch64 | reth-v1.0.2-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.0.2-x86_64-pc-windows-gnu.tar.gz | PGP Signature | |
x86_64 | reth-v1.0.2-x86_64-apple-darwin.tar.gz | PGP Signature | |
aarch64 | reth-v1.0.2-aarch64-apple-darwin.tar.gz | PGP Signature | |
System | Option | - | Resource |
Docker | paradigmxyz/reth |
What's Changed
- chore: move
node
command toreth-cli-commands
by @joshieDo in #9395 - Integrate Request evm env filling in ethapi by @nkysg in #9358
- chore: move
import
command toreth-cli-commands
by @joshieDo in #9394 - style: move function below impl by @mattsse in #9398
- test: make test compile in reth-rpc by @mattsse in #9399
- chore: remove unused
chainspec
field fromOptimismPayloadBuilder
by @joshieDo in #9397 - test: add serial lock for lockfile tests by @mattsse in #94...
Reth v1.0.1
Summary
- RPC Bug fixes (#9383 #9353)
- Full Node performance improvements (#9055, #9312). See the warning below.
- ExEx features: backfill (#9123)
⚠️ Important information for full node operators ⚠️
This update requires special care for full nodes. Please follow these instructions:
- Stop the node
- Update the binary to 1.0.1
- Run
reth prune
(along with the--chain
and datadir arguments you've used withreth node
) and wait until completion - Start Reth as usual
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 |
Full Nodes | high |
See Update Priorities for more information about this table.
All Changes
- chore(deps): rm reth-codecs dep (#9390)
- chore(deps): bump revm 11 (#9391)
- fix: support additional eth call bundle args (#9383)
- chore: release 1.0.1 (#9388)
- feat(rpc/ots): implement ots_getTransactionBySenderAndNonce (#9263)
- chore: update private-testnet.md (#9389)
- feat(rpc/ots): implement ots_traceTransaction RPC (#9246)
- chore: fix clippy warnings for needless_borrows_for_generic_args (#9387)
- refactor(rpc): remove intermediate types from rpc start up process (#9180)
- feat(rpc/ots): implement ots_getContractCreator (#9236)
- chore: move
stage
command toreth-cli-commands
(#9384) - feat: add support for payload bodies (#9378)
- Integrate permits for getproof (#9363)
- feat(tree): pre-validate fcu (#9371)
- clippy: rm useless clippy statement (#9380)
- perf(pruner): delete history indices by changeset keys (#9312)
- docs: typos (#9379)
- feat(tree): validate state root (#9369)
- feat: move mev rpc types to alloy (#9108)
- feat(pruner): log stats as an ordered list of segments (#9370)
- chore(deps): bump alloy 0.1.4 (#9368)
- book: add troubleshooting commands to check disk and memory health and performance (#9364)
- replacing network_handle with peer_info trait object (#9367)
- feat: eip-7251 (#9335)
- feat: Add required trait impls for OpEthApi (#9341)
- feat: adds eth request panels to grafana (#9026)
- feat: add entrypoint and main loop to EngineApiTreeHandlerImpl (#9334)
- test(tx-pool): add unit tests for
BestTransactions
add_new_transactions
(#9355) - chore(deps): weekly
cargo update
(#9354) - chore: remove unused private stream type (#9357)
- fix: encode block as is in debug_getRawBlock (#9353)
- chore: remove cfg'ed use serde (#9352)
- chore: make eyre optional in reth-db (#9351)
- chore(meta): remove security link from issue template config (#9350)
- chore: dont enable serde by default for eth-wire (#9339)
- chore(deps): rm discv4 dep from eth-wire (#9344)
- chore(meta): fix link in issue template config (#9349)
- test: make eth-wire tests compile with --all-features (#9340)
- chore: rm unused optimism feature (#9342)
- chore: use usize in internal functions (#9337)
- chore: remove
test-utils
,arbitrary
andproptest
from built binary (#9332) - chore: move featureless commands from
bin
toreth-cli-commands
(#9333) - move header.rs to eth-wire-types (#9345)
- chore(deps): trim tokio features in eth-wire (#9343)
- fix: format_gas show two decimal places (#9336)
- chore: disable
test-utils
forstages-api
onstages
(#9331) - chore: move
reth test-vectors
tocli/commands
with feature (#9329) - chore(ci): improve
hive
workflow (#9320) - chore: use
*_GENESIS_HASH
constants on ethereum chainspecs (#9328) - feat: log throughput in execution stage (#9253)
- feat: implement
HistoricalStateProviderRef::proof
(#9327) - feat: op eth api scaffolding (#9324)
- feat(trie): pass state reference to
StateProofProvider::proof
(#9308) - Remove fullprovider trait restriction in backfill impls (#9326)
- qol: purge goerli (#9310)
- chore(evm): turn associated
ConfigureEvm
fns into methods (#9322) - use op-alloy genesis types for genesis parsing (#9292)
- fix: no_std build (#9313)
- github-workflows: delete the direction of dead(deleted) code (#9316)
- feat(trie):
HashedPostState::account_proof
(#9319) - feat(trie): allow supplying prefix sets to
Proof
(#9317) - fix: holesky genesis hash (#9318)
- perf: resolve trusted peers (#9301)
- feat: backfill job single block iterator (#9245)
- feat(trie): allow setting hashed cursor factory on
Proof
(#9304) - Fix: fix the issue of not being able to specify bootnode through command parameters (#9237)
- chore(trie): return mutable prefix sets from
HashedPostState::construct_prefix_sets
(#9306) - feat: extract proof generation into
StateProofProvider
(#9303) - fix(rpc/ots): set block_number as u64 instead of NumberOrTag (#9302)
- fix: remove useless arbitrary feature (#9307)
- chore(cli): move utils to
reth-cli-utils
crate (#9297) - feat(rpc/ots): add rpc erigon_getHeaderByNumber (#9300)
- chore: remove unused async (#9299)
- feat: feature gate tokio::net lookup (#9289)
- ci: re-enable hive tests (#9240)
- feat: add empty optimism rpc crate (#9295)
- perf: spawn eth proof on IO pool (#9293)
- perf: resolve trusted nodes concurrently (#9291)
- chore(trie): revamp inner in-memory trie cursor representation (#9287)
- chore: rename eth engine module orchestrator -> service (#9288)
- fix(cli): don't init datadir if it doesn't exist in db command (#9264)
- chore: move
withdrawal_requests_contract_call
toreth-evm
(#9272) - chore(rpc): rm dup getters
EthApi
(#9283) - chore: use direct link to threshold docs (#9284)
- chore: Expose
TrieUpdates
inner fields (#9277) - ci(hive): build
reth
externally (#9281) - feat(rpc): enable historical proofs (#9273)
- fix: always evaluate build_profile_name at compile time (#9278)
- test: rm useless unit tests for
calc_next_block_base_fee
(#9280) - clippy: rm some
type_complexity
(#9276) - test(transaction-pool): add unit tests for
BestTransactionsWithFees
next
(#9274) - feat: add resolve blocking for TrustedNode (#9258)
- chore(rpc):
EthApi
builder (#9041) - test: add unit tests for
save_receipts
(#9255) - feat: add empty ethereum cli crate (#9268)
- feat: add ethereum engine chain orchestrator (#9241)
- chore: move
pre_block_beacon_root_contract_call
to evm crates (#9244) - feat: moved optimism commands to create and remove from bin (#9242)
- trie: revamp trie updates (#9239)
- chore: simplify p2p subcommand (#9265)
- refactor: move write_peers_to_file to NetworkManager impl (#9134)
- feat: add non feature gated noop block reader (#9261)
- feat: add pruner to persistence task (#9251)
- refactor(evm): set prune modes optionally for the batch executor (#9176)
- feat: add ChainspecParser trait (#9259)
- chore: fix pruner exex height docs, add run docs (#9250)
- chore: remove prune_modes from BlockWriter (#9231)
- chore: use format_gas and format_gas_throughput for gas logs (#9247)
- chore: add send_action method to persistence task (#9233)
- chore: move
fill_block_env
toConfigureEvmEnv
(#9238) - feat: add pruning related persistence API (#9232)
- chore: disable discovery for --dev (#9229)
- chore(trie): return nibbles from
TrieCursor::current
(#9227) - fix(rpc/admin): missing enode/enr in admin_peers endpoint (#9043)
- fix: typo in book intro (#9228)
- feat(clippy): add
iter_without_into_iter
(#9195) - chore: extract db commands (#9217)
- feat: implement write method on persistence task (#9225)
- chore(trie): store only deleted keys in
TrieWalker
(#9226) - docs(book): remote ExEx chapter (#8992)
- chore(execution): verify cumulative gas used before receipts root (#9224)
- chore: rename pipeline references to backfill sync (#9223)
- chore: remove unused
static-file
code (#9178) - chore: remove usage of
tx_env_with_recovered
(#9222) - chore: add builder with rng secret key fn (#9218)
- chore(trie): clean up trie update operation matching (#9202)
- chore: remove unused
MIN_LENGTH_EIPXXXX_ENCODED
(#9211) - feat: new engine API handler (#8559)
- fix: ambiguous deposit mint value in arbitrary (#9216)
- refactor(chainspec): simplify
genesis_header
using default pattern (#9198) - refactor: some simplifications around revm database (#9212)
- refactor: small refactoring (#9208)
- feat(net/peer): set rpc added peer as static (#9201)
- docs: fix the links to code in discv4 docs (#9204)
- refactor(revm): simplify
fill_tx_env
(#9206) - refactor(net): some refactor in eth requests (#9205)
- chore(trie): rename in-memory trie cursors (#9203)
- chore(deps): weekly
cargo update
(#9199) - chore(deps): remove igd-next (#9200)
- chore: finally move node-core to node folder (#9191)
- chore: replace raw usage of revm evm builder with EvmConfig usage (#9190)
- feat(net/peer): add peer with udp socket (#9156)
- chore: rm leftover mods (#9188)
- chore: update audit doc to v2 (#9177)
- chore(ecies): expose ECIESCodec for fuzzing (#9182)
- chore(trie): remove database-related types from trie keys (#9175)
- chore: remove
tx_env_with_recovered
from rpc crates (#9158) - chore: rm redundant clone (#9174)
- feat(exex): backfill executor (#9123)
- fix(net/peer): remove the duplicated disconnect logic (#9162)
- fix: derive arbitrary for tests (#9167)
- refactor: reduce number of args for
post_block_balance_increments
(#9154) - chore: fix wrong function name (#9164)
- dev: update
NodeExitFuture
(#9153) - chore(storage, provider): rename bundle state with receipts (#9160)
- feat(trie): in-memory trie node overlay (#8199)
- chore: fix clippy (#9163)
- refactor(net): move node record constants to network-peers crate (#9161)
- chore: move
revm_spec
methods from `reth-primiti...