Node Setup Guide
Complete guide to running your own Ethereum node. Choose execution and consensus clients, configure hardware, and maintain a fully synced node.
Hardware Requirements
Storage
2+ TB
NVMe SSD recommended
RAM
16+ GB
32 GB for archive
CPU
4+ Cores
8 cores recommended
Network
25+ Mbps
Unmetered preferred
Execution Clients
The execution client (formerly "Eth1 client") processes transactions and executes smart contracts.
Geth
GoThe original and most widely used Ethereum client
~900 GB (full)
16 GB+
~1 week
- Most documentation
- Battle-tested
- Strong community
- Higher resource usage
- Slower sync
Erigon
GoOptimized for archive node operation and fast sync
~2 TB (archive)
16 GB+
~3-5 days
- Fastest sync
- Efficient storage
- Archive-friendly
- Less documentation
- Different RPC compatibility
Reth
RustNew high-performance client built in Rust
~900 GB
8 GB+
~2-3 days
- Very fast
- Low resource usage
- Modern codebase
- Newer/less tested
- Smaller community
Nethermind
C#Enterprise-focused client with extensive features
~900 GB
16 GB+
~1 week
- Rich metrics
- Good for enterprise
- Active development
- Higher memory usage
- More complex setup
Consensus Clients
The consensus client (beacon node) handles proof-of-stake consensus and coordinates with validators.
Prysm
GoMost popular consensus client with extensive tooling
Lighthouse
RustHigh-performance client focused on security
Teku
JavaEnterprise-grade client by ConsenSys
Nimbus
NimLightweight client optimized for resource-constrained devices
Client Diversity Matters
Running minority clients helps network security. If a bug affects the majority client, it could cause issues for the entire network. Consider using less common client combinations.
Setup Process
Hardware Preparation
Ensure you have adequate hardware: SSD storage, sufficient RAM, stable internet
Install Dependencies
Install Docker, or build tools if compiling from source
Configure Execution Client
Set up Geth, Erigon, or your chosen execution client
Configure Consensus Client
Set up Prysm, Lighthouse, or your chosen beacon chain client
Connect Clients
Link execution and consensus clients via JWT authentication
Wait for Sync
Monitor sync progress and wait for full synchronization
Quick Start with Docker
version: "3.8"
services:
# Execution Client (Geth)
geth:
image: ethereum/client-go:stable
container_name: geth
restart: unless-stopped
ports:
- "8545:8545" # HTTP RPC
- "8546:8546" # WebSocket
- "8551:8551" # Auth RPC (for consensus client)
- "30303:30303" # P2P
volumes:
- geth-data:/root/.ethereum
- ./jwt.hex:/jwt.hex:ro
command:
- --http
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,engine
- --http.vhosts=*
- --http.corsdomain=*
- --ws
- --ws.addr=0.0.0.0
- --ws.api=eth,net,web3
- --authrpc.addr=0.0.0.0
- --authrpc.port=8551
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/jwt.hex
- --syncmode=snap
# Consensus Client (Lighthouse)
lighthouse:
image: sigp/lighthouse:latest
container_name: lighthouse
restart: unless-stopped
depends_on:
- geth
ports:
- "9000:9000" # P2P
- "5052:5052" # HTTP API
volumes:
- lighthouse-data:/root/.lighthouse
- ./jwt.hex:/jwt.hex:ro
command:
- lighthouse
- beacon_node
- --network=mainnet
- --execution-endpoint=http://geth:8551
- --execution-jwt=/jwt.hex
- --http
- --http-address=0.0.0.0
- --checkpoint-sync-url=https://beaconstate.info
volumes:
geth-data:
lighthouse-data:1. Generate JWT Secret
openssl rand -hex 32 > jwt.hex2. Start the Node
docker-compose up -dMonitoring Your Node
Essential Checks
Sync Status
curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'Block Number
curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'Peer Count
curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}'Lighthouse Status
curl http://localhost:5052/eth/v1/node/syncingNeed Help with Node Setup?
Join our community or use ChainLens managed infrastructure for hassle-free access.