Skip to main content

Ethereum staking node orchestrator

Project description

Ethereum Staking Node

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

Architecture

┌─────────────────────────────────────────────────────────────┐
│                      staker.node                            │
│                  (Process Orchestrator)                     │
├──────────┬──────────┬──────────┬──────────┬────────────────┤
│   Geth   │  Beacon  │Validator │MEV-Boost │   VPN (opt)    │
│(Execution)│  Chain   │          │          │                │
└──────────┴──────────┴──────────┴──────────┴────────────────┘
                           │
                    ┌──────┴──────┐
                    │   AWS ECS   │
                    │  (EC2 Mode) │
                    └─────────────┘

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 (Holesky 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

Install Dependencies

make install

Lint

make lint

Format

make format

Test

make test

Test with Coverage

make cov

Build Docker Image

make build

Run Docker Container

make run

Stop Container

make kill

Deploy to AWS

make deploy

MEV Relays

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

Mainnet: Flashbots, Ultra Sound, bloXroute, Aestus, Agnostic, Eden, Manifold, Titan, Proof, Wenmerge

Holesky: Flashbots, Aestus, Ultra Sound, bloXroute

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

Private repository.

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.1.0.tar.gz (116.3 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.1.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: staker-0.1.0.tar.gz
  • Upload date:
  • Size: 116.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for staker-0.1.0.tar.gz
Algorithm Hash digest
SHA256 78bcde7a02c59c53e3ecbd955fdbe587eca301b666b223dfda8b05d0f964e31d
MD5 7b179fdeae45a76de6336756add4c7fc
BLAKE2b-256 f4d9335ba8e331634b42cf713d19dccf85fc3f82b496da313e975a9dc40ae982

See more details on using hashes here.

File details

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

File metadata

  • Download URL: staker-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for staker-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 adb2f887b4d51dc99ffb7332767e30abdd1897df3cab79a67f32d70635f2d62c
MD5 801a77a063285b166a2ce93eb079a21d
BLAKE2b-256 a6ad07345758ac53bea0ae415a21158484ba5e6552af6367245790d7a08b36e8

See more details on using hashes here.

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