Ethereum
Ethereum Protocol Node Runner
This protocol implementation provides support for running Ethereum RPC nodes on AWS using the Universal Blockchain Node Runner. It supports multiple execution and consensus client combinations with flexible deployment options.
Overview of Deployment Architectures
The Ethereum protocol supports two deployment modes:
Single Node Deployment
A single EC2 instance running both execution and consensus clients, suitable for development, testing, and small-scale production use.
┌─────────────────────────────────────────────────────────────┐
│ VPC (Default) │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Public Subnet ││
│ │ ┌─────────────────────────────────────────────────────┐││
│ │ │ EC2 Instance (Ethereum Node) │││
│ │ │ ┌──────────────┐ ┌──────────────┐ │││
│ │ │ │ Execution │ │ Consensus │ │││
│ │ │ │ Client │◄─┤ Client │ │││
│ │ │ │ (Geth/Reth) │ │ (Lighthouse) │ │││
│ │ │ └──────────────┘ └──────────────┘ │││
│ │ │ ┌─────────────────────────────────────────────┐ │││
│ │ │ │ EBS Volume (/data) - 3+ TB gp3 │ │││
│ │ │ └─────────────────────────────────────────────┘ │││
│ │ └─────────────────────────────────────────────────────┘││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
High Availability (HA) Deployment
Multiple EC2 instances behind an Application Load Balancer with auto-scaling for production workloads.
┌─────────────────────────────────────────────────────────────┐
│ VPC (Default) │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Application Load Balancer ││
│ │ (Port 8545 RPC) ││
│ └─────────────────────────────────────────────────────────┘│
│ │ │
│ ┌───────────────────────────┼───────────────────────────┐ │
│ │ Auto Scaling Group │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Node 1 │ │ Node 2 │ │ Node N │ │ │
│ │ │ Exec + Cons │ │ Exec + Cons │ │ Exec + Cons │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Supported Configurations
The Ethereum protocol supports multiple execution and consensus client combinations for client diversity:
Execution Clients
- Geth - Go Ethereum, most popular execution client
- Reth - Rust-based execution client, high performance
- Erigon - Efficient execution client with lower storage requirements
- Besu - Java-based execution client by Hyperledger
- Nethermind - Perfect .NET execution client with extreme performance, fast sync, fast RPC, and a lightweight archive mode
Consensus Clients
- Lighthouse - Rust-based consensus client
- Prysm - Go-based consensus client
- Teku - Java-based consensus client
- Caplin - Erigon's integrated consensus client
Available Configurations
| Configuration | Execution | Consensus | Best For |
|---|---|---|---|
| geth-<version>-lighthouse-<version>-full.yml | Geth | Lighthouse | General purpose, most tested |
| reth-<version>-lighthouse-<version>-archive.yml | Reth | Lighthouse | High performance, fast sync |
| erigon-<version>-caplin-archive.yml | Erigon | Caplin (built-in) | Lower storage, integrated consensus |
| erigon-<version>-prysm-<version>-archive.yml | Erigon | Prysm | Client diversity with external CL |
| besu-<version>-teku-<version>-full.yml | Besu | Teku | Enterprise deployments |
| nethermind-<version>-teku-<version>-full.yml | Nethermind | Teku | Performance, fast sync, fast RPC |
Note: Configuration file names include the pinned client versions (shown as
<version>above). For the exact current filenames, runls node_modules/aws-bnr-blueprint-ethereum/configurations/, or simply copy the matching sample fromsamples/— it already setsCLIENT_CONFIGfor you.
Infrastructure Requirements
Recommended Instance Types
| Network | Deployment | Instance Type | vCPUs | Memory | Storage |
|---|---|---|---|---|---|
| Mainnet (Full) | Single Node | r7g.2xlarge | 8 | 64 GB | 2.5 TB gp3 |
| Mainnet (Archive) | Single Node | i8g.4xlarge | 16 | 128 GB | 3.75 TB NVMe |
| Mainnet (Full HA) | HA (2 nodes) | r7g.2xlarge | 8 each | 64 GB each | 2.5 TB gp3 each |
| Sepolia | Single Node | r7g.xlarge | 4 | 32 GB | 1.5 TB gp3 |
| Hoodi | Single Node | r7g.xlarge | 4 | 32 GB | 200 GB gp3 |
*For cost estimates, use the AWS Pricing Calculator with your specific region and commitment level.
Note: Archive nodes use i8g.4xlarge with NVMe instance store for maximum I/O performance (<1ms latency, 250K+ IOPS). Full nodes use r7g.2xlarge with gp3 EBS for cost-effective persistent storage.
Storage Requirements
| Network | Node Type | Current Size | Growth Rate | Recommended | Type | IOPS | Throughput |
|---|---|---|---|---|---|---|---|
| Mainnet | Full | ~2 TB | ~50 GB/month | 2.5 TB | gp3 | 8,000 | 700 MB/s |
| Mainnet | Archive | ~3 TB | ~100 GB/month | 3.75 TB | Instance Store (NVMe) | 250K+ | 10+ GB/s |
| Sepolia | Full | ~920 GB (measured 2026-10; ~510 GB with post-Prague history) | not yet measured; expected to rise after Glamsterdam | 1.5 TB | gp3 | 3,000 | 250 MB/s |
| Hoodi | Full | ~125 GB (measured 2026-10) | not yet measured | 200 GB | gp3 | 3,000 | 250 MB/s |
These sizes assume ETH_CONSENSUS_SUPERNODE="false", the default. Supernode mode adds about 470–720 GB for blob data on any network (see Supernode Mode): use about 4 TB for a mainnet full node, 1 TB for Hoodi and 2 TB for Sepolia.
Storage Type Selection:
- Full Nodes: Use gp3 EBS volumes for cost-effective persistent storage
- Archive Nodes: Use instance store (NVMe) for maximum I/O performance with ephemeral storage
- Reth, Erigon archive configurations use i8g.4xlarge with 3.75TB NVMe
- <1ms latency vs 5-10ms for EBS
- 250K+ IOPS vs 16K max for gp3
- Note: Data is lost on instance stop/termination
Network Traffic
- P2P Traffic: ~3 TB/month outbound (mainnet, supernode mode — includes blob column serving)
- RPC Traffic: Varies based on usage
- Checkpoint Sync: Significantly reduces initial sync time
Note: Supernode mode (default) increases P2P bandwidth by ~30x for blob data compared to a regular node. This is well within the capacity of recommended instance types but may increase data transfer costs by ~$50-150/month depending on peer demand.
Running multiple protocols? Each deployment creates an independent CloudFormation stack. Total costs are additive — use the tables above per protocol.
Setup Instructions
There are two ways to deploy an Ethereum node.
Option 1: AI-Driven Deployment (Recommended)
Deploy with a single prompt. In Kiro (or your AI assistant of choice), run:
@deploy an Ethereum mainnet RPC node in us-east-1
The AI assistant will guide you through infrastructure selection, configuration, deployment, and initial healthcheck. For full setup, see Getting Started.
Option 2: Manual Deployment
This section focuses on Ethereum-specific configuration options and client selection.
Step 1: Configure Environment
Copy the appropriate sample configuration:
# For mainnet single Geth node
cp node_modules/aws-bnr-blueprint-ethereum/samples/.env-mainnet-geth-lighthouse-full .env
# For mainnet Reth archive node
cp node_modules/aws-bnr-blueprint-ethereum/samples/.env-mainnet-reth-lighthouse-archive .env
# For mainnet Nethermind full node
cp node_modules/aws-bnr-blueprint-ethereum/samples/.env-mainnet-nethermind-teku-full .env
# For HA deployment
cp node_modules/aws-bnr-blueprint-ethereum/samples/.env-mainnet-geth-lighthouse-full-ha .env
# For a Hoodi testnet node (smallest and fastest to sync, about an hour)
cp node_modules/aws-bnr-blueprint-ethereum/samples/.env-hoodi-geth-lighthouse-full .env
Edit .env with your AWS account details:
AWS_ACCOUNT_ID="your-account-id"
AWS_REGION="us-east-1"
Step 2: Choose Client Combination
Select your preferred client combination by setting CLIENT_CONFIG to one of the file names in configurations/ (replace <version> with the pinned version — the matching sample already sets this for you):
# Most popular combination
CLIENT_CONFIG="geth-<version>-lighthouse-<version>-full.yml"
# High performance option
CLIENT_CONFIG="reth-<version>-lighthouse-<version>-archive.yml"
# Erigon with built-in Caplin consensus
CLIENT_CONFIG="erigon-<version>-caplin-archive.yml"
# Erigon with external Prysm consensus
CLIENT_CONFIG="erigon-<version>-prysm-<version>-archive.yml"
# Performance, fast sync, and fast RPC with Nethermind + Teku
CLIENT_CONFIG="nethermind-<version>-teku-<version>-full.yml"
Step 3: Deploy
CDK bootstrap is a one-time setup step — see Getting Started.
# Deploy the stack
npx cdk deploy --json --outputs-file deploy-output.json
For advanced options (HA mode, multiple stacks, maintenance), see the Deployment Guide.
Step 4: Monitor Synchronization
Initial synchronization can take 6-48 hours depending on:
- Client combination chosen
- Network conditions
- Whether checkpoint sync is used
Monitor progress via CloudWatch dashboard:
# Get dashboard name from deployment output
DASHBOARD_NAME=$(cat deploy-output.json | jq -r '..|.DashboardName? | select(. != null)')
echo "Dashboard: https://console.aws.amazon.com/cloudwatch/home?region=$AWS_REGION#dashboards:name=$DASHBOARD_NAME"
Key metrics to watch:
- c1_blocks_behind: Execution client sync status (should reach 0)
- c2_blocks_behind: Consensus client sync distance (should reach 0)
- c1_block_height: Current execution block
- c2_block_height: Current consensus slot
Step 5: Verify Node Operation
Once synchronized, test the RPC endpoint:
# Get instance ID
INSTANCE_ID=$(cat deploy-output.json | jq -r '..|.InstanceId? | select(. != null)')
# Connect via SSM
aws ssm start-session --target $INSTANCE_ID --region $AWS_REGION
# Check service status
sudo systemctl status node
# View logs
sudo docker logs execution -f
sudo docker logs consensus -f
Test RPC API (from within VPC):
# Get internal IP
NODE_INTERNAL_IP=$(aws ec2 describe-instances --instance-ids $INSTANCE_ID \
--query 'Reservations[*].Instances[*].PrivateIpAddress' --output text)
# Query latest block
curl -X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
http://$NODE_INTERNAL_IP:8545
Configuration Options
Checkpoint Sync
Checkpoint sync dramatically reduces initial sync time (from days to hours):
# Mainnet
ETH_CONSENSUS_CHECKPOINT_SYNC_URL="https://beaconstate.ethstaker.cc"
# Sepolia
ETH_CONSENSUS_CHECKPOINT_SYNC_URL="https://checkpoint-sync.sepolia.ethpandaops.io"
# Hoodi
ETH_CONSENSUS_CHECKPOINT_SYNC_URL="https://checkpoint-sync.hoodi.ethpandaops.io"
Pick any provider from the maintained list — https://eth-clients.github.io/checkpoint-sync-endpoints/ — if one is unreachable. Endpoints do come and go (the previously used beaconstate.info domain stopped resolving).
Supernode Mode (Lighthouse — PeerDAS)
Since the Ethereum Fusaka upgrade (December 2025), PeerDAS (EIP-7594) replaced full blob distribution with Data Availability Sampling. Under PeerDAS, regular beacon nodes only store a small subset of data columns (typically 4 out of 128) and cannot serve full blobs via the /eth/v1/beacon/blob_sidecars API.
The blueprint default and all Lighthouse samples set ETH_CONSENSUS_SUPERNODE="false": a regular node is enough for RPC and needs far less disk. Opt in to --supernode, which stores all 128 data columns, if:
- The node serves as an L1 data source for L2 rollup nodes (Base, OP Stack, etc.)
- You need the blob sidecars API to return complete blob data
- You want to contribute to network-wide data availability
# Opt in: full supernode (128 columns), needed to serve blobs
ETH_CONSENSUS_SUPERNODE="true"
# Alternative: semi-supernode (64 columns) — enough to reconstruct blobs, lower bandwidth
ETH_CONSENSUS_SUPERNODE="semi"
# Default: regular node (4 columns), far less disk, but the blob API will NOT work
ETH_CONSENSUS_SUPERNODE="false"
Resource impact of supernode mode:
- Bandwidth: ~30x more blob-related P2P traffic (~5-15 MB/s additional sustained)
- Storage: Lighthouse keeps blob data for the ~18-day retention window (4,096 epochs, a protocol minimum) and prunes older data. Measured on Hoodi in October 2026 at about 13.5 blobs per block: 0.265 MB per blob for all 128 columns, about 25 GB per day, so ~470 GB for the full window, and up to ~720 GB if blocks stay at the 21-blob maximum. Semi-supernode needs about half that. A regular node (
"false", 4 columns) needs about 1/32: ~15 GB (up to ~23 GB). After a checkpoint sync, Lighthouse backfills the whole window within hours, so a new node reaches this size quickly. - CPU/Memory: negligible impact
Note: This setting only applies to Lighthouse-based configurations. Prysm, Teku, and Caplin (Erigon) handle PeerDAS differently and are not affected.
Important: Changing this setting on an existing deployment, in either direction, needs the beacon database deleted and a re-sync via checkpoint sync (see Blob Sidecars API Returns Error for the commands). Adding --supernode does not backfill historical data columns, and Lighthouse ignores a reduction: it logs Reducing CGC is currently not supported without a resync and will have no effect and keeps all columns. Check the effective value with curl http://<ip>:5052/eth/v1/node/identity | jq .data.metadata.custody_group_count (128 for a supernode, 4 for a regular node). Checkpoint sync takes a few minutes; the execution data is untouched.
Nethermind Configuration Notes
The Nethermind + Teku configuration runs Nethermind 2.x. Figures below are from the Nethermind 2.0.0 release benchmarks, measured on Ethereum mainnet.
- Performance: block processing at chain tip is 1.80× (8 vCPU) to 2.55× (16 vCPU) faster than the previous release, with p99 down from 1,646 ms to 208 ms on 16 vCPU.
eth_calllatency is 15–27% lower, and throughput is up to 36% higher on arm64. - Fast sync: a mainnet full node reaches chain tip in about 2–3 hours (128.6 min on 16 vCPU, 192 min on 8 vCPU).
- Lightweight archive: Nethermind 2.x keeps archive history in the flat state database. A full mainnet archive is about 2.1 TB, and rolling-window or per-address retention can cut that further. This blueprint ships a full-node configuration.
Configuration defaults:
- Flat state database: new nodes sync into Nethermind's flat state layout, the default since 2.0.
- RPC endpoints: HTTP JSON-RPC on port
8545and WebSocket on port8546, both bound to the instance's internal IP. Enabled modules:eth,subscribe,trace,txpool,web3,proof,net,parity,debug,admin,health,rpc. - Engine API: bound to
127.0.0.1:8551, so only the co-located consensus client can reach it. - Health endpoint:
GET http://<internal-ip>:8545/healthreturns200when the node is synced and has peers, and503otherwise. For HA deployments, setHA_ALB_HEALTHCHECK_PATH="/health"so the load balancer routes traffic only to synced nodes. SizeHA_ALB_HEALTHCHECK_GRACE_PERIOD_MINto cover the initial sync. - Prometheus metrics: exposed on
http://<internal-ip>:6060/metrics. The port is not opened in the security group. - Snap serving: fresh nodes also serve snap sync data to peers, which adds outbound P2P bandwidth. To turn it off, add
--Sync.SnapServingEnabled=falseto the execution command. eth_getLogsrange: by default a singleeth_getLogsoreth_getFilterLogsrequest can span at most 10,000 blocks (the 2.1 default). If your workload needs wider ranges, add--Receipt.MaxBlockDepth=<blocks>to the execution command.
See the Nethermind documentation for every available option.
Sepolia Storage and History Pruning
Measured on 2 October 2026 with geth 1.17.5 and Lighthouse 8.2.2 (--supernode), default flags, a few hours after sync, at the chain tip (about 11.83M blocks). Breakdown from geth db inspect:
| Data | Size |
|---|---|
| geth block history (ancient store: bodies 538 GiB, receipts 128 GiB, headers 6 GiB) | ~673 GB |
| geth state and indexes (storage trie 143 GiB, storage snapshot 77 GiB, contract code 39 GiB, account trie and snapshot 35 GiB, transaction index 7 GiB) | ~233 GB |
| Lighthouse beacon database (supernode, before blob data had built up) | ~74 GB |
| Total on disk | ~980 GB |
The Lighthouse figure was measured before blob storage reached its steady state. With the sample's ETH_CONSENSUS_SUPERNODE="false", expect ~15 GB instead, so ~920 GB in total. With supernode mode, expect ~470–720 GB (see Supernode Mode). The totals below are for the measured node.
This is a full node, not an archive node (gcmode=full, 90,000 blocks of state history). Most of the space is block bodies and receipts, which geth keeps back to genesis by default (--history.chain=all).
geth can drop old block history with prune-history, which runs offline (stop the node first) and takes seconds:
| Option | Keeps blocks from | Total on disk | Saving |
|---|---|---|---|
Default (all) | genesis | ~980 GB | — |
postmerge | 1,450,409 (the Merge) | ~980 GB | ~0: Sepolia's pre-Merge history is tiny |
postprague | 7,836,331 (Prague, March 2025) | ~570 GB | ~410 GB (42%) |
# On the instance, as root
systemctl stop node.service
docker run --rm -v /data/execution:/var/lib/geth/data ethereum/client-go:<version> \
--sepolia --datadir /var/lib/geth/data prune-history --history.chain postprague
systemctl start node.service
After pruning, geth starts normally with the blueprint's unchanged flags and logs Chain history is pruned earliest=7,836,331. In testing it then upgraded in place to a new geth and Lighthouse release on the pruned data.
What pruning breaks: for blocks before the prune point, the node returns pruned history unavailable (error code 4444) for:
eth_getBlockByNumberandeth_getBlockByHash, even withfullTx=falseeth_getBlockReceipts,eth_getTransactionReceipteth_getLogsranges that include those blockseth_getTransactionByHash(the transaction index already covers only the last 2,350,000 blocks by default, so older lookups fail either way)
Headers, state at recent blocks, and everything from the prune point onward keep working. Pruning can't be undone without re-importing history, so keep all if you serve historical blocks, receipts or logs (indexers, explorers, backfills).
Snapshot Support
For Ethereum, checkpoint sync (above) is the recommended fast-sync method. Block snapshot download is also supported through the generic SNAPSHOT_ENABLED / SNAPSHOT_DOWNLOAD_URL settings — see the Configuration Reference for these variables.
Troubleshooting
Node Not Syncing
- Check if containers are running:
sudo docker ps
- View execution client logs:
sudo docker logs execution --tail 100 -f
- View consensus client logs:
sudo docker logs consensus --tail 100 -f
High Memory Usage
Ethereum nodes require significant memory. If experiencing OOM issues:
- Increase instance size (e.g., r7g.2xlarge → r7g.4xlarge)
- Reduce cache size in client configuration
- Consider using Erigon for lower memory footprint
Slow Sync
- Verify checkpoint sync URL is working
- Check network connectivity and peer count
- Consider using Reth for faster sync times
- Ensure sufficient IOPS on storage volume
RPC Not Responding
- Verify node is fully synced (blocks_behind = 0)
- Check security group allows traffic on port 8545
- Verify RPC is bound to internal IP correctly
- Test from within VPC using CloudShell
Blob Sidecars API Returns Error (Lighthouse)
If you see BAD_REQUEST: Insufficient data columns to reconstruct blobs when calling /eth/v1/beacon/blob_sidecars/{slot}:
- Verify
ETH_CONSENSUS_SUPERNODEis set to"true"or"semi"in your.envfile (the default is"false") - If you changed this setting on an existing deployment, you must re-sync the beacon:
# Stop the node
sudo systemctl stop node
# Delete beacon database
sudo rm -rf /data/consensus/beacon
# Start the node (will checkpoint sync)
sudo systemctl start node
- Wait for checkpoint sync to complete (~2-5 minutes) and backfill to reach needed slots
This is required post-Pectra (May 2025) due to PeerDAS (EIP-7594). Without supernode mode, Lighthouse only stores 4 out of 128 data columns and cannot reconstruct full blobs.
See the Troubleshooting Guide for detailed diagnostics.
Upgrades
Upgrading Client Versions
- Copy the configuration file to the new versions and update the image tags, for example
geth-1.17.10-lighthouse-8.3.2-full.yml→geth-1.17.11-lighthouse-8.3.2-full.yml - Update
CLIENT_CONFIGin.envto the new file name - Redeploy:
npx cdk deploy --json --outputs-file deploy-output.json
On a single-node stack, the redeploy stops and starts the same instance, and node setup re-runs against the existing chain data on /data, so there's no re-sync. cdk deploy returns before setup has finished; watch /var/log/cloud-init-output.log for Node deployment completed successfully. See How a redeploy applies changes in the Deployment Guide for the details, including which changes create a new stack instead.
- The node is down for a minute or two while the containers are recreated with the new images.
- Keep the same execution and consensus clients: a version bump keeps the stack name, including a move between a release candidate and a stable release (
lighthouse-8.3.0-rc.0→lighthouse-8.3.0). Switching clients (for example geth → reth) changes the stack name, socdk deploycreates a new stack that syncs from scratch. - Check the release notes for database format changes first. A release that can't open the previous version's data (Reth 1.x → 2.x was one) needs a new node: deploy it as a separate stack with a different
STACK_NAME_PREFIX, let it sync, then destroy the old one. - Upgrade after the execution client has finished its initial snap sync. In testing, geth restarted in the middle of its initial snap sync failed to start again (
missing trie node) and had to re-sync. That happens with any restart, not only an upgrade.
Rolling Updates (HA Only)
HA instances are replaced one at a time with a rolling update, keeping at least one in service. New instances start with empty data volumes and sync before they pass the ALB health check. See the Deployment Guide.
Cost Optimization
Storage Optimization
- Use gp3 instead of io2 for most workloads (3x cheaper)
- Right-size storage based on network (mainnet needs 3+ TB)
- Consider Instance Store for temporary high-performance needs
Compute Optimization
- Use ARM-based instances (r7g) for 20% cost savings vs x86
- Use Savings Plans for 30-50% discount on long-term deployments
- Scale down testnet nodes to smaller instance types
Network Optimization
- Limit peer connections to reduce outbound traffic
- Use VPC endpoints for AWS service communication
- Consider traffic shaping for high-traffic RPC nodes
See the Deployment Guide for detailed cost optimization strategies.
Security Considerations
- RPC endpoints bind to internal IP only (not 0.0.0.0)
- P2P ports allow external connectivity for network participation
- Access control via Security Groups
- No SSH access - use AWS Systems Manager Session Manager
- Encrypted EBS volumes
- IAM roles with least privilege
FAQ
Q: Which client combination should I choose?
A: For most users, Geth + Lighthouse is recommended as it's the most tested and widely used. For faster sync, try Reth + Lighthouse. For lower storage, use Erigon + Lighthouse. For performance, fast sync, and fast RPC, use Nethermind + Teku.
Q: How long does initial sync take?
A: With checkpoint sync: 6-24 hours. Without checkpoint sync: 2-7 days depending on client and network conditions.
Q: Can I switch client combinations?
A: Yes, but you'll need to resync from scratch. Update CLIENT_CONFIG and redeploy; because the client names are part of the stack name, this creates a new stack. You can deploy multiple clients in paralell on their own nodes.
Q: Do I need to run both execution and consensus clients?
A: Yes, Ethereum requires both clients after The Merge. They communicate via the Engine API.
Q: Can I use this for validator nodes?
A: This configuration is optimized for RPC nodes. Validator nodes have different requirements and are not covered by this implementation.
Additional Resources
Client Release Channels
| Client | Type | Repo | Query method | Version line | Prereleases |
|---|---|---|---|---|---|
| Geth | EL | ethereum/go-ethereum | releases/latest | * | stable only |
| Reth | EL | paradigmxyz/reth | releases/latest | * | stable only |
| Erigon | EL+CL | erigontech/erigon | releases/latest | * | stable only |
| Besu | EL | hyperledger/besu | tags (semver) | * | exclude *-RC* |
| Nethermind | EL | NethermindEth/nethermind | releases/latest | * | stable only |
| Lighthouse | CL | sigp/lighthouse | releases/latest | * | stable only |
| Prysm | CL | OffchainLabs/prysm | releases/latest | * | stable only |
| Teku | CL | Consensys/teku | releases/latest | * | stable only |
Column legend — Repo: canonical
owner/repo(link goes to the releases page). Query method:releases/latest= newest non-prerelease via GitHub API (https://api.github.com/repos/{repo}/releases/latest);tags= list/tagsand pick the highest matching semver;releases= list/releasesand pick the newest matching the prerelease policy;pinned-file= read the named file at the given ref. Version line: constrains updates to a release line (*= any). Prereleases: whether beta/RC tags are eligible.Notes:
Besudoes not return a usablereleases/latest(its newest GitHub release object is not a stable release), so resolve it from semvertagsand skip*-RC*and non-semver tags (develop,dev,canary).Prysmis queried fromOffchainLabs/prysm(the repoprysmaticlabs/prysmnow redirects there).
Support
For issues and questions:
- Check Troubleshooting Guide
- Review Configuration Reference
- Open a GitHub issue