Jun 26, 2024 | The Reth Team, Georgios Konstantopoulos
Contents
We are excited to announce that after almost 2 years of development and a successful audit by Sigma Prime, we are finally releasing Reth 1.0, the first “prod-ready” release of our blazing-fast Ethereum execution client.
Reth 1.0 focuses on delivering a stable Ethereum mainnet node on top of continuing our mission towards breaking through the gigagas per second barrier and delivering an extensible and contributor-friendly node (over 300!).
With this release, we invite all industry players to run Reth in production and get in touch with our team about becoming an early partner so we can help you succeed with priority support and custom features. Specifically:
If the above sounds exciting, read on to learn more!
Reth 1.0’s performance characteristic and storage footprint is as good as the beta versions as of June 2024 – about 50 hours to sync to the tip from genesis, ~2.25TB archive node storage, and great RPC throughput & latency in transactions, logs and tracing benchmarks. All of these numbers are state of the art and will continue getting better.
As before, the dominant factor for performance across hardware is the hard drive, so we recommend making sure to run Ethereum nodes on a great SSD. If you’re running on AWS or other cloud storage options, ensure you have >16K IOPS. We use Latitude’s bare metal servers for our benchmarks because of their great NVMe SSDs.
We think the above is reason enough to try out Reth. But performance is not what we want to focus on today. What we're most excited for Reth 1.0 is its stability compared to earlier versions.
With the observed stability and steps taken to secure Reth 1.0, we’re comfortable recommending Reth for usage in production, including for Ethereum mainnet staking (see the Ethereum Foundation's launchpad and large RPC node operations.
We put extra effort into providing an operator experience which would minimize manual troubleshooting and unpredictability, based on feedback from tons of individual users, professional node operators and companies. Here are the areas we focused on:
reth 0.2.0-beta.6
in April 2024, there have been no crash reports, a requirement for any high uptime deployment of Reth. This is a significant improvement over previous versions that occasionally experienced crashes in reorg-related edge cases.Note that while we expect Reth the node to be stable and provide you with “no surprises” infrastructure, we still reserve the right to make breaking changes and refactor internal node APIs. If you are using Reth as an SDK and want it to become more stable, we’d love to work with you.
Our security process is described in the Alpha and Beta releases. The codebase is extensively tested, and we use multiple tools such as Kurtosis, Assertoor, Hive, Goevmlab, our own fuzzers and more to automatically catch edge cases.
Beyond that, we’re excited to announce the successful completion of a thorough security engagement with Sigma Prime, developers of the Lighthouse Consensus client, which spanned several months and involved multiple security engineers. All reported issues have since been confirmed as fixed. The security assessment report is available here.
We also co-funded the community audit of Revm with Guido Vranken. Revm is the EVM engine behind Reth, Foundry, and so much more critical Ethereum infrastructure, and we are keen to continue helping harden it for production usage. Learn more about this in Dragan’s announcement.
Finally, we are now part of the Ethereum Foundation’s bug bounty program, so if you find a bug, make sure to be a whitehat and report it! Also see our SECURITY.md for other information.
For node operators who are excited to download Reth, see our releases page and the Reth Book. We provide signed binaries which are made available over popular package managers and container registries, DappNode, as well as instructions on how to install from source:
# MacOS
brew install paradigmxyz/brew/reth
# Arch
pacman -S reth # or reth-git for installing from HEAD
# Docker
docker pull ghcr.io/paradigmxyz/reth:v1.0.0:latest
# `cargo-install`
RUSTFLAGS="-C target-cpu=native" cargo install https://github.com/paradigmxyz/reth --locked --profile maxperf --features=jemalloc,asm-keccak
# from source
git clone https://github.com/paradigmxyz/reth && cd reth && make maxperf
The above should be enough to get you started with running Reth via the reth node
command! To get quickly started on Ethereum mainnet in few hours you can grab a database snapshot from Merkle’s archive, or sync from genesis yourself!
Here’s a simple 1-liner you can use alongside an Etherscan API key to get a locally synced Holesky network node without any consensus layer required, just Docker (note that in Docker you need the -v
flag to persist the node’s database across container restarts):
docker run --env ETHERSCAN_API_KEY=$ETHERSCAN_API_KEY ghcr.io/paradigmxyz/reth:latest node --debug.etherscan --chain=holesky
The CLI is modeled to be compatible with go-ethereum’s CLI, so once the binary or container is available, you can use Reth as a drop-in replacement for your nodes whether you’re running in a script or in Kubernetes, no additional steps needed! For observability please check the --metrics
flag and our documentation, where we already provide a great Prometheus & Grafana setup.
We envision that in the next ten years, the most impactful crypto-infrastructure will be on Reth. We think the path to get there is clear, but we cannot do it on our own, despite our team’s quality and our large community of open source contributors.
We’d like to collaborate with the ecosystem on the following two areas, among others:
We want tight feedback loops with ecosystem players, and would even train engineers from key external teams on the Reth codebase, to enable them to help their internal teams succeed.
We’re looking to bootstrap the first wave of Reth early partners. If you’re an industry player aligned with the above vision, please fill in this form. We’d love to hear from you and help you succeed with Reth.
In the last 2 years, we have:
The Reth SDK is slowly but surely becoming a reality, starting with Ethereum and then with Layer 2s. We hope that you are as excited as we are to run Reth 1.0 in production. Expect soon a follow-up Reth 1.1 release which will be focused on stable and performant support for the OP Stack via OP Reth, including detailed updated performance benchmarks.
Our next major internal priorities are shipping the next Ethereum hard fork (Pectra) and rolling out Reth AlphaNet, with the goal of stress testing the limits of blockchain scalability and accelerating the rollup decentralization roadmap.
Externally, we’d like to collaborate with ecosystem players building services on the Reth SDK either for supporting new EVM-based L1s/L2s or with Execution Extensions; make sure to fill in the form we linked above to collaborate with us.
We’ll be talking about all this and the rest of our open source stack at Frontiers, on August 16-17th in San Francisco. Go apply!
In the meantime, go run Reth, join our community, or reach out directly to georgios@paradigm.xyz if you want to work together. We’re also hiring cracked full-time Rust engineers, especially ones that can tech lead – let us know if that could be a fit for you.
See you on Github.
Disclaimer: This post is for general information purposes only. It does not constitute investment advice or a recommendation or solicitation to buy or sell any investment and should not be used in the evaluation of the merits of making any investment decision. It should not be relied upon for accounting, legal or tax advice or investment recommendations. This post reflects the current opinions of the authors and is not made on behalf of Paradigm or its affiliates and does not necessarily reflect the opinions of Paradigm, its affiliates or individuals associated with Paradigm. The opinions reflected herein are subject to change without being updated.