Skip to content
/ reth Public
forked from paradigmxyz/reth

Modular, contributor-friendly and blazing-fast implementation of the Ethereum protocol, in Rust

License

Notifications You must be signed in to change notification settings

dovvvv/reth

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reth

CI status
cargo-deny status

A modular, contributor-friendly, and blazing-fast implementation of the Ethereum protocol

Quick Links:

What is Reth?

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.

Goals

Reth enables users to connect to the Ethereum network, send/receive transactions, access blockchain data, and interact with smart contracts. Its primary objectives include:

  1. 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.
  2. 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.
  3. Open and Free: Licensed under Apache/MIT, Reth encourages unrestricted usage without concerns over restrictive business or GPL-like licenses.
  4. Client Diversity: A diverse Ethereum ecosystem is more resilient to bugs and vulnerabilities. By introducing Reth, we aim to enhance the network's robustness.
  5. Multi-Chain Support: Reth aspires to support not only Ethereum but also EVM-compatible chains such as Optimism, Polygon, and Binance Smart Chain.
  6. 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.

Current Status

Reth is production-ready and recommended for mission-critical applications like staking, high-uptime services, RPC, MEV, indexing, and simulations.

Milestones

  • June 2024: Released Reth 1.0, labeled “production-ready.”
  • Iterative updates through beta and alpha phases, starting with alpha.1 in June 2023.

Database Compatibility

No database-breaking changes have occurred since beta.1. However, users with pre-beta databases must drop and resync using the latest commands.

User Resources

Developer Resources

Using Reth as a Library

Reth’s crates are modular and can be used independently in projects. See the Crate Documentation for details.

Contributing

Contributions are welcome! Join discussions on Telegram, or check out:

Building and Testing

The Minimum Supported Rust Version (MSRV) is 1.82.0.

  1. Clone the repository:
    git clone https://github.com/paradigmxyz/reth
    cd reth
  2. Run tests:
    • Without Geth: cargo test --workspace
    • With Geth: cargo test --workspace --features geth-tests

For faster tests, use cargo nextest.

Need Help?

Security

Refer to SECURITY.md.

Acknowledgments

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.

About

Modular, contributor-friendly and blazing-fast implementation of the Ethereum protocol, in Rust

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.7%
  • Makefile 0.2%
  • Mermaid 0.1%
  • Dockerfile 0.0%
  • Shell 0.0%
  • JavaScript 0.0%