Node
Everything required to run your own Base node
Base is a secure, low-cost, developer-friendly Ethereum L2 built on Optimism's [OP Stack](https://docs.optimism.io/). This repository contains a Docker build for running a Base node with `base-reth-node` and `base-consensus`. The project is written primarily in Shell, distributed under the MIT License license, first published in 2023. It has gained significant community traction with 68,544 stars and 3,239 forks on GitHub.

Base Node
Base is a secure, low-cost, developer-friendly Ethereum L2 built on Optimism's OP Stack. This repository contains a Docker build for running a Base node with base-reth-node and base-consensus.
Quick Start
-
Ensure you have an Ethereum L1 full node RPC and beacon endpoint available.
-
Choose your network:
- For mainnet: use
.env.mainnet - For testnet: use
.env.sepolia
- For mainnet: use
-
Configure your L1 endpoints in the appropriate
.envfile:bashBASE_NODE_L1_ETH_RPC=<your-preferred-l1-rpc> BASE_NODE_L1_BEACON=<your-preferred-l1-beacon> -
Start the node:
bash# For mainnet (default): docker compose up --build # For testnet: NETWORK_ENV=.env.sepolia docker compose up --build
Supported Clients
- Execution:
base-reth-node - Consensus:
base-consensus
Requirements
Minimum Requirements
- Modern multicore CPU
- 32GB RAM (64GB recommended)
- NVMe SSD drive
- Storage: (2 * current chain size + snapshot size + 20% buffer) to accommodate future growth
- Docker and Docker Compose
Production Hardware Specifications
The following are the hardware specifications we use in production:
Reth Archive Node (recommended)
- Instance: AWS i7i.12xlarge
- Storage: RAID 0 of all local NVMe drives (
/dev/nvme*) - Filesystem: ext4
Configuration
Required Settings
BASE_NODE_L1_ETH_RPC: your Ethereum L1 node RPC endpointBASE_NODE_L1_BEACON: your L1 beacon node endpointBASE_NODE_NETWORK:baseorbase-sepoliaRETH_CHAIN:baseorbase-sepolia
Network Settings
- Mainnet:
RETH_CHAIN=baseBASE_NODE_NETWORK=base- Sequencer:
https://mainnet-sequencer.base.org
- Sepolia:
RETH_CHAIN=base-sepoliaBASE_NODE_NETWORK=base-sepolia- Sequencer:
https://sepolia-sequencer.base.org
Optional Features
- Flashblocks: set
RETH_FB_WEBSOCKET_URL. When set, the execution client runs in Flashblocks mode; otherwise it runs in vanilla mode. - Follow mode: set
BASE_NODE_SOURCE_L2_RPC - Pruning: set
RETH_PRUNING_ARGS
For full configuration options, see .env.mainnet or .env.sepolia.
Testing Flashblocks RPC Methods
When running in Flashblocks mode, you can query a pending block using the Flashblocks RPC:
bashcurl -X POST \ --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["pending", false],"id":1}' \ http://localhost:8545
Snapshots
Snapshots are available to help you sync your node more quickly. See docs.base.org for links and more details on how to restore from a snapshot.
Supported Networks
| Network | Status |
|---|---|
| Mainnet | ✅ |
| Testnet | ✅ |
Troubleshooting
For support please join our Discord and post in 🛠|node-operators. You can alternatively open a new GitHub issue.
Disclaimer
THE NODE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. We make no guarantees about asset protection or security. Usage is subject to applicable laws and regulations.
For more information, visit docs.base.org.
Contributors
Showing top 12 contributors by commit count.