Ethereum Staking Node
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.
Metadata
Release files for staker 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| staker-0.4.1.tar.gz | 140.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| staker-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 159.3 kB
Release files / staker-0.4.1.tar.gz
| Download URL | staker-0.4.1.tar.gz |
|---|---|
| Size | 140.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0910f0746bfac5a5bacba0f42fcc70459241c14049d6088be0c27537a7443d59
|
|
BLAKE2b-256 checksum How to use checksums |
0f4d1f778ea0e3df13380d548e97bf4f078bb1626b35dbcf1ef3e78be4247ca3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency logRelease files / staker-0.4.1-py3-none-any.whl
| Download URL | staker-0.4.1-py3-none-any.whl |
|---|---|
| Size | 19.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
184f7702242104b506e485b8b45d58d1b3586e458d72bd9d75d20af5303591e2
|
|
BLAKE2b-256 checksum How to use checksums |
3de73d4e35b75dfa6b8dcd09f8d0c6cdedef39583241edb7eeae644528998147
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency log