| description | Deploy blockchain networks on your local Obol Stack |
|---|
The Obol Stack supports installing multiple blockchain networks on your local Kubernetes cluster. Each network installation creates a unique deployment with its own namespace, allowing you to run multiple instances simultaneously.
View all available networks:
obol network listCurrently supported networks:
| Network | Description |
|---|---|
| ethereum | Full Ethereum node (execution + consensus clients) |
| aztec | Aztec Layer 2 sequencer node |
Installing a network follows a two-step process:
- Install - Generate configuration and save to disk
- Sync - Deploy the configuration to the cluster
This separation allows you to review and modify configuration before deployment.
obol network install <network> [flags]This creates a deployment directory at ~/.config/obol/networks/<network>/<id>/ containing:
values.yaml- Configuration values (editable)helmfile.yaml- Deployment definition
# Auto-selects if only one deployment exists
obol network sync
# By type (auto-selects if only one ethereum deployment)
obol network sync ethereum
# By full identifier
obol network sync <network>/<id>
# Sync all deployments at once
obol network sync --allThis deploys the configuration to your Kubernetes cluster using Helmfile.
# Auto-selects if only one deployment exists
obol network delete
# By type (auto-selects if only one of that type)
obol network delete ethereum
# By full identifier
obol network delete <network>/<id>This removes both the Kubernetes resources and local configuration.
Deploy a full Ethereum node with configurable execution and consensus clients.
| Flag | Description | Options | Default |
|---|---|---|---|
--id |
Deployment identifier | Any string | Network name (e.g. mainnet), then petname |
--network |
Ethereum network | mainnet, sepolia, hoodi | mainnet |
--execution-client |
Execution layer client | reth, geth, nethermind, besu, erigon, ethereumjs | reth |
--consensus-client |
Consensus layer client | lighthouse, prysm, teku, nimbus, lodestar, grandine | lighthouse |
{% tabs %} {% tab title="Hoodi testnet" %} Deploy an Ethereum node on Hoodi testnet with default clients:
# Install configuration (ID defaults to "hoodi")
obol network install ethereum --network=hoodi
# Deploy to cluster
obol network sync ethereum/hoodi{% endtab %}
{% tab title="Mainnet with specific clients" %} Deploy a mainnet node with Geth and Prysm:
obol network install ethereum \
--id=mainnet-prod \
--network=mainnet \
--execution-client=geth \
--consensus-client=prysm
obol network sync ethereum/mainnet-prod{% endtab %}
{% tab title="Multiple deployments" %} Run mainnet and testnet nodes simultaneously:
obol network install ethereum --network=mainnet
obol network install ethereum --network=hoodi
obol network sync ethereum/mainnet
obol network sync ethereum/hoodi{% endtab %} {% endtabs %}
{% hint style="warning" %} Full Ethereum nodes require significant resources. Mainnet execution clients need 1+ TB of storage and can take days to sync. Consider using testnets for development. {% endhint %}
# View pod status
obol kubectl get pods -n ethereum-<id>
# Check execution client logs
obol kubectl logs -n ethereum-<id> -l app=execution -f
# Check consensus client logs
obol kubectl logs -n ethereum-<id> -l app=consensus -fDeploy an Aztec Layer 2 sequencer node for the privacy-focused Ethereum rollup.
| Flag | Description | Options | Default |
|---|---|---|---|
--id |
Deployment identifier | Any string | Network name (e.g. mainnet), then petname |
--network |
Aztec network | mainnet | mainnet |
--attester-private-key |
Attester private key (hex) | Required | None |
--l1-execution-url |
L1 execution RPC URL | URL | ERPC endpoint |
--l1-consensus-url |
L1 consensus RPC URL | URL | Public endpoint |
obol network install aztec \
--attester-private-key=<YOUR_PRIVATE_KEY> \
--l1-execution-url=https://geth-prysm-mainnet-1.gcp.obol.tech/ \
--l1-consensus-url=https://prysm-geth-mainnet-1.gcp.obol.tech/Deploy to the cluster:
obol network sync aztec/<id>{% hint style="info" %} You can use your own Ethereum node endpoints or the in-cluster ERPC endpoint by changing the L1 URL flags. {% endhint %}
| Resource | Request | Limit |
|---|---|---|
| CPU | 4 cores | 8 cores |
| Memory | 16 GB | 32 GB |
| Storage | 1 TB | - |
{% hint style="warning" %} Ensure your machine has sufficient resources before deploying an Aztec node. {% endhint %}
obol kubectl get namespaces | grep -E "ethereum|aztec"$EDITOR ~/.config/obol/networks/<network>/<id>/values.yaml
# Re-deploy (auto-selects if only one deployment, otherwise specify)
obol network sync <network>/<id># Auto-selects if only one deployment exists
obol network delete
# Or specify explicitly
obol network delete <network>/<id>{% hint style="warning" %} Deletion is permanent. All blockchain data stored in the deployment will be lost. {% endhint %}