Skip to content

AvarchLLC/reth-docker-compose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Reth Archive Node — Docker Compose

Full Ethereum archive node with complete receipt history from genesis. Uses Paradigm's official snapshot from snapshots.reth.rs to avoid a multi-week resync from scratch.

Stack

Component Image Purpose
Reth ghcr.io/paradigmxyz/reth Execution layer (EL)
Lighthouse sigp/lighthouse Consensus layer (CL)
Prometheus prom/prometheus (optional) Metrics collection
Grafana grafana/grafana (optional) Metrics dashboard

Disk requirements

Data Size
Snapshot download ~170 GB
Reth archive data ~2 TB
Lighthouse beacon ~100 GB
Total needed ~2.3 TB

Quick start

# 1. Configure your data paths
nano .env

# 2. Create directories + JWT secret
chmod +x setup.sh
./setup.sh init

# 3. Download archive snapshot (~170GB, takes a few hours)
./setup.sh snapshot

# 4. Start the node
./setup.sh start

# 5. Check status
./setup.sh status

# 6. Test historic receipt availability
./setup.sh test-receipt

Manual Docker commands

# Download snapshot
docker compose --profile snapshot run --rm snapshot

# Start node
docker compose up -d reth lighthouse

# Watch logs
docker compose logs -f reth
docker compose logs -f lighthouse

# Stop
docker compose down

# Start with monitoring
docker compose --profile monitoring up -d

Ports

Port Protocol Service
8545 HTTP Reth JSON-RPC
8546 WS Reth WebSocket RPC
8551 HTTP Engine API (internal)
30303 TCP/UDP Reth P2P
5052 HTTP Lighthouse API
9000 TCP/UDP Lighthouse P2P
9001 HTTP Reth metrics
5054 HTTP Lighthouse metrics
9090 HTTP Prometheus
3000 HTTP Grafana

Verify no receipt pruning

On startup, check logs for:

Pruner initialized prune_config=PruneConfig { ... receipts: None ... }

receipts: None = full archive receipt history retained ✅

If you see receipts: Some(Distance(...)) — check config/reth.toml.

Fetch a receipt

curl -s -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc":"2.0","id":1,
    "method":"eth_getTransactionReceipt",
    "params":["0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"]
  }' | jq .result

This is the first ever Ethereum transaction (block 46147, Aug 2015). If it returns a receipt object, your archive is fully intact.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages