Skip to content

Releases: paradigmxyz/reth

Reth v1.1.4

11 Dec 11:58
Compare
Choose a tag to compare

image

Summary

This release contains only one fix relevant to op-reth which allows the miner_ API that is now required by op-batcher as CLI argument:

  • fix: fromstr impl for miner variant (#13289)

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 high

See Update Priorities for more information about this table.

All Changes

  • chore: bump version 1.1.4 (#13291)
  • fix: fromstr impl for miner variant (#13289)

Binaries

See pre-built binaries documentation.

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

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

Full Changelog: v1.1.3...v1.1.4

Reth v1.1.3

10 Dec 17:01
d97449d
Compare
Choose a tag to compare

image

Summary

This release contains performance improvements and bug fixes.

  • fix: run prometheus metrics upkeep manually (#12664)
  • fix: always truncate static files (#12765)
  • perf(AllTransactions-iter): do not clone all transactions by default (#13187)
  • perf: call increment once (#13193)
  • perf(txpool): remove more clones (#13189)
  • chore: remove some excessive allocs in hot path (#13176)
  • fix: push exex job front of queue (#13177)

OP-Reth

  • feat: install op miner endpoint (#13147)
  • fix: do not delegate is_optimism check for Ethereum ChainSpec (#12650)
  • fix: use correct timestamp for op receipt (#12716)
  • Check holocene activation based on the parent's timestamp (#13060)

Dev

This contains several breaking API changes and introduces a primitive trait abstraction (NodePrimitives) in several components.
For migrating exex's please take a look at the examples repository https://github.com/paradigmxyz/reth-exex-examples
Expect more simplifications and improved ergonomics in upcoming releases

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 medium

See Update Priorities for more information about this table.

All Changes

  • fix: bounds for BundleApi (#13267)
  • chore: release 1.1.3 (#13262)
  • chore: use trait fn for blob gas (#13261)
  • feat: make bodies downloader generic over header (#13259)
  • feat: relax bounds for EngineApiTreeHandler (#13257)
  • feat(engine): add error logging in state_hook (#13252)
  • feat: remove default types from headers stage (#13258)
  • chore: pass primiitves generic to EngineApiTreeHandler fields (#13256)
  • chore: use BlockWithParent for StageError (#13198)
  • chore: relax ProviderFactory setup (#13254)
  • feat: extract zstd compressors (#13250)
  • feat(rpc): relax VaidationApi and EngineApi (#13241)
  • Return a propoer error code for txpool is full error (#13245)
  • chore: add blob_versioned_hashes_iter to block body (#13246)
  • perf(engine): add StateRootTask bench (#13212)
  • perf(trie): use entry API in sparse trie (#13240)
  • feat: relax bounds for eth_simulateV1 (#13232)
  • chore: relax more consensus functions (#13236)
  • fix(trie): retain updates only for sparse branch nodes in the prefix set (#13234)
  • chore: rename HighestStaticFiles::min (#13235)
  • fix(trie): reveal extension child in sparse trie when updating a leaf (#13183)
  • ci: move deny to lint (#13230)
  • chore: use BlockHeader trait (#13224)
  • chore: add default impls for withdrawals and ommers root (#13229)
  • fix: deny advisory RUSTSEC-2024-0421 (#13227)
  • feat(db): make init_db function accepts a TableSet (#13222)
  • feat: bound NetworkPrimitives types by proper traits (#13196)
  • chore(engine): simplify StateRootTask creation and hook management (#13213)
  • test: add tracing test (#13221)
  • chore(deps): weekly cargo update (#13216)
  • chore: feature gate reth-codecs in trie-common (#13215)
  • chore: flip tx conversion impl (#13208)
  • chore: make reth-network-peers risc compatible (#13210)
  • chore(engine): refactor code to transform EvmState into HashedPostState (#13207)
  • chore: move calculate tx root to blockbody trait (#13209)
  • chore: make zip_blocks generic over header (#13199)
  • Add placeholder OpHardfork::Isthmus (#13112)
  • feat: relax bounds for EthPubSub (#13203)
  • perf(txpool): remove more clones (#13189)
  • chore: fix cargo check -p reth-stages --tests (#13200)
  • chore: remove unused trie-common alloy-serde dep (#13201)
  • refactor: simplify and relax some RPC bounds (#13202)
  • feat: make BlockResponse generic over header (#13195)
  • perf: call increment once (#13193)
  • refactor(prune-types/prune): move PruneLimiter to reth-prune (#13182)
  • perf: more FxHashMaps for SenderId key (#13188)
  • perf(AllTransactions-iter): do not clone all transactions by default (#13187)
  • fix: don't use reserved word None in bug template (#13192)
  • chore: rm validate delegate (#13190)
  • chore: disable url default features (#13191)
  • feat: unify ReceiptWithBloom from Alloy (#13088)
  • chore: introduce ethereum-primitives crate (#13185)
  • chore: rm unused evm provider fn (#13184)
  • feat(db): initialize db with tables (#13130)
  • chore: use slice arg for tx decoding (#13181)
  • fix(trie): delete self destructed accounts from sparse trie (#13168)
  • chore: remove some excessive allocs in hot path (#13176)
  • feat(DbTx): add get_by_encoded_key (#13171)
  • perf(tx-pool): reuse write lock to insert txs batch (#12806)
  • chore: use leaner NoopProvider in network (#13178)
  • feat: EthApi traits abstraction (#13170)
  • fix: push job front of queue (#13177)
  • perf: profile TransactionsManager::poll hash fetching (#12975)
  • chore: Code Simplification and Optimization (#12840)
  • fix: throw error if genesis header found on static files, but empty db (#13157)
  • feat(trie): use branch node hash masks in sparse trie (#13135)
  • feat: re-export used deps from reth-codecs (#13167)
  • chore: make reth codec support optional (#13166)
  • fix: txpool tests (#13172)
  • chore(engine): add StateHookSender constructor (#13162)
  • feat: use network tx for Pool::Pooled (#13159)
  • Allow replacement txs with exactly price bump (#13161)
  • chore: add typed2718 to txtype (#13076)
  • feat: Add ratelimiting to OpWitness API (#12998)
  • fix(engine): wait for all state updates before returning state root task result (#13156)
  • chore: add reference to the troubleshooting page on mdbx::Error::Access (#13151)
  • feat: Support sending raw capability messages (#13028)
  • perf(trie): avoid (de)allocating an extra prefix set (#13020)
  • feat: make RPC cache generic over primitives (#13146)
  • feat: impl compact for alloy txtype (#13152)
  • chore: reuse alloy proof fns (#13091)
  • chore: bump alloy 073 (#13150)
  • feat: install op miner endpoint (#13147)
  • docs: add docker and error code 13 to troubleshooting chapter (#13133)
  • chore: bump pprof (#13148)
  • Bump op-alloy (#13142)
  • feat: wire network primitives to remaining components (#13143)
  • feat: add OpBuilder config (#13132)
  • feat(trie): collect branch node hash masks when calculating a proof (#13129)
  • chore: add typed receipt for Receipt (#13140)
  • refactor: split NetworkEventListenerProvider (#12972)
  • chore: add container question to bug template (#13134)
  • fix(witness): collect witness using sparse trie (#13072)
  • fix(op): add missing op consensus validation check (#13122)
  • Extend revm spec tests for holocene (#13111)
  • Fix typos in documentation (#13094)
  • perf: avoid cloning bytecode when converting revm's &AccountInfo to reth's Account (#13126)
  • feat: make PoolInner functions pub (#13124)
  • refactor(sdk): complete generic impl for PersistenceService over N::Primitives (#13044)
  • chore(ci): fix hive patch (#13123)
  • chore: remove TransactionSignedNoHash (#13120)
  • refactor: pending block construction (#13109)
  • chore: bound most NetworkBuilder methods by NetworkPrimitives generic (#13119)
  • chore: relax rpc bounds (#13100)
  • chore: propagate network primitives generic to EthStream usages (#13117)
  • feat: use generic CapabilityMessage everywhere (#13116)
  • feat: make TransactionsManager Future impl generic over NetworkPrimitives (#13115)
  • chore: remove redundant enum (#13113)
  • feat: make import_transactions use network generics (#13110)
  • feat: Add Transaction AT to ConfigureEvm (#13106)
  • Introduce HashedPostStateProvider (#12607)
  • chore(trie): make Debug impl work for any provider (#13107)
  • chore: propagate network primitives to on_command, on_network_event (#13084)
  • feat: make InvalidBlockHook generic over NodePrimitives (#13105)
  • perf(validate-tx-pool): fast non-allocating is_local (#13096)
  • feat(custom-tables): don't record metrics for custom tables (#13104)
  • chore: move sparse errors to reth-execution-errors (#13101)
  • introduce tableset and impl for tables enum (#12617)
  • fix(trie): do not persist root branch nodes in sparse trie (#13071)
  • feat: impl noop miner api endpoint (#13102)
  • fix(trie): short circuit leaf removal if missing (#12988)
  • perf(engine): do not clone proof targets (#13061)
  • feat: add miner rpc bindings (#13099)
  • chore(trie): exclude blinded providers from Debug impl (#13098)
  • chore(evm): migrate execution errors back to thiserror (#13097)
  • feat: add Op DA config (#13095)
  • feat: impl more noop functions (#13029)
  • chore: fix unused warning (#13090)
  • fix(engine): get_proof_targets only add fetched accounts if they have new storage (#13015)
  • feat: Use PrimitiveSignature instead of Signature (#13087)
  • feat: use primitive transaction as PoolTransaction::Consensus (#13086)
  • feat(trie): proof blinded providers (#13085)
  • chore(sdk): define OpTransactionSigned (#11433)
  • refactor: rename TransactionSignedEcRecovered to RecoveredTx (#13074)
  • chore: flatten reth-primitives dep (#13082)
  • chore: make has_eip4844 generic over SignedTransaction (#13083)
  • chore: disable nybbles default feature (#13081)
  • feat(trie): SparseStateTrie::new (#13068)
  • chore: set event logs from StaticFileProducer and Pruner to debug (#13080)
  • f...
Read more

Reth v1.1.2

19 Nov 16:27
496bf0b
Compare
Choose a tag to compare

image

Summary

This release contains performance improvements and bug fixes.

  • feat(payload) : optimize new payload job by fetching only header hash instead of block (#12343)
  • feat: mev_simBundle (#12218)
  • fix: pending transaction ordering (#12382)

OP-Reth

This release is holocene hardfork ready

  • fix: consume all payload variants (#12520)
  • feat(spec): Holocene activation time for {OP/Base} Sepolia (#12453)
  • feat: add payload witness fn (#12579)
  • feat: restructure op builder (#12229)

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 critical

See Update Priorities for more information about this table.

All Changes

  • chore: bump version 1.1.2 (#12651)
  • chore(sdk): make Chain generic over data primitives (#12635)
  • docs: small fix in HARDFORK-CHECKLIST.md (#12646)
  • chore(sdk): limit FillTxEnv to super trait of FullSignedTx (#12614)
  • Typo Update private-testnet.md (#12633)
  • Run kurtosis e2e test 2x/day (#12641)
  • fix(discv5): warning discv5 config socket override (#12636)
  • chore(witness): simplify wiped storage retrieval (#12637)
  • feat(trie): turn TrieWitness methods into public functions (#12510)
  • fix: correctly prune transactions during on-disk reorgs (#12630)
  • feat(engine): introduce sync implementation of StateRootTask (#12378)
  • feat(trie): add extend method to MultiProof (#12467)
  • chore(deps): weekly cargo update (#12611)
  • chore(sdk): Define MaybeSerde (#12577)
  • test(tx-pool): add more unit tests for pending pool (#12603)
  • test(tx-pool): add more unit tests for blob pool (#12605)
  • Fix Minor Documentation Errors (#12601)
  • Typo Update profiling.md (#12631)
  • Fix grammatical error in lib.rs (#12632)
  • test: add tests for base l1 blockinfo (#12609)
  • chore: use keccak256 from alloy (#12628)
  • chore: refactor MockTransaction (#12627)
  • chore(sdk): Add InMemorySize as super trait (#12615)
  • feat: add EthereumEthApiTypes (#12618)
  • feat: add TokioTaskExecutor::boxed (#12619)
  • fix: add additional op checks for chain specific check (#12623)
  • feat: install op debug exeuction witness (#12622)
  • fix(deps): Fix dev-deps for reth-primitives (#12612)
  • feat: add merge_if_module_configured (#12608)
  • chore(sdk): Add blanket impls for refs to prim traits (#12613)
  • feat: fix WASM build for crates dependent on reth-payload-primitives (#12610)
  • feat: split reth-payload-primitives (#12600)
  • chore(cli): unify trait bounds (#12604)
  • rm more generics when useless (#12595)
  • chore: remove revm-primitives re-export (#12599)
  • chore: move triewriter trait (#12598)
  • chore: move hashing writer trait (#12597)
  • test(tx-pool): add more unit tests for parked pool (#12591)
  • chore(sdk): Remove duplicate trait BlockHeader (#12584)
  • chore: make clippy happy (#12594)
  • chore(sdk): add NetworkPrimitives for NetworkManager (#12530)
  • Fix grammar in MDBX documentation (#12580)
  • rm generics when useless (#12581)
  • chore(util): Add reth payload util (#12590)
  • feat: add contains fns to transport rpc modules (#12593)
  • feat: add op debug witness api (#12583)
  • feat: add tx_number consistency check to StaticFileProviderRW (#12570)
  • feat: add payload witness fn (#12579)
  • feat: add helpers to obtain the execution witness for a payload (#12573)
  • feat: implement Compact for OpTxType (#12537)
  • chore(sdk): improve usability TxType trait (#12548)
  • fix: remove redundant check in bodies stage (#12569)
  • ci: exclude more crates for op tests (#12568)
  • feat: introduce debug witness api (#12567)
  • feat: make StaticFileProvider generic over NodePrimitives (#12565)
  • chore: extract witness recorder helper type (#12566)
  • engine-primitives: make engine-tree independent of beacon-consensus crate (#12560)
  • net: use BlockWithParent in SyncTarget::Gap (#12514)
  • fmt(primitives): group pub use transaction (#12561)
  • primitives: rm alloy HOLESKY_GENESIS_HASH reexport (#12562)
  • primitive-traits: simplify SealedHeader::default (#12563)
  • fix(rpc): remove reference to preimage bool in debug_executionWitness (#12559)
  • refactor: don't reference StaticFileProvider in static_file::Segment (#12558)
  • refactor: use DBProvider in LatestStateProvider (#12557)
  • feat: impl block for sealedblock (#12555)
  • refactor: use DBProvider in HistoricalStateProvider (#12556)
  • chore: move gas_spent_by_transactions to traits (#12541)
  • chore: use crates directly in eth-wire (#12554)
  • chore: remove constants reexport (#12549)
  • chore: replace reth-chainspec dep with alloy chains (#12550)
  • chore(sdk): make BlockBatchRecord generic over receipt (#12449)
  • chore(sdk): Add trait bound Compact on <T as FullTransaction>::Type (#12534)
  • chore: rm reth testing utils dep from reth-primitives-traits (#12542)
  • chore: add missing debugs for pool types (#12546)
  • feat: relax BodyStage bounds (#12539)
  • Documentation Improvements: Grammar Corrections and Clarity Enhancements (#12545)
  • feat: move body writing to BlockWriter trait (#12538)
  • introduce standalone estimate gas type (#12344)
  • feat: display warning for op-mainnet launch without pre-Bedrock state (#11765)
  • tx-pool: add PoolUpdateKind for CanonicalStateUpdate (#12525)
  • fix: typos in documentation files (#12528)
  • tx-pool: rm useless allow deprecated (#12526)
  • feat: add simple kurtosis test for OP stack (#12506)
  • fix: consume all payload variants (#12520)
  • chore: simplify import path (#12523)
  • chore(utils): Util function for headers request (#12501)
  • primitives: rm alloy Header reexport (#12515)
  • chore: rm cfg imports (#12518)
  • chore(sdk): improve usability tx primitive traits (#12437)
  • primitives: use SealedHeader::seal (#12507)
  • chore: remove unused trait bound for evmenv (#12505)
  • chore(dep): bump alloy-trie (#12511)
  • chore: reorder validation items (#12503)
  • feat: add support for eth_signTransaction (#12500)
  • chore: use let some notation (#12494)
  • chore: only issue single header request (#12496)
  • chore: rm unused error variants (#12499)
  • chore: add SealedHeader::seal (#12497)
  • chore: rm unhinged attributes ordering (#12498)
  • chore: rm direct reth-provider dep (#12492)
  • Move CanonChainTracker to storage-api (#12491)
  • chore: import static file types directly (#12490)
  • chore: bump alloy 064 (#12488)
  • primitives: rm alloy Withdrawal reexport (#12487)
  • chore: introduce tuple type for pruned info (#12484)
  • fix: deposit tx gasPrice must be 0 (#12486)
  • feat(rpc): add compression to JSON-RPC (#12352)
  • chore: MoveStatsReader trait to storage-api and reexport it from old provider crate (#12485)
  • chore: Update Holocene timestamp for Sepolia (#12479)
  • chore: move standalone types to types crate (#12483)
  • feat: make more network components generic over primitives (#12481)
  • chore: Move HistoryWriter trait to storage-api and reexport it from old provider crate (#12480)
  • chore: add DUPSORT trait const (#12477)
  • chore: only fetch deposit info for deposit tx (#12474)
  • feat: add ovm BlockFileCodec (#12247)
  • feat: make downloaders and clients generic over block parts (#12469)
  • chore(deps): Update op-alloy to 0.6.4 in manifest (#12472)
  • chore(deps): bump alloy to 0.6.3 (#12468)
  • make PayloadStore operate on PayloadBuilder (#12460)
  • chore: remove unessarcy clone (#12463)
  • test(trie): add ParallelProof unit test (#12413)
  • chore(sdk): add NodePrimitives::TxType (#12332)
  • chore(sdk): Add InMemorySize as super trait of data primitive traits (#12465)
  • chore(sdk): make ExecutionOutcome generic over receipt (#12448)
  • use result for TransactionCompact::fill. (#12170)
  • chore: move trie functions to alloy (#12438)
  • chore: move (Full)NodePrimitives to reth-primitive-traits (#12461)
  • feat(op): define OpTxType (#12443)
  • chore: remove unnecessary clone (#12455)
  • chore(reth_primitives): Use trait for size methods in primitive types (#12201)
  • feat: make Consensus trait generic over block parts (#12451)
  • chore(sdk): define new BlockHeader trait (#12452)
  • feat(spec): Holocene activation time for {OP/Base} Sepolia (#12453)
  • chore(sdk): make Receipts generic over receipt (#12447)
  • [refactor] move new_payload_v4 into EngineAPI (#12445)
  • chore(sdk): impl Receipt for reth_primitives::Receipt (#12446)
  • [refactor] move new_payload_v3 into EngineAPI (#12442)
  • chore: move new_payload_v1 into type EngineAPI (#12430)
  • chore: move new_payload_v2 into type EngineAPI (#12431)
  • chore(sdk): define helper trait FullNodePrimitives (#12331)
  • Move payload_attributes function to trait (#12427)
  • renamed OptimismHardforks to OpHardforks (#12441)
  • chore(trie): rename reth-trie-parallel modules (#12444)
  • feat: NetworkPrimitives (#12435)
  • chore: fix deny (#12439)
  • chore(sdk): impl SignedTransaction for TransactionSigned (#12187)
  • chore(deps): weekly cargo update (#12433)
  • chore(sdk): auto trait bounds NodePrimitives (#12398)
  • refactor: remove trait bound on TxType (#12379)
  • chore: add PayloadBuilder to RpcNodeCore (#12428)
  • chore: add Sync to PayloadBuilder (#12425)
  • primitives: rm alloy Withdrawals reexport (#12421)
  • chore: restrict payload builder error type (#12423)
  • chore(sdk): payload builder AT on NodeComponents and FullNodeComponents (#11529)
  • chore(sdk): Add NodePrimitives::Transaction and NodePrimitives::SignedTx (#12330)
  • chore: rm unused file (#12420)
  • primitiv...
Read more

Reth v1.1.1

05 Nov 17:18
15c230b
Compare
Choose a tag to compare

image

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 to revm/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 in TransportRpcModules (#12239)
  • revm: add Database Either helper type (#12240)
  • refactor(revm): simplify Database impl for StateProviderDatabase (#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 on DatabaseProvider 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 and ForkchoiceStateHash (#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 with self 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 to LoadReceipt (#12149)
  • chore(rpc): remove redundant LoadFee::cache (#12146)
  • chore(rpc): relax FullNodeComponents trait bound on OpEthApi to RpcNodeCore (#12142)
  • chore(rpc): inline trait methods of RpcNodeCore impl (#12144)
  • chore(rpc): define trait RpcNodeCoreExt and replace LoadBlock::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 to LoadPendingBlock (#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 (#...
Read more

Reth v1.1.0

11 Oct 01:10
1ba631b
Compare
Choose a tag to compare

image

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:
Screenshot 2024-10-10 at 8 44 37 PM

And here is the engine_forkchoiceUpdated latency with the new engine:
Screenshot 2024-10-10 at 8 43 03 PM

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:

  • fix: acquire permit first (#11537)
  • fix: in-memory trie updates pruning (#11580)

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 as BlockId on eth_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 on full_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 fetching debug_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 and Decodable2718 for PooledTransactionsElement (#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 to BlockchainProvider2 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...
Read more

Reth v1.0.8

03 Oct 19:47
d72e438
Compare
Choose a tag to compare

image

Summary

This release contains performance improvements and bug fixes:

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

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

Update Priority

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

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

See Update Priorities for more information about this table.

All Changes

  • fix: windows build (#11465)
  • Map TransferKind::EofCreate => OperationType::OpEofCreate (#11090)
  • chore(provider): clone after filtering on sealed_headers_while (#11459)
  • fix: use correct rpc errors (#11463)
  • feat(grafana): ExEx WAL (#11461)
  • fix: ensure the request's gas limit does not exceed the target gas limit (#11462)
  • feat(rpc): Add codes in execution witness return (#11443)
  • chore(provider): use block_ref instead on BlockState (#11458)
  • chore: release 1.0.8 (#11457)
  • feat: add metrics for failed deliveries (#11456)
  • chore(provider): find last_database_block_number with BlockState anchor instead (#11455)
  • chore(provider): use get_in_memory_or_storage_by_block on fn block_body_indices (#11452)
  • chore(exex): adjust WAL gauge metric names (#11454)
  • chore(provider): use get_in_memory_or_storage on transactions_by_block_range (#11453)
  • feat: impl payload attributes builder (#11336)
  • fix(exex): limit the duration of a backfill job to 30 seconds (#11450)
  • chore: replace Compact with bincode on ETL usage of SealedHeader (#11442)
  • fix(exex): WAL size metric (#11448)
  • primitives: remove optimism re-export in reth-primitives (#11438)
  • fix: env tempdir failure on WAL creation (#11446)
  • docs: fix wrong method name (#11441)
  • chore: make clippy happy (#11439)
  • feat: add get_in_memory_or_storage_by_tx_range (#11414)
  • fix: reset pruned sender numbers on stage drop (#11150)
  • feat(exex): commit notifications to WAL before sending to ExExes (#11354)
  • Fix: Reorder all serde_bincode_compat module definitions (#11435)
  • feat(exex): WAL metrics (#11431)
  • chore(provider): dont recover sender from BlockState transaction on transaction_sender (#11424)
  • chore: remove temporary allow attribute (#11428)
  • chore(sdk): define traits for primitives Block and BlockBody (#11411)
  • chore(provider): rename to get_in_memory_or_storage_by_block_range_while (#11421)
  • fix(exex): do not finalize WAL with a block higher than finalized header (#11420)
  • feat(chain-state): notify about new safe/finalized only if modified (#11383)
  • fix: apply 4788 system call in tracing (#11417)
  • feat(stages): fail Execution if post execute commit input isn't consumed (#11418)
  • feat(trie): bincode compatibility for trie updates (#11409)
  • chore: rm todos (#11400)
  • fix(exex): check exex head against node head to determine canonical (#11410)
  • fix(stages): call post execute/unwind commit hooks (#11413)
  • dev: swap_remove (#11405)
  • feat: add get_in_memory_or_storage_by_block to BlockchainProvider2 (#11384)
  • chore: rm crate reth-rpc-types (#11341)
  • feat(net): Perform graceful network shutdown before dropping network in NetworkManager (#11404)
  • chore: make clippy happy (#11408)
  • chore: add metric and trace for already executed blocks (#11406)
  • fix: fetch header by hash (#11407)
  •  ci: pin clippy to working version (#11401)
    
  • chore: rename default chainspec parser (#11398)
  • chore(Makefile): separate features by spaces only (#11393)
  • fix(engine): is_fork header traversal (#11368)
  • feat(primitives): bincode compatibility for EIP-7702 transaction (#11394)
  • fix: add tracing features to op binary (#11395)
  • fix(tree): use in-memory data first to query total difficulty (#11382)
  • fix: use pending state if available (#11391)
  • chore(db): simplify Compact for Vec (#11361)
  • fix(provider): handle race on fn transaction_id (#11380)
  • chore: Remove redundant impl NetworkManager (#11390)
  • chore(deps): bump some breaking deps (#11388)
  • chore: limit tracing logs to debug by default (#11377)
  • fix(exex): set next file ID when creating WAL storage (#11372)
  • feat(trie): deserialize trie updates with serde as hex (#11369)
  • perf(engine): avoid unnecessary arc clones on new head (#11381)
  • feat: add ReputationChangeWeights::zero (#11375)
  • test(engine): improve deep reorg test (#11378)
  • chore: propagate std feature to alloy-trie (#11371)
  • dev: block_with_senders on BlockState (#11363)
  • fix(evm): propagate optimism and test features correctly (#11373)
  • fix(provider): use canonical_chain on range lookups (#11332)
  • docs: misc in memory docs (#11365)
  • chore: log num hash (#11364)
  • ci(hive): update expected rpc-compat failures (#11367)
  • feat(exex): use rmp-serde for WAL storage (#11353)
  • fix: never ban trusted peers (#11254)
  • chore(cli): Add warning for misconfigured HTTP API flags (#11360)
  • fix(hooks): sort reverts in BundleState before comparison (#11358)
  • perf(db): use Into to encode StoredNibbles (#11350)
  • feat(exex, primitives): serde bincode compatibility (#11331)
  • fix(provider): replace block_state_by_tx_id with get_in_memory_or_storage_by_tx_id (#11340)
  • feat: wire SystemCaller (#11321)
  • fix(providers): collect BlockState before constructing DB provider (#11338)
  • impl Encodable2718, Decodable2718 for TransactionSigned (#11218)
  • fix: sequencer client must be arced (#11337)
  • fix(libmdbx): Some options can only be set after mdbx_env_open (#11328)
  • chore: alloy 0.4 (#11334)
  • deps: remove reth-metrics-derive for metrics-derive (#11335)
  • feat(exex): finalize WAL below the given block (#11324)
  • chore(builder): reorder revm State import (#11316)
  • feat: add SystemCaller helper type (#11068)
  • fix(trie): witness empty root node (#10972)
  • feat(exex): finalize WAL with the lowest finished height (#11323)
  • primitives: rm more alloy_primitives reexports (#11325)
  • primitives: rm more alloy_primitives reexports (#11255)
  • use core::error::Error (#11317)
  • chore: update default payload builder logs (#11315)
  • feat(exex): finalize WAL only when all ExExes are on the canonical chain (#11289)
  • chore(deps): weekly cargo update (#11319)
  • Remove unused dependencies (#11320)
  • chore: rm ToRpcError usage from engine crate (#11311)
  • chore: use core::error (#11313)
  • chore: relax trait bounds on transact fns (#11310)
  • feat: mev_simBundle (#11252)
  • feat: use OpChainSpec in OptimismNode and its components (#11304)
  • fix: improve ecies error fatal variants (#11303)
  • chore(op): unify crate name reth-optimism-* (#11223)
  • chore(blockchain-tree): replace reth-primitives with alloy-eips (#11276)
  • chore: remove generics from Decode and Decompress (#11295)
  • perf(db): cache ProcessUID::own in memory (#11302)
  • chore(deps): bump tracy (#11305)
  • test(rpc): filter test is taking too long (#11288)
  • perf(trie): use unstable sort when sorting for computing roots (#11301)
  • chore: rename param (#11287)
  • chore(exex):move maximum ExExManager capacity to a constant (#11293)
  • fix(reth-ipc): pass through extensions from request (#11300)
  • chore(rpc): use alloy's Keccak256 hasher instead of manually concatenating hash bytes (#11298)
  • perf(db): use encode_to in Scale implementations (#11297)
  • perf: improve IntegerList API to avoid allocations (#11292)
  • feat(trie): extract StorageProof (#11269)
  • feat(exex): send canonical notifications when head is provided (#11280)
  • perf(db): use smallvec for mdbx table names (#11291)
  • optimism: fix 'expecte' (#11290)
  • chore(exex-eips): replace reth-primitives with alloy-eips (#11275)
  • feat: ExExEvent::FinishedHeight takes BlockNumHash instead (#11278)
  • perf: remove sidecar clone if no listeners (#11285)
  • chore: add traces for blob sidecar ops (#11284)
  • fix: make canonical_chain atomic and canonical (#11283)
  • chore: use Arc over Box (#11281)
  • docs: clarify block order (#11279)
  • feat: canonical state for local engine (#11245)
  • chore(trie): early return on empty state (#11271)
  • feat(exex): WAL handle (#11266)
  • feat(exex): add parent hash to WAL block cache, index by hashes (#11263)
  • feat(exex): write notification files atomically (#11264)
  • chore(exex): remove unneeded code (#11267)
  • deps: [email protected] (#11260)
  • feat(tree): introduce reorg count metrics in new engine (#11226)
  • primitives: rm more alloy_primitives reexports (#11250)
  • move op storage tests into new crate reth-optimism-storage (#11233)
  • feat: tx and receipt compression utils for no-std config (#11112)
  • fix(cli): fix ImportReceiptsOp (#11216)
  • chore: update revm and alloy primitives (#11235)
  • chore:include payload id in trace (#11249)
  • feat: make NetworkConfigBuilder independent of concrete ChainSpec (#11176)
  • primitives: rm more alloy_primitives reexports (#11222)
  • primitives: rm H* deprecated types (#11246)
  • chore(trie): replace ParallelStateRoot with AsyncStateRoot (#11213)
  • refactor: extract optimism receipts hashing logic to reth-optimism-consensus (#11230)
  • ci: pin clippy to working version (#11237)
  • chore(evm): replace reth-primitives with alloy (#11232)
  • reth-codec: remove unused derives from alloy compat types (#11231)
  • chore(t...
Read more

Reth v1.0.7

19 Sep 20:17
75b7172
Compare
Choose a tag to compare

image

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 to StaticFileProvider (#11043)
  • chore: use alloy-chains is_ethereum (#11049)
  • feat: make NodeConfig generic over ChainSpec (#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 concrete DatabaseProvider (#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 default fill_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 in ConfigureEvmEnv (#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 to 0.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 of DB on init_genesis (#10937)
  • fix(ci): use taiki-e/install-action instead for cargo-udeps (#10938)
  • feat: use DbProvider on UnifiedStorageWriter (#10933)
  • ci: dev udeps (#10855)
  • trie: replace reth_primitives with alloy_primitives (#10931)
  • refactor: make reth-prune independent of concrete DatabaseProvider (#10921)
  • feat(engine): compare invalid block witness against a healthy node (#10844)
  • feat(trie): integrate TrieInput into ParallelStateRoot & AsyncStateRoot (#10930)
  • feat(trie): expose multiproof via StateProofProvider (#10915)
  • feat(trie): integrate TrieInput into StateProofProvider 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 set SequencerClient (#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 from StaticFileProviderRW (#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...
Read more

Reth v1.0.6

29 Aug 19:44
c228fe1
Compare
Choose a tag to compare

image

Summary

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

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

The main bugfixes are:

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

New dev changes and features include:

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

Breaking Changes

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

Update Priority

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

User Class Priority
Payload Builders medium
Non-Payload Builders medium

See Update Priorities for more information about this table.

All Changes

  • fix(op): empty receipts for block not counted by file client (#10581)
  • fix: op fee fields (#10615)
  • release: v1.0.6 (#10609)
  • chore: bump op-alloy to latest (#10607)
  • test: TransactionsProvider implementation of BlockchainProvider2<DB> (#10594)
  • tree: bump persistence threshold and memory buffer target (#10608)
  • chore(deps): bump alloy (#10537)
  • chore: re-export reth_chainspec in reth (#10604)
  • chore(tree): make on_engine_message more concise (#10605)
  • fix(hive): remove eth_createAccessList tests from expected failures (#10601)
  • chore(trie): clean up state root methods (#10598)
  • Pending receipt (#10597)
  • chore(trie): StorageRootProvider (#10592)
  • ethereum: add unit tests for consensus validation (#10578)
  • chore(trie): remove plain state proof variant (#10593)
  • refactor: split validate_block_pre_execution into hardfork specific functions (#10576)
  • fix: pop consolidation requests in payload builder (#10591)
  • feat(debug): engine reorg util depth (#10575)
  • chore: bump discv5 (#7981)
  • docs(book): update observability.md (#10587)
  • fix(op): receipts import, fix chunked read of file with optional block data (#10577)
  • chore(tree): make remove_before bound inclusive (#10559)
  • chore: add tempfile to dev dep (#10569)
  • refactor(provider): random_block and random_block_range functions (#10563)
  • chore(op): Add OpChainSpec (#10516)
  • chore: sort lints (#10565)
  • test: BlockReader implementation of BlockchainProvider2<DB> (#10557)
  • clippy: add needless_for_each clippy lint (#10555)
  • docs(reth-engine-tree): slightly improve inline docs (#10561)
  • clippy: add manual_is_variant_and clippy lint (#10556)
  • chore: delay initial filter tick (#10564)
  • feat: Properly bubble up InsertBlockFatalError (#10276)
  • fix(engine): memory overlay hashed storage root (#10543)
  • remove transaction forwarder trait (#9678)
  • chore(chainspec): move op stack chain specs to reth-optimism-chainspec (#10485)
  • chore: export RethApiClient trait (#10545)
  • feat(rpc): implement eth_getTransactionBySenderAndNonce (#10540)
  • chore: remove usage of RichBlock (#10538)
  • perf(engine): lazy load overlay trie state (#10541)
  • dev(pool): trait object safe BestTransactions (#10478)
  • perf(trie): remove some clones (#10406)
  • feat: use system call to update blockhashes (#10535)
  • clippy: add implicit_clone clippy lint (#10529)
  • clippy: add if_not_else clippy lint (#10524)
  • Feat: exact gasUsed for eth_createAccessList (#10422)
  • storage: add test_block_body_indices for block_body_indices (#10429)
  • clippy: add unnested_or_patterns clippy lint (#10526)
  • clippy: add redundant_else clippy lint (#10525)
  • chore: rm unused op rpc types (#10534)
  • clippy: add cloned_instead_of_copied clippy lint (#10530)
  • feat: impl From alloy-consensus::TxType for reth_primitives::TxType (#10523)
  • clippy: add option_as_ref_cloned clippy lint (#10528)
  • chore(reth-codec): remove unused code (#10531)
  • chore(reth-codec): use constant (#10533)
  • fix(trie): consider all intermediate nodes invalidated for wiped storage (#10476)
  • chore: fix clippy (#10532)
  • feat: add impl From BlockExecutionOutput for ExecutionOutcome (#10507)
  • tx-pool: add try_from_consensus for PoolTransaction (#10504)
  • chore(deps): weekly cargo update (#10506)
  • primitives: rm IntoRecoveredTransaction for TransactionSignedEcRecovered (#10505)
  • fix: transaction_by_hash_with_meta implementation of CanonicalInMemoryState (#10501)
  • docs: fix git clone urls (#10490)
  • fix: only set isSystemtx if true (#10496)
  • refactor(rpc): Use TransactionInfo instead of individual fields (#10500)
  • fix: set gas price for op deposit (#10495)
  • tx-pool: rm into tx constraint for PoolTransaction (#10057)
  • feat(rpc): Add method removal functionality for RPC transports (#10497)
  • refactor: mv ChangedAccount (#10472)
  • chore(txpool): rename the function of tx_by_sender_and_nonce (#10473)
  • docs: fix broken link in review.md (#10480)
  • chore: remove clippy::missing_debug_implementations (#10491)
  • chore(cli): rename optimism args test (#10492)
  • rpc: remove special module handling for eth_callBundle (#10486)
  • feat : add the ability to connect to a peer (#10028)
  • Add emhane as code owner for optimism crates (#10488)
  • Add emhane as code owner for reth-chainspec (#10487)
  • refactor: replace ForkChoiceStream type with generic stream type (#10458)
  • fix(provider): check list size before calling range.nth (#10460)
  • fix(provider): fix subtract overflow on block_state_by_tx_id (#10467)
  • fix(exex): instrument ExEx::launch with the span (#10481)
  • Remove redundant EthChainSpec::Hardfork (#10470)
  • fix(trie): take earliest value in HashedStorage::from_reverts (#10475)
  • perf(rpc): avoid redundant tx decoding on witness generation (#10474)
  • chore(trie): remove PrefixSetMut::contains (#10466)
  • fix(trie): collect revert state for historical storage root (#10465)
  • refactor: use EIP TX_TYPE_ID (#10471)
  • Add tests for withdrawals provider (#10428)
  • chore(tree): remove BlockAttachment usage (#10453)
  • feat(trie): hashed state from cache (#10455)
  • docs(ci): expand introduction to CI workflows (#10291)
  • fix: FetchFullBlockRangeFuture doesn't return on bad header (#10449)
  • chore(rpc): config network specific transaction type in node builder (#10417)
  • test: BlockIdReader implementation of BlockchainProvider2<DB> (#10362)
  • Test CanonStateSubscriptions for BlockchainProvider2 (#10361)
  • chore(net): expose max concurrent GetPooledTransactions reqs in cli (#10358)
  • feat: ChainSpec associated type (#10292)
  • test: CanonChainTracker implementation for BlockchainProvider2 (#10378)
  • feat: make js-feature non default (#10447)
  • chore: no feature gated imports (#10440)
  • Make js-feature non default (#10445)
  • consensus: fix build_header_template output (#10444)
  • exex: add more robust tests for finished_height update (#10439)
  • consensus: refactor build_header_template (#10442)
  • fix(trie): filter out removed nodes on extend (#10433)
  • evm: wider use of RethEvmBuilder (#9944)
  • fix: range update (#10424)
  • chore: replace RichBlock by Block (#10399)
  • feat: add method in txpool for handling pending transactions (#10303)
  • chore: Update granite mainnet time (#10430)
  • fix link typo on BlockState (#10431)
  • test(provider): RequestsProvider of BlockchainProvider2 (#10356)
  • chore: make consensus/debug-client helpers public (#10423)
  • test: add gh workflow to run hive tests with experimental flag (#10355)
  • test(provider): ChangeSetReader of BlockchainProvider2 (#10415)
  • fix(rpc): apply blockhashes update in witness RPC (#10419)
  • fix(rpc/otterscan): set fullblock.tx_count with block's (#10421)
  • test(trie): fuzz in-memory storage nodes (#10413)
  • test: ReceiptProviderIdExt (#10420)
  • fix: block_range (#10418)
  • chore(lint): allow needless update for tests (#10414)
  • fix(trie): skip cleared storage database lookup on InMemoryStorageTrieCursor::next (#10412)
  • fix(trie): clear all deleted storage nodes on extend (#10411)
  • test: BlockReader implementation of BlockchainProvider2<DB> (#10370)
  • Use more appropriate names for forkchoice subscriptions (#10401)
  • fix: getAccount (#10402)
  • fix(trie): filter in-memory storage node on seek_exact (#10410)
  • chain...
Read more

Reth v1.0.5

12 Aug 15:13
603e39a
Compare
Choose a tag to compare

image

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 and evm_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 for CanonStateNotification (#10195)
  • reth-eth-types: Do not import JsInspectorError 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 for reth-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 for StaticFileWriters on StaticFileProvider (#10089)
  • test: live sync test to check make canonical (#10131)
  • Feature gate jsonrpsee related crates and check features powerset for reth-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

Read more

Reth v1.0.4

06 Aug 19:01
e24e4c7
Compare
Choose a tag to compare

image

Summary

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 for AccountProof (#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 into reth-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 module reth_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 to reth-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 to reth-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 for secp256k1 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 for TransactionOrigin (#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 and reth-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 to StorageWriter (#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 to StorageWriter (#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 and alloc::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 from increment_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 to reth-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 for DatabaseError type (#9951)
  • feat(provider): more logs for static files (#9949)
  • feat: set pending block in canonical memory (#9950)
  • chore: remove write_trie_updates from StorageWriter (#9947)
  • fix: share DatabaseProviderRW on PersistenceAction::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 from StorageWriter to trait StateChangeWriter (#9927)
  • feat: support DNS in reth.toml for trusted_nodes (#9864)
  • test: add TestBlockBuilder (#9925)
  • chore: use StateRootProvider::hashed_state_root_w...
Read more