Skip to main content

Ethereum staking node orchestrator

Project description

Ethereum Staking Node

PyPI version Python 3.11+ License: MIT

A complete Ethereum validator infrastructure running Geth (execution) + Prysm (consensus) + MEV-Boost on AWS ECS.

🏗️ Architecture

graph TB
    subgraph Docker["Docker Container"]
        subgraph Node["staker.node (Process Orchestrator)"]
            Geth["Geth<br/>(Execution)"]
            Beacon["Beacon Chain<br/>(Consensus)"]
            Validator["Validator"]
            MEV["MEV-Boost"]
            VPN["VPN<br/>(optional)"]
        end
    end
    
    subgraph AWS["AWS"]
        ECS["ECS (EC2 Mode)"]
        EBS["EBS Volume"]
        Snapshot["EBS Snapshots"]
        SSM["SSM Parameter Store"]
        Lambda["Snapshot Validator<br/>(Lambda)"]
        ASG["Auto Scaling Group"]
    end
    
    subgraph External["External"]
        Relays["MEV Relays"]
        Peers["P2P Network"]
    end
    
    Docker --> ECS
    ECS --> EBS
    Node --> Snapshot
    Node --> SSM
    Lambda --> SSM
    Lambda --> Snapshot
    MEV --> Relays
    Geth --> Peers
    Beacon --> Peers
    ASG --> ECS

💖 Support

Love this tool? Your support means the world! ❤️

Currency Address QR
₿ BTC bc1qwn7ea6s8wqx66hl5rr2supk4kv7qtcxnlqcqfk
Ξ ETH 0x7cdB1861AC1B4385521a6e16dF198e7bc43fDE5f
ɱ XMR 463fMSWyDrk9DVQ8QCiAir8TQd4h3aRAiDGA8CKKjknGaip7cnHGmS7bQmxSiS2aYtE9tT31Zf7dSbK1wyVARNgA9pkzVxX
◈ BNB 0x7cdB1861AC1B4385521a6e16dF198e7bc43fDE5f

📦 Installation

PyPI (Recommended)

uv pip install staker

From Source

git clone https://github.com/alkalescent/ethereum.git
cd ethereum
make install

📁 Project Structure

src/staker/
├── config.py       # Configuration constants and relay lists
├── environment.py  # Runtime abstraction (AWS vs local)
├── mev.py          # MEV relay selection and health checking
├── node.py         # Main orchestrator - starts/monitors processes
├── snapshot.py     # EBS snapshot management for persistence
└── utils.py        # Utility functions (IP check, log coloring)

✅ Prerequisites

  • uv (Python package manager)
  • Docker
  • AWS CLI (configured with appropriate permissions)
  • Python 3.11+

⚙️ Configuration

Environment Variables

Variable Description Required
DEPLOY_ENV dev (Hoodi testnet) or prod (Mainnet)
ETH_ADDR Fee recipient address
AWS Set to true when running on AWS
DOCKER Set to true when running in container
VPN Set to true to enable VPN

Network Ports

Port Protocol Purpose
30303 TCP/UDP Geth P2P
13000 TCP Prysm P2P
12000 UDP Prysm P2P

🛠️ Development

make install   # Install dependencies
make lint      # Run linting
make format    # Format code
make test      # Run tests
make cov       # Run tests with coverage
make build     # Build Docker image
make run       # Run Docker container
make kill      # Stop container gracefully
make deploy    # Deploy to AWS

⚡ MEV Relays

The node connects to multiple MEV relays for optimal block building:

Mainnet: Flashbots, Ultra Sound, bloXroute, Aestus, Agnostic, Titan, Wenmerge

Hoodi: Flashbots, Aestus, bloXroute, Titan

Relays are automatically tested on startup; unreliable ones are filtered out.

💾 Backup Strategy

  • Snapshots created every 30 days
  • Maximum 3 snapshots retained (90 days)
  • Automatic launch template updates with latest snapshot
  • Graceful shutdown triggers snapshot on instance draining

📊 Version Info

Component Version
Geth 1.16.7
Prysm v7.1.2
MEV-Boost 1.10.1
Base Image Ubuntu 24.04

📄 License

MIT License - see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

staker-0.3.0.tar.gz (136.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

staker-0.3.0-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file staker-0.3.0.tar.gz.

File metadata

  • Download URL: staker-0.3.0.tar.gz
  • Upload date:
  • Size: 136.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for staker-0.3.0.tar.gz
Algorithm Hash digest
SHA256 187519f17cbb1ebee3609626ba2f7f4a01a2248be2ac4a4aa8d65486c39b2be9
MD5 0b8d2a6c9e8df82805f706c21335edca
BLAKE2b-256 2e8d0f3ecb0f26569faa0262ec352bac0670ee3681d4544a24822ccd702cef29

See more details on using hashes here.

Provenance

The following attestation bundles were made for staker-0.3.0.tar.gz:

Publisher: release.yml on alkalescent/ethereum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file staker-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: staker-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for staker-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd884d711a0bd38a588980e12c0b352633b46c0cf398e262678c15e1bc91862f
MD5 046dfc4bb4c2f57ee1e55a4642cb39c6
BLAKE2b-256 866e9a25077e42e3a14b85d4acd5ccb63e291f645c6024efbe5b86d37e767e5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for staker-0.3.0-py3-none-any.whl:

Publisher: release.yml on alkalescent/ethereum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page