A modular, contributor-friendly, and blazing-fast implementation of the Ethereum protocol
Reth (short for Rust Ethereum, pronunciation) is a modern Ethereum full-node implementation designed to be user-friendly, highly modular, and performance-driven. It serves as an Execution Layer (EL) node, fully compatible with all Ethereum Consensus Layer (CL) implementations that support the Engine API.
Developed and maintained by Paradigm, Reth is distributed under the permissive Apache and MIT licenses.
Reth enables users to connect to the Ethereum network, send/receive transactions, access blockchain data, and interact with smart contracts. Its primary objectives include:
- Modularity: Every component of Reth is designed as a reusable library—thoroughly tested, well-documented, and benchmarked. Developers can import its crates, customize functionalities, and build unique use cases. Examples include creating standalone P2P networks, interacting directly with the node database, or unbundling specific features.
- Performance: Reth is engineered for speed using Rust and the Erigon staged-sync architecture. Its components, like Alloy and revm, are optimized through extensive testing.
- Open and Free: Licensed under Apache/MIT, Reth encourages unrestricted usage without concerns over restrictive business or GPL-like licenses.
- Client Diversity: A diverse Ethereum ecosystem is more resilient to bugs and vulnerabilities. By introducing Reth, we aim to enhance the network's robustness.
- Multi-Chain Support: Reth aspires to support not only Ethereum but also EVM-compatible chains such as Optimism, Polygon, and Binance Smart Chain.
- Configurability: Reth caters to a variety of users, from hobbyists with limited hardware to professionals seeking optimal performance. Configurable profiles allow flexibility for different trade-offs, including full sync and fast sync modes.
Reth is production-ready and recommended for mission-critical applications like staking, high-uptime services, RPC, MEV, indexing, and simulations.
- June 2024: Released Reth 1.0, labeled “production-ready.”
- Audited by Sigma Prime (audit report).
- Revm underwent a security audit by Guido Vranken.
- Iterative updates through beta and alpha phases, starting with alpha.1 in June 2023.
No database-breaking changes have occurred since beta.1. However, users with pre-beta databases must drop and resync using the latest commands.
Reth’s crates are modular and can be used independently in projects. See the Crate Documentation for details.
Contributions are welcome! Join discussions on Telegram, or check out:
The Minimum Supported Rust Version (MSRV) is 1.82.0.
- Clone the repository:
git clone https://github.com/paradigmxyz/reth cd reth
- Run tests:
- Without Geth:
cargo test --workspace
- With Geth:
cargo test --workspace --features geth-tests
- Without Geth:
For faster tests, use cargo nextest
.
- Check the Reth Book for answers.
- Join our [Telegram chat][tg-url].
- Open a discussion or a bug report.
Refer to SECURITY.md
.
Special thanks to:
- Geth for years of foundational work.
- Erigon for pioneering the "Staged Sync" architecture.
- Akula for their Apache-licensed libraries, which accelerated Reth's development.
This version emphasizes clarity and professional tone while maintaining the structure and technical details.