Deploy an Ethereum POS Node Using Ethereum-Package

·

Environment Preparation

1. Install Docker

Kurtosis relies on Docker as its underlying container runtime. Install Docker based on your operating system and start the service:

$ systemctl start docker  # Start Docker  
$ systemctl enable docker # Enable auto-start  

2. Install Kurtosis CLI

Choose the installation command for your OS:


Deploy a Default Ethereum Network

1. Start a Single-Node Test Chain

Quickly launch a local Ethereum network (execution + consensus layers) with default settings:

$ kurtosis run --enclave my-testnet github.com/ethpandaops/ethereum-package  

Custom Configuration Deployment

1. Create a Config File

Define parameters in network_params.yaml. Example:

participants:  
  - el_type: geth  
    cl_type: lighthouse  
network_params:  
  network: "holesky-shadowfork"  # Supports Shadowfork  
  persistent: true               # Enable persistent storage  
additional_services:  
  - apache                       # Enable file sharing  

2. Run Custom Config

$ kurtosis run --enclave my-testnet github.com/ethpandaops/ethereum-package --args-file network_params.yaml  

Kubernetes Deployment (Optional)

1. Cluster Requirements

2. Container Scheduling

Define tolerations in network_params.yaml:

participants:  
  - el_type: reth  
    cl_type: teku  
    el_tolerations:  
      - key: "gpu-node"  
        operator: "Exists"  
global_tolerations:  
  - key: "node-role.kubernetes.io/master"  
    effect: "NoSchedule"  

Management & Debugging

1. Access Logs

$ kurtosis service logs my-testnet el-1-geth-lighthouse  

2. Download Genesis Files

$ kurtosis files download my-testnet el-genesis-data ~/Downloads  

3. Enter Container Shell

$ kurtosis service shell my-testnet el-1-geth-lighthouse  

Advanced Features

1. Shadowforking

Simulate mainnet forks:

network_params:  
  network: "mainnet-shadowfork-verkle"  # Test Verkle trees  
  electra_fork_epoch: 1                 # Fork block  
  persistent: true  

2. MEV-Boost Integration

Enable Flashbot’s MEV infrastructure:

mev_params:  
  mode: "full"  # Or "mock" for simulation  

3. Monitoring Tools

Includes Prometheus, Grafana, and Blobscan (EIP-4844 analysis).


Cleanup

$ kurtosis enclave rm -f my-testnet  # Delete environment  
$ kurtosis clean -a                  # Purge all resources  

FAQs

Q: How to troubleshoot slow sync issues?
A: Use SSD storage and ensure sufficient bandwidth.

Q: Can I switch clients post-deployment?
A: Yes, but reconfigure network_params.yaml and redeploy.

Q: Is Kubernetes mandatory?
A: No, Docker-only deployments are fully supported.

👉 Explore advanced Ethereum configurations

Note: For cloud deployments, prioritize high-performance storage. Client compatibility varies—check official docs for specifics.

👉 Optimize your node setup with these pro tips