Skip to content

Releases: paradigmxyz/reth

Reth v0.1.0-alpha.10

26 Sep 20:08
1b16d80
Compare
Choose a tag to compare

image

Summary

This is a fast-follow to the Alpha.9 release which includes the updated Holesky Genesis file for the upcoming testnet relaunch, as well as updates the Beacon Roots contract address to 000F3df6D732807Ef1319fB7B8bB8522d0Beac02.

Update Priority

User Class Priority
Payload Builders Low unless running Holesky
Non-Payload Builders Low unless running Holesky

See Update Priorities for more information about this table.

All Changes

  • release: v0.1.0-alpha.10 (#4781)
  • fix: ensure no blob transactions in payloads pre-cancun (#4779)
  • chore(tree, engine, prune, stages, storage): improve logs (#4790)
  • chore(primitives): move KeccakHasher behind test-utils feature flag (#4804)
  • test: replace unused_tcp_udp with port 0 (#4805)
  • fix typo as_eip2930 (#4801)
  • chore: unhide clippy config file (#4794)
  • chore: make proto module pub (#4788)
  • chore: add missing builder fn for outbound dials (#4786)
  • chore: lower cargo-deny license confidence (#4793)
  • chore(primitives): root calculation using HashBuilder (#4780)
  • fix: pass feature flag to iai bench (#4791)
  • feat(network): implement PropagateHashTo helper in TransactionsCommand (#4713)
  • test: flaky geth test (#4800)
  • chore(dep): reth db workspace (#4782)
  • chore: timestamp fork activation semantics (#4785)
  • chore(cancun): beacon root address update (#4784)
  • test: disable discovery for test_listener_addr_in_use (#4774)
  • feat: update genesis for holesky (#4773)
  • chore: add missing builder functions (#4770)
  • fix generate-jwt.sh for zsh users (#4769)
  • feat(docs): mention brew tap in release.md (#4768)
  • fix(book): default identity (#4767)
  • chore: add and fix more lints, improve docs (#4765)

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: A3AE 097C 8909 3A12 4049 DF1F 5391 A3C4 1005 30B4

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

Reth v0.1.0-alpha.9

25 Sep 16:58
b701cbc
Compare
Choose a tag to compare

image

Summary

  • Integration with new REVM State API (#3512).

Important

REVM State integration also mitigates a bug that caused multiple node failures after encountering a selfdestruct in a reorg. Update is highly recommended.

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

  • release: v0.1.0-alpha.9 (#4766)
  • perf: remove unnecessary state clone (#4763)
  • chore: pin breaking icu releases (#4760)
  • Callrequest fee validation (#4685)
  • fix: add hive job experimental flag again (#4756)
  • fix: block overrides inconsistencies (#4746)
  • Example: Manual P2P (#4736)
  • (chore) fix reth book dockercmd with correct datadir path for volume (#4753)
  • fix: export self::zstd (#4747)
  • feat(txpool) add blob transaction sidecar listeners (#4722)
  • fix(hive): jobs need experimental flag (#4744)
  • perf/refactor: use tokio_util::sync::PollSender for ActiveSession -> SessionManager messages (#4603)
  • support EIP-4844 transaction when building pending block (#4688)
  • fix: allow unknown fields in ExecutionPayloadV1 (#4733)
  • fix: add slash to match only fork suites (#4732)
  • feat(CI): add timeout to CI (#4728)
  • chore: fix flaky test (#4729)
  • feat: add merge and pre-merge pyspec jobs (#4726)
  • feat(interfaces): better documentation for ConsensusError (#4725)
  • chore: bump revm (#4723)
  • feat: add nippy-jar format for snapshots (#4512)
  • remove deprecated log line (#4719)
  • fix: pin revm until we move to crates deps again (#4707)
  • feat: enable EIP-7516 hive tests (#4717)
  • feat: add updated beacon root contract address (#4665)
  • fix(tree): retain max(additional, max_reorg_depth) block hashes (#4612)
  • (chore) Add enode address on startup (#4712)
  • fix: make into_transaction fallible (#4710)
  • (chore) surface block hash for MissingTotalDifficulty error (#4711)
  • feat(interfaces): better doc for BlockValidationError and BlockExecutionError (#4708)
  • fix: bump revm with breaking change (#4706)
  • refactor(engine): update sync state for r/w hooks (#4687)
  • chore: fix non_snake_case rust-analyzer warning (#4689)
  • feat(interfaces): move BlockHashNotFoundInChain to BlockchainTreeError (#4697)
  • fix: add excess_blob_gas for first cancun block (#4700)
  • chore: simplify get precompiles (#4681)
  • fix: add CANCUN to revm_spec_by_timestamp_after_merge (#4699)
  • feat: add enough blob fee tx state (#4680)
  • feat(book): update CLI section (#4694)
  • feat(interfaces): better document BlockchainTreeError (#4693)
  • chore: update revm and map new errors to rpc (#4696)
  • feat(primitives): add calculate_blob_gas_used function in SealedBlock (#4692)
  • refactor(interfaces): Result -> RethResult, Error -> RethError (#4695)
  • refactor(engine): always connect buffered blocks on r/w hook finish (#4657)
  • feat(error): revamp make_canonical error (#3899)
  • feat: validate blob_gas_used in header (#4676)
  • feat: add pyspec cancun tests to hive workflow (#4677)
  • chore: shorten info interval (#4666)
  • add TransactionsProvider implementation for MockEthProvider (#4656)
  • feat(net): add helper functions to TransactionsHandle implementation (#4668)
  • fix: convert SpecId::Cancun to cancun precompile id (#4675)
  • fix: set block env excess blob gas (#4672)
  • fix: deny unknown payload fields (#4667)
  • feat: Duplicate Withdrawal and move try from impls to rpc-compat (#4186)
  • refactor(engine, tree): connect buffered blocks on pruner finish (#4613)
  • fix: clear buffered blocks on sync (#4658)
  • feat: add pre-block EIP-4788 beacon root contract call (#4457)
  • perf: optimize engine poll loop (#4655)
  • refactor: remove duplicate RPC namespaces from arguments (#4418)
  • fix: typos (#4648)
  • feat(rpc): split test_fee_history in multiple tests (#4646)
  • feat: add max logs per response cli arg (#4644)
  • refactor(bin): CL events conditions (#4643)
  • feat(engine): hooks (#4582)
  • feat(prune): add pruner log with INFO level (#4573)
  • feat(bin): log prune config on startup (#4641)
  • chore: fix doc lints (#4639)
  • fix: use proper type for engine_newPayloadV2 (#4630)
  • refactor: use revm blob fee calc (#4637)
  • chore: get rid of unreachable (#4638)
  • perf(rpc): fetch range of blocks and return empty if unchanged (#4592)
  • feat: enable size-limited file logs by default (#4192)
  • fix: fill missing eip4844 settings (#4633)
  • test: add assert_invariants (#4623)
  • chore: demote session established log level (#4564)
  • 4844 blob txs (#4631)
  • chore(deps): weekly cargo update (#4627)
  • fix: apply FCU on invalid PayloadAttributes (#4591)
  • chore(deps): bump jsonrpsee 0.20.1 (#4624)
  • feat(revm): Integrate State (#3512)
  • feat(cli): allow multiple trusted peers (#4619)
  • fix: return UnsupportedFork on V2 endpoints (#4593)
  • fix: holesky genesis (#4616)
  • Make tx pool mock public (#4611)
  • feat: add blob transactions subpool (#4608)
  • test: add blob exclusive test e2e (#4606)
  • fix(txpool): pending subpool basefee update (#4610)
  • fix(ci): valgrind installation (#4605)
  • chore(ci): run check and clippy on tests and benches too (#4587)
  • test(txpool): add replacement test (#4596)
  • fix: remove popped tx from total set (#4599)
  • chore: new clippy lints (#4598)
  • chore: new lint name (#4597)
  • fix: use cached encoded length (#4577)
  • fix: limit payload bodies range by best block (#4584)
  • feat: add missing caps (#4581)
  • chore(ci): different clippy action (#4579)
  • chore(clippy): make clippy happy (#4578)
  • chore: silence clippy clone warning (#4574)
  • fix: ensure final message is always delivered (#4569)
  • fix: ensure sender transaction types dont conflict (#4567)
  • docs: add note about eip-4844 broadcast (#4570)
  • Update network.rs -- typo fix (#4545)
  • fix: enforce unsupported fork rules on get_payload_v3 (#4562)
  • chore: add missing is empty check (#4565)
  • fix: update Status ForkId on new head (#4560)
  • perf: limit number of new batch of dials (#4530)
  • fix: set trace results root trace's gas used to execution result gas (#4556)
  • feat: add blob tx replacement overdraft check (#4534)
  • Add inflight transaction requests metric to dashboard (#4554)
  • chore: fix warnings (#4553)
  • feat: enforce replacements dont conflict (#4539)
  • chore: update dependencies with breaking changes (#4555)
  • chore: pin git dependencies to specific revs (#4552)
  • chore(book): fix imposter USDC address (#4549)
  • test: enable geth tests again (#4544)
  • feat: add metrics for inflight get pooled tx requests (#4547)
  • feat: add discovery port function (#4543)
  • chore(deps): weekly cargo update (#4542)
  • chore: bump sale period to 21 days (#4526)
  • fix: set trace results root trace's gas used to execution results gas (#4506)
  • fix: add missing holesky variant (#4541)
  • chore: rm redundant clone (#4540)
  • fix: wake future after buffering pong (#4536)
  • feat: holesky support (#4359)
  • docs: add full node size on installation recs
  • docs: bump latitude discount code
  • perf: increase refill slots interval (#4528)
  • chore: change best unconnected condition (#4527)
  • dep: ethers@2.0.10 (#4535)
  • test: add backward compat toml test (#4531)
  • chore: rm todo about polling jobs (#4532)
  • Apply foundry improvements to reth (#4518)
  • #2511: extended reth-rpc example with custom rpc ext (#4508)
  • fix: use max_fee_per_blob_gas in blob gas cost calc (#4521)
  • fix: enable cancun in transaction validator if active at genesis (#4522)
  • fix: use blob_fee to calculate blob_gas_used in receipts (#4523)
  • fix: check for parent root before cancun (#4524)
  • fix: ensure only canonical state is returned if requested by number/hash (#4517)
  • feat: add base fee and blob fields to genesis (#4516)
  • chore(ci): cargo check (#4511)
  • fix(tasks): use crate::metrics to avoid ambiguity (#4509)
  • fix(primitives): set cancun header fields if active at genesis (#4500)
  • perf: small access list perf (#4505)
  • chore: add is_empty check before read lock (#4507)
  • fix: skip optional fields in parity trace (#4503)
  • fix: filter out pre-genesis timestamp forks (#4501)
  • chore: bump c-kzg and add serde feature (#4499)
  • chore: remove outdated TODOs (#4498)
  • feat: support blobs in eth_sendRawTransaction (#4495)
  • add metrics counter for finished spawned tasks (#4481)
  • fix(rpc-types): do not flatten in ExecutionPayloadV3 (#4492)
  • feat(engine): enable v3 endpoints (#4490)
  • fix(primitives): map cancun to timestamp fork (#4491)
  • feat: enforce no nonce gaps for eip-4844 (#4487)
  • feat: add blob costs to cost value (#4489)
  • feat(primitives): remove constraints on SenderRecovery pruning (#4488)
  • feat(storage, tree): respect Sender Recovery pruning in the blockchain tree (#4431)
  • feat: delete discarded blob txs from blob store (#4408)
  • perf: skip blobs if no blob space available (#4480)
  • feat: add get blobs exact (#4482)
  • feat(storage): better sender recovery if not found in database (#4471)
  • Remove redundant clones (#4485)
  • add semaphore to EthStateCacheService (#4477)
  • chore: add ca...
Read more

Reth v0.1.0-alpha.8

28 Aug 19:30
0f14ec4
Compare
Choose a tag to compare

Summary

This release introduces the support for full node, custom pruning modes, continued work on Cancun and improvements for Transaction Pool and RPC.

Full Node

To run Reth as a full node, you need to do a sync from scratch with --full CLI argument. As of August 28th 2023, full node requires 940GB of disk space and takes around 45-50 hours to sync, depending on hardware and bandwidth. Read more about using full node and pruning in the book and check out Grafana dashboard for our public full node.

Highlights

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

  • release: v0.1.0-alpha.8 (#4386)
  • feat(primitives): increase transaction senders pruning batch size (#4383)
  • ref(cli): remove duplicated clap arg (#4336)
  • feat(grafana): sort stages (#4373)
  • feat(book): add documentation for ports (#4370)
  • chore(stages): document index history stages pruning (#4379)
  • feat(reth): remove History variant in StageEnum (#4365)
  • feat(net): rm TODO for DEFAULT_DISCOVERY_PORT (#4366)
  • chore(deps): weekly cargo update (#4374)
  • dep: remove kzg patch (#4363)
  • chore(book): sort RPC methods in pruning chapter (#4361)
  • feat(book): rpc methods pruning dependencies (#4358)
  • feat(book): advise to tee the output of mdbx_chk (#4360)
  • chore: use DEFAULT_DISCOVERY_PORT constant (#4356)
  • feat: add validate-blob to extension trait (#4355)
  • chore: collect full discarded tx (#4353)
  • feat: add eth extension trait for EthValidator (#4343)
  • feat: remove finalized blobs (#4342)
  • feat(grafana): DB freelist chart (#4349)
  • docs: correct docker compose logs command (#4189)
  • fix: compare prev value against new value (#4347)
  • feat(book): node sizes (archive, full, pruned) (#4344)
  • feat(bin): db freelist metric (#4346)
  • chore: change field order (#4348)
  • chore: add TxEip4844::validate_blob (#4345)
  • feat(rpc): add missing DebugApi methods (#4321)
  • chore(deps): bump enr 0.9 (#4230)
  • feat(bin): unhide and enable full flag (#4327)
  • feat(book): basic pruning chapter (#4334)
  • feat(grafana): filter by instance, bump version (#4333)
  • feat(pruner, primitives): move prune batch sizes to ChainSpec (#4318)
  • feat(pruner): respect batch size per run (#4246)
  • feat: use get_pooled_transaction_elements in network manager (#4329)
  • fix: Update Return Type for eth_getFilterLogs function as per standard schema (#4323)
  • feat: make TransactionValidationTaskExecutor generic over V (#4331)
  • feat(book): [prune] config section (#4328)
  • fix(bin): make db metrics a gauge instead of counter (#4324)
  • chore(trie): proofs should be generic over hashed cursor factory (#4310)
  • feat: add shouldOverrideBuilder to ExecutionPayloadEnvelope (#4322)
  • chore: add crates/prune to CODEOWNERS (#4320)
  • feat: track active forks (#4315)
  • fix: apply state overrides once (#4313)
  • feat: add TransactionPool::get_pooled_transaction_elements (#4317)
  • feat(bin): expose db.table_entries metric (#4316)
  • docs: add --dev flag to book (#4307)
  • chore: kebab case --dev fields (#4314)
  • fix: add docs and serde attrs to ExecutionPayload v3 fields (#4302)
  • chore: bump rustls-webpki (#4311)
  • fix(pruner): history indices cursor.prev() emptiness check (#4301)
  • feat(bin): show db path when confirming the drop (#4309)
  • Docs: Add a guide on how to spin up a private Reth testnet using Kurtosis (#4304)
  • feat: add Validator::on_new_head_block (#4303)

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: A3AE 097C 8909 3A12 4049 DF1F 5391 A3C4 1005 30B4

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

Reth v0.1.0-alpha.7

21 Aug 18:36
34b68de
Compare
Choose a tag to compare

image

Summary

Regular maintenance release.

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

  • release: v0.1.0-alpha.7 (#4297)
  • fix: state overrides and call many args (#4298)
  • feat: support blob transactions in manager (#4294)
  • docs: typos & cleanup (#4296)
  • fix: use gas_used from execution result (#4293)
  • chore: add additional docs about root call gas limit (#4292)
  • feat: provide a way to opt out of pool updates (#4270)
  • feat: add blob store canon tracker (#4278)
  • feat: add additional conversion trait for pooled tx element (#4279)
  • feat: integrate kzg setting in validator (#4286)
  • chore: reorder receipt fields (#4291)
  • feat: add load_trusted_setup_from_bytes (#4290)
  • dep: move metrics to workspace (#4289)
  • chore: rename test mod to make clippy happy (#4285)
  • chore: simplify builder fn (#4284)
  • chore(deps): weekly cargo update (#4281)
  • dev: use U64 for transaction_index (#4261)
  • feat: integrate blobstore in validator (#4273)
  • feat: add TransactionPool blob getters (#4272)
  • feat: validate engine cancun fields based on method version (#4256)
  • feat: add recovered wrapper type and eth pool conversions (#4267)
  • feat: integrate blobstore in pool (#4266)
  • feat(pruner): prune receipts based on log emitters during live sync (#4140)
  • fix: record geth selfdestructs (#4264)
  • feat(trie): account proofs (#4249)
  • fix: prevent node info zero address (#4268)
  • chore: bump metrics (#4265)
  • feat(transaction-pool): make EthTransactionValidator generic over Validator (#4258)
  • debug_backtraceAt (#4232)
  • feat: add blob sidecar extraction to tx validation (#4254)
  • chore: rename transaction (#4252)
  • perf: remove clones in PooledTransaction encoding (#4251)
  • feat: add 4844 config and basic checks (#4245)
  • feat: add blob store service (#4191)
  • fix: broadcast promoted transactions (#4248)
  • feat(doc): enhance append_blocks_with_post_state doc (#4195)
  • feat: refactor PooledTransactionsElement into typed variants (#4241)
  • (fix): Impl. Lagged error in pool update channel (#4242)
  • fix: return None instead of BlockBodyIndicesNotFound in BlockReader (#4239)
  • fix: propagate promoted transactions (#4236)
  • feat: implement network encoding for blob transactions (#4172)
  • feat: support custom PoolTransaction errors (#4237)
  • perf: use futures unordered for active requests (#4231)
  • feat(pipeline): prune receipts based on log emitters (#4044)
  • chore(deps): bump boa + thiserror (#4234)
  • perf: create buffer once (#4226)
  • feat: track node record (#4224)
  • fix: track established bonds (#4229)
  • Move parking_lot dependency to workspace dep (#4228)
  • chore: move bitflags to workspace (#4220)
  • (fix)db commit on debug_traceCallMany (#4219)
  • feat: add TransactionSigned::recover_signers with the same order (#4120)
  • feat(db): add search to reth db list command (#4165)
  • fix(pruner): percentage progress (#4197)
  • chore: enforce recommended soft limit for get pooled requests (#4210)
  • chore: handle full peer request channel (#4211)
  • chore: rm some unused (#4208)
  • docs: update table layout (#4194)
  • Splitting Reth Node Command Ext (#4158)
  • perf: let sync status mirror FCU (#4203)
  • chore(txpool): bench requires arbitrary feature (#4204)
  • chore(clippy): make clippy happy (#4163)
  • fix: return engine on fatal error (#4184)
  • feat(doc): document ARM limitations (#4196)
  • feat: make build function configurable (#4193)
  • feat(interfaces): database write error details (#4190)
  • feat(payload): make the actual payload build function generic (#4153)
  • chore(tree): log error on unreachable (#4185)
  • chore: bump jsonrpsee 0.20 (#4181)
  • feat: download blocks in merkle debug script (#4137)
  • fix: restrict max active queries (#4178)
  • feat: add flag to CLI to disable colour coding of console output (#4033)
  • style: use unwrap or default (#4169)
  • fix: spawn js service task on blocking pool (#4180)
  • chore(cli): remove unused debug.tip argument from execution debug script (#4183)
  • chore(deps): weekly cargo update (#4173)
  • docs: fix smol typo (#4177)
  • docs(tx-pool): fix pending tx listener typo (#4171)
  • fix(rpc): tracing target (#4161)
  • fix: remove discarded transactions (#4164)
  • feat(txpool): Make TransactionPool trait object safe (#4156)
  • fix(txpool): maintenance tracing target (#4160)
  • (feat):add transaction::is_dynamic_fee (#4152)
  • fix: sub field is always serialized (#4151)
  • fix: exclude single stop vm trace instruction (#4149)
  • feat: add kzg_to_versioned_hash (#4085)
  • fix: use original bytes (#4150)
  • feat: add is eip4844 fn (#4147)
  • Signature functions moved to rpc_types_compat (#4143)
  • chore(cli): expose registry provider (#4144)
  • chore: enable blobtest again (#4139)
  • fix: omit output if empty (#4138)
  • chore: make unit type default (#4141)
  • chore: improve ef-tests readability (#4136)
  • feat: add rpc server metrics into dashboard (#4078)
  • fix(Makefile): Graceful cargo-nextest install (#4009)
  • chore: remove cargo deny rule for c-kzg (#4133)
  • fix(storage): fallback lookups for pruned history (#4121)
  • feat(pruner, metrics): skip attribute for metrics derive macro (#4069)
  • feat(txpool) modify txpool guard to be for pipeline syncs only (#4075)
  • feat(storage): account for pruned account/storage history (#4092)

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: A3AE 097C 8909 3A12 4049 DF1F 5391 A3C4 1005 30B4

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

Reth v0.1.0-alpha.6

09 Aug 18:51
88aea63
Compare
Choose a tag to compare

image

Summary

  • Critical: Follow up to critical fix in previous alpha.5 release that handles reorgs (#4130).

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

  • release: 0.1.0-alpha.6 (#4132)
  • fix(trie): account prefixset unwind (#4130)
  • fix: hit database first for lookups (#4127)
  • chore: pruner charts in Grafana dashboard (#4094)
  • feat: add max_fee_per_blob_gas fn (#4129)
  • feat: adds arbitrary to BlobTransaction and KZG_TRUSTED_SETUP (#4116)
  • chore: disable eta for headers & bodies (#4065)
  • ask for confirmation during reth db drop (#4118)
  • feat: add BlobTransaction network type (#4102)
  • standalone rpc_types (#4088)

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: A3AE 097C 8909 3A12 4049 DF1F 5391 A3C4 1005 30B4

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

Reth v0.1.0-alpha.5

09 Aug 13:30
058c55c
Compare
Choose a tag to compare

image

Summary

  • Critical: Fixed a bug where intermediate storage trie hashes for destroyed accounts were not removed (#4108 & #4126). Added a recovery script for synced nodes (#4109 & #4119).

Important

It is recommended that users run reth recover storage-tries (provide --datadir argument if applicable) after installing this release to prevent this bug from occurring in the future.

Update Priority

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

User Class Priority
Payload Builders High
Non-Payload Builders High

See Update Priorities for more information about this table.

All Changes

  • fix(trie): include destroyed accounts in account prefix set (#4126)
  • release: 0.1.0-alpha.5 (#4111)
  • feat(cli): full storage trie recovery (#4119)
  • Revert "feat: add TransactionSigned::recover_signers" (#4115)
  • feat(bin): temporarily disable full node (#4112)
  • fix: bad recursion in logs (#4113)
  • feat: add TransactionSigned::recover_signers (#4098)
  • feat: do not propagate full 4844 transactions (#4105)
  • chore: update cargo.lock (#4110)
  • chore: unused deps sanity check (#4106)
  • feat(cli): storage tries recovery (#4109)
  • fix(trie): dangling storage hashes (#4108)
  • fix(txpool): emit events on discarding worst txs (#4101)
  • fix(txpool): pending worst transaction (#4100)
  • feat(eip4844): include TxEip4844 in the primitive Transaction enum (#4074)
  • feat: re-export c-kzg types and impl rlp traits (#4084)
  • fix: record push stack as vec u256 (#4077)
  • perf: no longer spawn filter tasks (#4096)
  • feat: make base fee computation parameters configurable via chain spec (#3992)
  • chore: add with ext function (#4087)
  • chore(deps): weekly cargo update (#4086)
  • perf(trie): use available pre-loaded prefixsets (#4062)
  • chore: add missing op and idx fields (#4076)
  • chore: use remaining (#4082)
  • RFC: Add rpc method eth_callMany (#4070)
  • chore: make ext fns mut (#4081)
  • chore: rename command to NodeCommand and make fields pub (#4080)
  • chore: relax network blockreader trait bounds (#4079)
  • feat(txpool) feed new pending transactions to BestTxns iterator (#4053)
  • chore: explicitly set max allowed connections for auth server (#4067)
  • chore: make txpool cargo test compile (#4058)
  • chore(engine): downgrade new payload buffering log to debug (#4068)
  • feat(engine): set eth_syncing = true if pruner is active (#4063)
  • (feat):add private variant in tx origin (#4059)
  • fix(pruner): tx number range with genesis (#4061)
  • feat: extend RethCliExt with payload builder (#4022)
  • fix: only propagate txs that are allowed to be propagated (#4050)
  • feat: populate gas cost for vm instructions (#4046)
  • chore: move call op match to fn (#4047)
  • fix(engine): poll prune first (#4048)
  • fix(engine, pruner): prune poll logic, history indices (#4043)
  • docs: rm some tracing todos + docs
  • perf: improve ipc poll logic (#4037)
  • feat: add erigons debugTraceCallMany (#3878)
  • perf: spawn ipc requests (#4039)
  • feat: use DepositContract on ChainSpec (#4041)
  • Fix: successful execution of 'reth stage --commit' did not write results to the database (#4027)
  • chore: dont penalize on dropped connections (#4031)
  • chore: ignore ef blobTx test (#4038)
  • feat(prune): don't prune changesets if taking an incremental hashing/trie route (#4025)
  • fix: validate headers in full block downloader (#4034)
  • chore: make ipcpath arg default (#4036)
  • feat(pruner): account and storage history metrics (#4035)
  • feat(engine): require VALID latest FCU status before pruning (#3954)
  • feat(pruner): storage history (#4006)
  • feat(pruner): account history (#4000)
  • feat(pruner): metrics (#4023)
  • feat(cli): add max peer args (#4024)
  • feat(engine): payload cancun fields (#4010)
  • fix(primitives): nothing to prune situations for PruneModes (#4021)
  • test(txpool): listener it tests (#4019)
  • fix: record selfdstructs properly (#3921)
  • chore(stages): remove unnecessary prune configuration from history index stages (#4018)
  • fix(txpool): clone impl for FullTransactionEvent (#4020)
  • feat(pruner): transaction senders (#3912)
  • feat(rpc): ots_getBlockDetails and ots_getBlockDetailsByHash (#4007)
  • chore: fix PrefixSetMut doc comment (#4015)
  • chore: add subkey docs to StorageEntry (#4016)
  • Update lib.rs (#4017)
  • chore: add example how to install additional rpc namespace (#4005)
  • Fix preState diffMode logic (#4014)
  • fix: track full_transactions propagation when packet size limited (#3993)
  • feat(bin): node --full flag (#3965)
  • fix: serde rename revertReason (#4002)
  • feat: Add RethCliExt (#3983)
  • feat(p2p): Add GetReceipts eth handler implementation (#3959)
  • feat(pruning): prune ChangeSets & History during pipeline (#3728)
  • feat: reth db diff (#3917)
  • feat: store logs in different folders based on the chain (#3948)
  • fix(pipeline): clear MerkleStage checkpoints on invalid root (#3973)
  • fix(tracing): extend Parity tracing VmExecutedOperation (#3997)
  • fix: prevent child call out of bounds (#3920)
  • ci: add weekly cargo update workflow (#3986)
  • chore(deps): make jsonrpsee types a feature (#3999)
  • chore(deps): bump itertools (#3998)
  • docs: add additional documentation to TxType (#3996)
  • chore: bump jsonrpsee 0.19 (#3989)
  • chore: cargo update (#3988)
  • ci: deny warnings only in lint jobs (#3982)
  • feat: add 4844 header fields and consensus checks (#3972)
  • feat(txpool) - add flag for local tx propagation (#3977)
  • add defaults to some rpc server cli args (#3969)
  • chore(txpool): pooled tx constructor (#3980)
  • chore(txpool): export validation constants (#3979)
  • WIP: Implement prestateTracer (#3923)
  • feat(cli): in-memory merkle debug script (#3895)
  • refactor(rpc): simplify the inner definitions of topics & address filters (#3876)
  • Add price bump config (#3967)
  • chore: update link to contributing/code of conduct in bug report (#3978)
  • chore(rpc-types): remove EngineRpcError (#3975)
  • fix(txpool): pendind pool reordering (#3955)
  • perf(rpc): move frame gen into task (#3950)
  • feat(eip4844): add EIP4844 to the TxType enum (#3953)
  • fix(cli): eta div by zero (#3971)
  • chore: move some tests to engine crate (#3968)
  • bench(txpool): reordering (#3882)
  • refactor(transactions): move TxEip1559, TxEip1559 and TxEip4844 to separate files (#3946)
  • chore: move some functions to Cli struct (#3961)
  • chore: make auth-port default (#3962)
  • feat(rpc): perform js inspector on spawn_with_call_at async tracing task (#3957)
  • refactor(storage): historical state lookup (better comments) (#3867)
  • feat(doc): Document JsTracerBuilder (#3949)
  • feat: more blobtx functions (#3943)
  • feat: add fcu v3 skeleton (#3940)
  • feat: add eip4844 tx type id (#3928)
  • feat: metric of reorg depth of blockchain tree (#3860)
  • Revert "test(ethereum): ignore invalid string sequence in ethereum state tests (#3307)" (#3937)
  • test: cover index storage history stage with stage_test_suite_ext tests (#3898)
  • docs: db clear CLI (#3936)
  • fix(stages): transaction lookup stage checkpoint calculation (#3909)
  • feat: add Hardfork::Cancun (#3933)
  • feat: _V3 engine api skeletons (#3931)
  • feat(pruner): percentage progress and prune only if key exists (#3932)
  • feat(bin): db clear (#3934)
  • feat: use tracing pool for tracing calls (#3914)
  • chore: simplify workspace = true usage (#3930)
  • rpc server metrics impl (#3913)
  • Reexport geth pre_state AccountState, DiffMode and PreStateMode (#3922)
  • feat(pruner): transaction lookup (#3892)
  • feat(prune): take PruneMode::Full into account when validating the config (#3810)
  • feat: add dial metric to dashboard (#3802)
  • fix(rpc): support both input and data fields (#3911)
  • chore: use ruint 1.9 and remove patch (#3910)
  • feat: add Tracing call pool (#3908)
  • feat: add alias for max response size (#3902)
  • chore: add execution aborted error (#3901)
  • chore: add eip4844 constants (#3906)
  • chore(storage): format MDBX flags doc comments (#3905)
  • feat: add a --dev option (#3866)
  • feat(docs): add primer on all transaction types (#3897)
  • chore(trie): clean up in-mem root (#3894)
  • feat: add canonicalization latency metric (#3865)
  • feat: report different request errors (#3857)
  • feat: sidechain length metric (#3864)
  • feat: add eip 4844 blob tx type (#3807)
  • chore: improve TestConsensusEngineBuilder ergonomics (#3891)
  • chore: refactor header stream (#3880)
  • feat(pruner, storage): prune receipts & save checkpoints to database (#3733)
  • fix: do not perform future timestamp checks post-merge...
Read more

Reth v0.1.0-alpha.4

18 Jul 09:02
b2b2cbe
Compare
Choose a tag to compare

image

Summary

This release contains various features and fixes including:

  • critical: removal of a downloader heuristic that prevented the node from syncing further (#3783)
  • jemallocator is now enabled by default for UNIX systems (#3735)
  • better observability around transaction pool maintenance (#3715)
  • miscellaneous RPC-related fixes
  • ongoing work on pruning

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

  • chore: bump version .alpha4 (#3808)
  • feat: make rpc gas cap configurable (#3458)
  • feat:new discovered node record event stream (#3707)
  • chore: use best with base fee (#3804)
  • fix(stages): update entities metrics on SyncHeight event (#3796)
  • feat: better blocksize heuristics (#3748)
  • bug(stages): TxLookup/Sender stages fix range if there is no tx (#3479)
  • feat(txpool): add best_with_base_fee (#3737)
  • feat: reload dirty accounts if pool drifts (#3732)
  • fix: rpc cap block range correctly (#3791)
  • fix: concurrent ipc driver impl (#3790)
  • feat: txpool block building fallback (#3755)
  • feat: trim cmd args in parser (#3789)
  • chore(tree): remove revert notification (#3645)
  • chore(downloader): simplify bodies task polling (#3788)
  • chore: make some session types pub (#3666)
  • feat: remove peers after several unsuccessful attempts (#3780)
  • fix: remove single body response check (#3783)
  • chore: enable jemalloc by default on unix (#3735)
  • fix: add unknown block error (#3779)
  • adding row for total db size in db stats command (#3777)
  • fix: add missing null check (#3766)
  • perf: only lookup in db in cache layer (#3773)
  • fix(rpc): make trace filter req field hex or decimal (#3772)
  • fix(rpc): serialize traces always as vec (#3770)
  • chore: add some txs helpers (#3767)
  • chore: fix typo in RlpDecodableWrapper derive (#3763)
  • fix: return null withdrawals (#3762)
  • fix: poll logic when pipeline active (#3761)
  • chore: add network example (#3753)
  • chore: reorder call action fields (#3758)
  • test: ignore another flaky geth test (#3757)
  • #3667 Add Dial Success Metric (#3729)
  • chore(storage): transactions -> receipts in receipts_by_block (#3744)
  • fix: serialize selfdestruct as suicide (#3736)
  • feat: complete vm and statediff tracers (#3529)
  • fix(consensus): call finalize_block when finalized block changes. (#3731)
  • fix: perform forkchoice update consistency checks (#3730)
  • fix: use engine responses to progress autoseal mining task (#3727)
  • feat(bin, engine, prune): spawn pruning task from the engine (#3566)
  • fix: register precompiles correctly (#3720)
  • fix(provider): update checkpoints only for known stages (#3624)
  • fix: use tx gas limit for root trace (#3719)
  • docs: add a few more docs to ControlFlow (#3603)
  • test: fix engine hive of Invalid Transition Payload Sync (#3710)
  • perf: only update finalized safe if changed (#3725)
  • Chore(book): correct the grafana dashboards json path (#3724)
  • chore: use transaction_by_id_no_hash to avoid hash computation (#3718)
  • fix: treat bool params as invalid in logs subscription (#3716)
  • feat(primitives, storage): save prune checkpoints in database (#3628)
  • perf: handle engine API range request in a new task (#3685)
  • feat: add performed pool state updates metric (#3714)
  • feat: add txpool maintain metrics (#3715)
  • docs: how to enable JSON-RPC endpoints for http/ws (#3711)
  • fix: transaction calls on the reth-provider should not generate a hash by default (#3675)
  • feat(pruning): prune Receipts during pipeline (#3585)
  • fix: check if value is bool (#3708)
  • chore(prometheus): add host.docker.internal:9001 scrape target (#3689)
  • test: eth_getProof without storage proof (#3643)
  • style: replace next_sync_target Receiver loop with call to wait_for (#3618)
  • chore(deps): bump pprof criterion (#3698)
  • chore(deps): bump smolstr hex-literal (#3693)
  • test: add payload status error serde tests (#2803)
  • feat: add full pending txs to stream (#3649)
  • feat: run pipeline if latest finalized is far from pipeline progress (#3662)
  • feat(config, primitives): validate Receipts prune part (#3587)

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: A3AE 097C 8909 3A12 4049 DF1F 5391 A3C4 1005 30B4

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

Reth v0.1.0-alpha.3

10 Jul 12:19
31af4d5
Compare
Choose a tag to compare

image

Summary

This release is a hotfix to alpha.2 with some small patches around node quality of life:

  • Fixes Grafana/Metrics during live sync (#3671). We introduced a metrics bug in #3507 which made the Grafana dashboard look like it's spiking up and down all the time.
  • Fix ExecutionPayloadBody encoding on getPayloadBodies endpoints (#3688),
  • Can now run the node with --http.api all (same for WS/IPC) as an alias for turning all the supported JSON-RPC APIs on (#3660). Warning, this will also turn on the admin API which is unsafe if the node is exposed in the internet as it allows anyone to add/remove peers from your peerset.

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

See Update Priorities for more information about this table.

All Changes

  • release: 0.1.0-alpha.3 (#3691)
  • feat: add subpool transaction streams (#3668)
  • feat: enforce txpool propagation setting (#3677)
  • fix: remove txn header from getPayloadBodies (#3688)
  • fix: expose the revm_utils to consumer as needed structs from it (#3686)
  • chore: use units on dashboard (#3684)
  • feat(stages): trace log for metric event receive (#3670)
  • fix(tree): update metrics only on canonical/side chain changes (#3671)
  • fix: expose call method so a consumer can use it (#3680)
  • add build profile to version info take II (#3669)
  • Add propagate field to TransactionValidationOutcome (#3664)
  • chore: add a few noop functions to builder (#3659)
  • feat: support all alias (#3660)
  • pop duplicates entries when returning downloaded blocks in engine (#3644)
  • test: tmp ignore another flaky geth test (#3663)

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: A3AE 097C 8909 3A12 4049 DF1F 5391 A3C4 1005 30B4

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

Reth v0.1.0-alpha.2

07 Jul 13:22
Compare
Choose a tag to compare

image

Summary

This release includes a number of stability improvements and bug fixes. If you currently experience any issues with syncing Reth, we strongly suggest you update your node.

The highlights of this release are:

  • Improved stability of the engine API, which improves the connection between Reth and the CL.
  • Addressed a number of Out of Memory (OOM) issues, improving stability.
  • Fixed issues with the RPC, particularly in the trace_* APIs.
  • Added new metrics for the transaction pool, RPC, caches, and other components. Existing metrics were also improved.
  • New metrics were added in this release, so it's highly encouraged for operators to update their Grafana dashboards with the latest version.

The RPC now listens on localhost by default, and metrics are served on port 9001 by default, which may require operators to check their current configuration.

Reth is now also available on some package managers. macOS Homebrew and Linuxbrew users can install Reth with:

brew install paradigmxyz/brew/reth

Arch Linux users can install Reth using an AUR helper (like Paru) with:

paru -S reth # Stable
paru -S reth-git # Unstable (git)

Finally, Reth's Windows builds have been fixed.

Added

  • More metrics for the blockchain tree, which tracks the latest tip and processes incoming blocks from the CL (#3289, #3314).
  • Implementation of eth_getBlockReceipts (#3321).
  • New metric: reth_network_pending_pool_imports, tracks the number of transactions about to be imported to the transaction pool (#3344).
  • New metrics monitoring the amount of messages exchanged between the networking component and the transaction pool component (#3345).
  • Metrics for memory and CPU usage, including allocator statistics if jemallocator is used as the allocator (default except for Windows) (#3435, #3455).
  • Metrics for the size of RPC caches (#3499, #3502, #3513).
  • Metric for the total amount of transactions in the txpool (#3500).
  • The bodies downloader now limits its buffer by a memory usage estimate, replacing downloader_max_buffered_blocks with downloader_max_buffered_blocks_size_bytes in the configuration (#3508).
  • Flags to configure the transaction pool from the CLI were added (#3575).

Fixed

  • eth_feeHistory now returns the correct block ranges and calculates percentiles correctly (#3288).
  • The default transaction ordering in the transaction pool now compares the transaction cost (fee cap * gas limit + tx value) instead of the transaction gas cost (#3389).
  • debug_traceTransaction now includes logs in the trace if requested (#3472).
  • trace_callMany now executes transactions on top of the correct state. Previously, each transaction would be executed on top of the state of the previous block, where they should have been executed on top of the state of the previous block and any modifications prior transactions have made (#3437).
  • The log address is now correct in debug_traceCall (#3481).
  • Block rewards are now present in trace_block if requested (#3491).
  • Sync metrics are now updated after historical sync (#3507).
  • trace_callMany now includes storage diffs (#3549).
  • eth_call now respects state overrides (#3589).

Changed

  • The RPC now listens to localhost by default (#3299).
  • Metrics are now served over port 9001 by default (#3295).
  • The Grafana dashboard supports displaying metrics for multiple Reth nodes (#3336).
  • Metrics for the invalid header cache have moved from reth_invalid_header_cache* to reth_consensus_engine_beacon_invalid_headers_* (#3468).
  • The RPC caches are now configured by length, not size. This change renames some RPC cache flags on the CLI (#3505).

Update Priority

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

User Class Priority
Payload Builders High Priority
Non-Payload Builders Medium Priority

See Update Priorities for more information about this table.

All Changes

  • release: 0.1.0-alpha.2 (#3657)
  • ci: pin ubuntu to 20.04 to avoid glibc errors
  • Revert "add build profile to version info (#3652)"
  • fix: subpool variant order (#3656)
  • chore(txpool): enriched pool transaction event (#3653)
  • chore: add missing helper functions and docs (#3646)
  • add build profile to version info (#3652)
  • chore(prometheus): add localhost:9001 scrape target (#3606)
  • fix(txpool): emit replaced events (#3642)
  • test: use concrete type for arbitrary strategy (#3632)
  • Match statement for handling error messages - reverted and default case (#3640)
  • fix: rm bad flatten (#3637)
  • fix(docs): fix malformed link (#3635)
  • chore: move BeaconConsensusEngineHandle to separate file (#3633)
  • fix: put attribute on correct line (#3636)
  • fix: rm outdated flatten (#3630)
  • fix: populate transaction trace error field (#3627)
  • chore: remove network-api test-utils feature (#3622)
  • chore(engine): warn on inconsistent pipeline (#3623)
  • chore(book): document missing CLI arguments (#3610)
  • docs: add homebrew and arch aur (#3620)
  • chore: add commit to client version (#3621)
  • refactor(stages): use MetricsListener for Execution stage gas metric (#3511)
  • feat: download block ranges (#3416)
  • feat: add error field to parity transaction traces (#3611)
  • fix: correct types in libmdbx-rs for windows (#3608)
  • docs: note that only wsl2 works (#3609)
  • ci: remove broken book workflow (#3613)
  • refactor: extract exceeds pipeline threshold (#3605)
  • perf(trie): post state cursors (#3588)
  • doc: book cli updater (#3576)
  • feat: add ethereum-metrics-exporter (#3573)
  • perf: only record return value if required (#3040)
  • fix: use refunds for root call (#3594)
  • docs: add transaction pool example (#3596)
  • feat(book): recommend more CL checkpoints (#3601)
  • fix(book): change recommended --authrpc.port value from 9999 to 8551 (#3599)
  • chore: change field TransactionTrace order (#3598)
  • docs: remove naked link in installation (#3595)
  • Revert "feat: add cargo binstall support" (#3602)
  • feat: add cargo binstall support (#3578)
  • test: add test for state override json (#3586)
  • fix: use same stale label for prs (#3593)
  • perf: better engine downloads (#3584)
  • fix: use DatabaseRef impl when fetching overriden account (#3589)
  • perf: put all prefix sets in Rc (#3582)
  • refactor: extract on pipeline finished (#3590)
  • feat(txpool): all transactions event listener (#3565)
  • docs(trie): hashed post state & cursors (#3572)
  • docker: don't ignore examples (#3570)
  • feat(cli): txpool args (#3575)
  • chore(crates): deprecate staged-sync (#3564)
  • chore: add stale workflow (#3556)
  • feat(book): adding QLC and TLC NVMEs comparison (#3562)
  • fix: add missing single block body download validation (#3563)
  • docs: update bodies config (#3553)
  • docs: update rpc cache flags (#3552)
  • docs: minimum docker engine version (#3546)
  • fix(rpc): fix parity tracing config (#3549)
  • chore: export TransactionPoolExt trait (#3548)
  • feat: add docker compose with docs (#3496)
  • feat(bin, storage): configurable MDBX log level (#3524)
  • docs: add payload builder example (#3545)
  • fix: create a test db with path (#3482)
  • chore: run tests with coverage in Makefile (#3418)
  • examples: add examples of using reth-provider and instantiating an RPC on top of the DB (#3533)
  • nit: spelling (#3539)
  • feat: add NoopTransactionPool impl (#3536)
  • perf: join futures in tracing (#3541)
  • fix(codec): fix last field compilation check (#3543)
  • chore: fix clippy (#3540)
  • fix: add block rewards to trace_block (#3491)
  • feat(stages, tree): update sync metrics from blockchain tree (#3507)
  • feat: add another distance check (#3501)
  • test: improve slow tests (#3487)
  • chore: add TaskManager must_use annotation (#3525)
  • fix: precompile condition (#3526)
  • docs: add additional context to internal tracing error (#3531)
  • chore: rustfmt (#3532)
  • some docs nits on installation (#3528)
  • feat(error): add wrappers for std::fs methods to track path for errors (#3367)
  • fix(book): typo (#3521)
  • chore(rpc): split cache into multiple files (#3519)
  • chore(download): bodies downloader size limit (#3508)
  • chore: rm cached bytes gauge (#3513)
  • fix(cli): consistent max block across pipeline and engine (#3510)
  • fix(rpc): limit cache by length (#3505)
  • chore: docs typo (again)
  • chore: docs typo
  • docs: add note on hardware + latitude discount code
  • chore: fix docs for bodies downloader task (#3506)
  • feat(bin, stages): metrics listener (#3483)
  • chore(rpc): add cached bytes metric (#3502)
  • chore: add total-transactions metric (#3500)
  • feat(rpc): cache metrics (#3499)
  • feat: make chain canonical if new payload is the missing block for current sync target (#3459)
  • chore: bump default max logs (#3498)
  • fix: always return logs of single block range query (#3497)
  • fix(engine): logs for new payload v2 (#3494)
  • feat(txpool): add transaction_event_listener function (#3493)
  • chore(deps): move proc-macro and syn to workspace deps (#3492)
  • fix: only check timestamped forks after the merge (#2503)
  • fix: use correct address for log (#3481)
  • refactor: move mdbx::test-utils to reth_db::test-utils and add DatabaseEnvRO (#3466)
  • test: disable flakey test (#3486)
  • chore: rename invalid header metrics scope (#3468)
  • chore: put EthPubSubInner in Arc (#3463)
  • chore: replace Option with just vec (#3474)
  • fix: set missing record logs (#3472)
  • chore: fix update prios link (#3478)
  • test: set --authrpc.port to 0 for Geth instance (#3476)
  • chore: mirror geth's encoding order for callframe (#3473)
  • docs: update call fees docs on fallback (#3471)
  • test: run geth blacklist test also serial (#3469)
  • ...
Read more

Reth v0.1.0-alpha.1

20 Jun 15:13
b245193
Compare
Choose a tag to compare

image

Summary

Read the announcement post for a full overview of Reth's alpha release

Last year we set out to build Reth, a modular, contributor-friendly and blazing fast implementation of the Ethereum protocol, in Rust.

Today, we're excited to announce that Reth is entering its alpha with version 0.1.0 under the permissive Apache/MIT license. We are inviting node operators and users to run nodes and use Reth's crates to build exciting EVM-centric infrastructure.

This release includes:

  • A new Ethereum execution layer
  • A new SDK for building EVM-centric infrastructure

What's included?

Reth can sync any Ethereum-like network (mainnet, Sepolia, Goerli etc.), up to Shanghai. Reth includes a new performant implementation of the debug_ and trace_ JSON-RPC namespaces.

Reth achieves state of the art archive node performance on the most important areas when evaluating a node:

  • Storage: <2TB database size at block 17.4M.
  • Syncing Speed: Bootstrapping the chain from genesis to block 17.4M in 50 hours.
  • Robustness: Reliably tracks the tip without falling behind under heavy RPC load.
  • Querying the chain: State of the art RPC throughput and latency.

image

Compared Erigon v2.43.0 vs Reth v0.1.0-alpha.1 on Latitude c3.large.x86 on RAID0'd drives.

Reth as a library

Reth is an ecosystem of high-quality abstractions for building EVM infrastructure. You can think of Reth as an SDK, with the node just being the first application.

We provide performant and documented modules and abstractions for complex operations like block building, transaction simulation, mempools, chain indexing, P2P networking, the RPC, and more. All packages are licensed under the Apache/MIT dual-license, for free, permissive use by everyone.

You can imprt Reth's various components as a library by adding the following to your Cargo.toml (replacing reth-db with your favorite package):

reth-db = { git = "https://github.com/paradigmxyz/reth" }

See a complete list of our packages here.

We are looking to improve documentation, build examples, and gather feedback for additional use cases for Reth as a library. If you experience pain points, or have other feedback, please open up an issue on our issue tracker.

What's next?

While this is still early days, Reth already shows promising performance characteristics, which we're excited to further improve in the future. We would also like to make our benchmarking methodology more robust and reproducible by third parties.

The core Reth team is going to be focusing on:

  1. Shipping the Ethereum roadmap, with Cancun & EIP-4844 as our top priority, and contributing to the Core Development process.
  2. Improving stability of the existing feature set.
  3. Shipping key node quality of life features, like non-archive sync and snapshots.

We will continue expanding documentation and testing of the codebase, to improve robustness and make integrations easier.

We invite developers and node operators to try out Reth and let us know what they think. Like with Foundry, our culture remains developer-first, devoted to tight feedback loops with a high bar.

We cannot wait to see what you will build with Reth!

All Changes

  • Initial release.

Binaries

See pre-built binaries documentation.

The binaries are signed with the PGP key: A3AE 097C 8909 3A12 4049 DF1F 5391 A3C4 1005 30B4

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