Warning
This repository is for development purposes. For production deployments, please use the releases referenced in base/node.
Base Reth Node is an implementation of a Reth Ethereum node, specifically tailored for the Base L2 network. It integrates Flashblocks capabilities and leverages Optimism components from Reth v1.8.1. This node is designed to provide a robust and efficient solution for interacting with the Base network.
- Base L2 Support: Optimized for the Base Layer 2 network.
- Flashblocks RPC: Includes a
flashblocks-rpccrate for Flashblocks. - Reth Based: Built upon Reth
v1.8.1, incorporating its Optimism features. - Dockerized: Comes with a
Dockerfilefor easy containerization and deployment. - Development Toolkit: Includes a
justfilefor streamlined build, test, and linting workflows.
Important
This repository is for development of the client. For docker images and configurations, see the node repository and the node-reth image. This image bundles vanilla Reth and Base Reth and can be toggled with NODE_TYPE=base or NODE_TYPE=vanilla
. ├── Cargo.toml # Rust workspace and package definitions ├── Cargo.lock # Dependency lockfile ├── Dockerfile # For building the Docker image ├── LICENSE # MIT License ├── README.md # This file ├── crates/ │ ├── node/ # Main node application logic │ ├── transaction-tracing/ # Transaction tracing utilities │ └── flashblocks-rpc/ # RPC server for Flashblocks integration ├── justfile # Command runner for development tasks └── .github/ └── workflows/ └── ci.yml # GitHub Actions CI configuration - Rust: Version 1.85 or later (as specified in
Cargo.toml). You can install Rust using rustup. - Just: A command runner. Installation instructions can be found here.
- Docker: (Optional) For building and running the node in a container. See Docker installation guide.
- Build Essentials:
git,libclang-dev,pkg-config,curl,build-essential(these are installed in the Docker build process and may be needed for local builds on some systems).
git clone https://github.com/base/node-reth.git cd node-rethYou can build the project using the justfile for a release build:
just buildAlternatively, if performance is critical, you can build with all optimizations enabled + jemalloc:
just build-maxperfOtherwise, you can use Cargo directly:
cargo build --release --bin base-reth-nodeThe main binary will be located at target/release/base-reth-node.
To ensure everything is set up correctly, run the checks and tests:
just check # Runs cargo fmt --check and cargo clippy just test # Runs cargo testTo automatically fix formatting and clippy warnings:
just fixTo run the compiled node:
./target/release/base-reth-node [OPTIONS]To see available command-line options and subcommands, run:
./target/release/base-reth-node --help(Note: Replace [OPTIONS] with the necessary configuration flags for your setup. Refer to the --help output for details.)
docker build -t base-reth-node .docker run -it --rm base-reth-node [OPTIONS](Note: You might need to map ports (-p), mount volumes (-v) for data persistence, or pass environment variables (-e) depending on your node's configuration needs.)
(Details about specific configuration files, environment variables, or command-line arguments required for typical operation will be added here as the project evolves. For now, please refer to the --help output of the binary.)
This project is licensed under the MIT License. See the LICENSE file for details.
