Skip to content

Latest commit

 

History

History
223 lines (156 loc) · 5.53 KB

File metadata and controls

223 lines (156 loc) · 5.53 KB
description Deploy blockchain networks on your local Obol Stack

Installing networks

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.

Available networks

View all available networks:

obol network list

Currently supported networks:

Network Description
ethereum Full Ethereum node (execution + consensus clients)
aztec Aztec Layer 2 sequencer node

Network installation workflow

Installing a network follows a two-step process:

  1. Install - Generate configuration and save to disk
  2. Sync - Deploy the configuration to the cluster

This separation allows you to review and modify configuration before deployment.

Install command

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

Sync command

# 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 --all

This deploys the configuration to your Kubernetes cluster using Helmfile.

Delete command

# 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.

Ethereum network

Deploy a full Ethereum node with configurable execution and consensus clients.

Configuration options

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

Examples

{% 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 %}

Check sync status

# 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 -f

Aztec network

Deploy an Aztec Layer 2 sequencer node for the privacy-focused Ethereum rollup.

Configuration options

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

Example

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 requirements

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 %}

Managing deployments

View deployment status

obol kubectl get namespaces | grep -E "ethereum|aztec"

Modify configuration

$EDITOR ~/.config/obol/networks/<network>/<id>/values.yaml

# Re-deploy (auto-selects if only one deployment, otherwise specify)
obol network sync <network>/<id>

Delete a deployment

# 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 %}