The Obol Stack is a local Kubernetes-based development environment for running blockchain networks. It uses k3d (Kubernetes in Docker) to provide a lightweight cluster where you can deploy Ethereum nodes, Layer 2 networks, and other blockchain infrastructure.
Is Obol Stack suitable for production?
No. Obol Stack is designed for local development, testing, and experimentation. For production deployments, use dedicated infrastructure with proper security, redundancy, and monitoring. Refer to the specific network documentation for production deployment guidance.
What operating systems are supported?
Obol Stack supports:
macOS (Darwin) - Intel and Apple Silicon
Linux - amd64 and arm64 architectures
Windows is not currently supported. Windows users can use WSL2 (Windows Subsystem for Linux) to run the Obol Stack.
What are the hardware requirements?
Minimum requirements:
Resource
Requirement
CPU
4 cores
RAM
8 GB
Storage
50 GB
Recommended for running full nodes:
Resource
Requirement
CPU
8+ cores
RAM
16+ GB
Storage
500 GB - 2 TB (depends on network)
Running multiple networks or full Ethereum mainnet nodes significantly increases resource requirements.
Installation
The installer fails with "Docker daemon not running"
Ensure Docker is installed and running:
How do I update the Obol Stack?
Re-run the installer to update to the latest version:
The installer will update the CLI binary while preserving your configuration and data.
How do I uninstall Obol Stack?
Stop and remove the cluster:
Remove installed files:
Optionally remove installed dependencies (kubectl, helm, k3d, etc.) from ~/.local/bin/.
The installer cannot modify /etc/hosts
The installer requires sudo access to add obol.stack to /etc/hosts. If this fails:
Run the installer and skip the hosts configuration.
Obol Stack uses ports 8080 and 8443. Check for conflicts:
Stop any conflicting services before starting the stack.
Previous cluster not cleaned up:
How do I access the Kubernetes dashboard?
Use k9s for a terminal-based dashboard:
Or use kubectl directly:
Can I use my existing kubectl configuration?
Obol Stack uses an isolated kubeconfig file at ~/.config/obol/kubeconfig.yaml. This prevents conflicts with your existing Kubernetes configuration.
To use the Obol Stack's cluster with standard kubectl:
How do I persist data across cluster restarts?
Data is automatically persisted. When you run obol stack down, the cluster stops but data remains in ~/.local/share/obol/. Running obol stack up restores the cluster with all previous data.
Only obol stack purge -f deletes persistent data.
Networks
How do I know which deployment ID was generated?
The deployment ID is displayed when you run obol network install:
You can also list your deployments:
Can I run multiple instances of the same network?
Yes. Each deployment gets a unique namespace. For example:
This creates two separate deployments: ethereum-mainnet and ethereum-hoodi.
How long does it take to sync an Ethereum node?
Sync times vary significantly:
Network
Execution Client
Approximate Time
Hoodi
Reth
2-6 hours
Hoodi
Geth
4-12 hours
Mainnet
Reth
1-3 days
Mainnet
Geth
3-7 days
Sync times depend on your hardware, network connection, and current chain state. Consensus clients with checkpoint sync typically sync in minutes.
# Check pod status
obol kubectl describe pod -n <namespace> <pod-name>
# Check events
obol kubectl get events -n <namespace>
# Check persistent volume claims
obol kubectl get pvc -n <namespace>
# View all pods in namespace
obol kubectl get pods -n <network>-<id>
# Stream logs from a specific pod
obol kubectl logs -n <network>-<id> <pod-name> -f
# View logs from all pods with a label
obol kubectl logs -n <network>-<id> -l app=execution -f
obol stack up
# List installed networks
ls ~/.config/obol/networks/
# Use the correct format
obol network sync ethereum/correct-id
# Check Prometheus pods
obol kubectl get pods -n monitoring
# Check ServiceMonitors
obol kubectl get servicemonitors -A