Compare commits

..
Author SHA1 Message Date
claude 2253b8a949 linea besu: add validate-gas-price: false opt-out to x-upstreams 2026-09-29 06:00:53 +00:00
claude b67022e0a2 deploy: regenerate compose from vibe-node main bf6eed4575a1 2026-09-29 04:29:28 +00:00
claude 9fceb4f4fd hemi-mainnet: pin reachable GETH_TBC_SEEDS so TBC cannot go peerless across regens
DNS-only seeds burst-die (64 peers, 2s cumulative handshake timeout) and TBC
makes no dials at all; the header restore then stalls (968254 on 2026-09-29,
967460 on 2026-09-22) and op-node wedges on 'failed to fetch previous keystone'
because canonical BTC headers are missing from full TBC.

Pinned list matches the proven host-local workaround on us-16, where an nft
redirect (192.168.0.0/26:8333 -> :18333) serves /root/hemi-tbc-header-peer.py,
so these addresses only need to be dialable, not real bitcoin nodes. Landing
them in the tracked compose because regens wipe the .env COMPOSE_FILE append
(observed 09-29 03:06 and 03:56 UTC).
2026-09-29 04:07:41 +00:00
claude eafe2fb3da deploy: regenerate compose from vibe-node main 36a48d1a045b 2026-09-29 01:30:29 +00:00
sebastian 80e6a818d9 Merge pull request 'bob-mainnet: add official rollup.json with fork times' (#91) from issue-5328 into main
Reviewed-on: #91
2026-09-29 01:26:11 +00:00
sebastian c3ada4a51b Merge pull request 'Fix plasma-consensus observer: trusted_only=false, drop invalid trusted_peers block (third regression, 1.1.0 migration)' (#92) from plasma-consensus-trusted-only-fix into main
Reviewed-on: #92
2026-09-29 01:25:09 +00:00
claude 4f4b904129 erigon3: bump Dockerfile VERSION v3.5.3->v3.7.0 2026-09-28 14:15:08 +00:00
claude 3a4bbcb166 plasma: fix trusted_only and remove trusted_peers blocks for plasma-consensus 1.1.0 2026-09-28 14:07:09 +00:00
claudeandMistral Vibe 174f95ef7e bitcoin-cash: bump bitcoind 0.33.11->0.33.13 for mainnet; regen besu 26.8.1->26.9.0 from context.yml
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-28 12:40:53 +00:00
claudeandMistral Vibe ad89fbc778 linea: bump besu to 2.3.0-20260923-8d01643 for sepolia
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-28 09:38:34 +00:00
claude b162a351be bob: add mainnet rollup.json with Jovian and Karst fork times 2026-09-28 09:31:33 +00:00
claude 43c800e430 plasma: restore trusted_peers to mainnet non-validator.toml
Restore the [[network.trusted_peers]] array-of-tables that was silently
dropped during the 0.15.0->1.1.0 config-schema migration (PR #89).

The trusted_peers entries ensure the observer can connect to the Plasma
mainnet bootstrap nodes even with trusted_only=true.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-28 08:26:49 +00:00
claude c4b30a617f deploy: regenerate compose from vibe-node main ef3800e94a17 2026-09-28 08:11:35 +00:00
claude 123f4cd696 Bump prysm to v7.1.8
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-28 05:06:06 +00:00
claude 8b565d8112 deploy: regenerate compose from vibe-node main 0126bdae8360 2026-09-28 01:34:22 +00:00
sebastian 98de9095d6 Merge pull request 'plasma-consensus 1.1.0: config-schema migration for non-validator.toml (plasma.mainnet)' (#89) from plasma-consensus-1.1.0 into main
Reviewed-on: #89
2026-09-28 01:30:39 +00:00
sebastian f253c4dfc1 Merge pull request 'Bump lighthouse v8.2.1→v8.2.2 (ethereum-beacon-mainnet-lighthouse-pruned-blobs)' (#88) from vupd/5299-lighthouse-v8.2.2 into main
Reviewed-on: #88
2026-09-28 01:28:22 +00:00
claudeandMistral Vibe fd73721e33 plasma: bump plasma-consensus to v1.1.0 with config schema migration
- Bump plasma-consensus node version from 0.15.0 to 1.1.0
- Update non-validator.toml schema: replace [validators.N] with [network.bls_peer_ids] + [chain.static_committee.N]
- Add [chain.aquila] section with mainnet activation_height=33300000
- Convert [[network.bootstrap_nodes]] to indexed [network.bootstrap_nodes.N] tables
- Remove deprecated [[network.trusted_peers]] section
- Regenerate compose files with new config

BREAKING: Requires in-place consensus-DB migration. Downgrade to 0.15.0 is unsupported after first 1.1.0 start.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-27 23:10:18 +00:00
claudeandMistral Vibe 672f626bc1 nimbus: bump ethereum node_version multiarch-v26.7.0->multiarch-v26.8.0
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-27 19:50:39 +00:00
claude a3abe11192 morph: bump node to v0.6.3 + regen (lighthouse v8.2.2, hemi skip-sync-start-check)
Regenerates compose with:
- morph node: 0.6.0 -> 0.6.3
- lighthouse: v8.2.1 -> v8.2.2 (from parent main)
- hemi op-node: OP_NODE_L2_SKIP_SYNC_START_CHECK=false -> true (from parent main)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-27 16:37:28 +00:00
claude 7db1a2b004 ethereum: bump lighthouse to v8.2.2 in beacon-mainnet hand-maintained compose 2026-09-27 13:04:39 +00:00
claude c1555f4fe5 deploy: regenerate compose from vibe-node main 62b68509ea8d 2026-09-27 12:29:53 +00:00
claude 4b2ca610a1 rootstock: bump rskj to VETIVER-9.0.4 (mainnet + bamboo) 2026-09-27 09:53:38 +00:00
claudeandMistral Vibe 84f1917010 ripple: bump rippled to 3.3.0
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-27 07:52:02 +00:00
claude 7b2872b156 deploy: regenerate compose from vibe-node main 8bf394560b3d 2026-09-27 06:20:51 +00:00
sebastian 9a130a7581 Merge pull request 'Fork-time fixes: doma, hashkeychain, katana-testnet (riding reth v2.5.2 bump)' (#86) from vupd/5202-reth-v2.5.2 into main
Reviewed-on: #86
2026-09-27 06:15:25 +00:00
claude 7e29b29b47 Merge pull request 'gnosis-chiado: rotate Caplin identity to fix peer isolation' (#85) from issue-5109 into main 2026-09-26 15:25:34 +00:00
claude 1bc28a8689 deploy: regenerate compose from vibe-node main 805abf31fd25 2026-09-26 10:15:33 +00:00
claude 62de679587 Merge pull request 'avalanche: Helicon hard fork fix (C-Chain api-max-duration string format)' (#83) from issue-5034 into main 2026-09-25 19:25:51 +00:00
claude 020daa569a Revert op-reth client_version from v2.5.2 to v2.4.3 (fix PR #5204 regression)
PR #5204 incorrectly bumped op.clients.reth.client_version (op-reth image)
from v2.4.3 to v2.5.2. The us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth
registry has no v2.5.2 tag, causing deploy failures on chains like bob.sepolia
and soneium.mainnet that inherit the default op-reth client without override.

This reverts only the op-reth version change, keeping the intended top-level
reth (ghcr.io/paradigmxyz/reth) bump to v2.5.2 intact.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-24 15:52:44 +00:00
claude f1adbf7210 deploy: regenerate compose from vibe-node main 87606b9799ab 2026-09-24 15:35:32 +00:00
claude dc27f33384 plasma-mainnet: regenerate compose with IP env and --nat flag for observer 2026-09-24 12:49:05 +00:00
claude 7daf0ca6ea plasma: pin trusted bootstrap peers for mainnet observer
Add trusted_peers configuration with observer-cs-1, observer-cs-4,
observer-cs-9 to fix P2P peering issue. Set trusted_only=true.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-24 12:42:08 +00:00
claudeandMistral Vibe 84791f056e base-sepolia: upgrade op-reth and op-node to v1.2.0 to fix cached-invalid block 47209126
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-24 12:38:40 +00:00
claude ebec8ae814 fork times: fix PAST gaps for blast, bob, doma, hashkeychain, katana (reth v2.5.2 bump) 2026-09-24 09:42:17 +00:00
claude 0b79da5ab8 reth: bump Dockerfile RETH_VERSION to v2.5.2 2026-09-24 09:35:32 +00:00
claude 795881d155 deploy: regenerate compose from vibe-node main b9bfd30fae30 2026-09-24 07:22:02 +00:00
claude d202fa4140 deploy: regenerate compose from vibe-node main eaca054b37e3 2026-09-23 17:45:25 +00:00
robandClaude Fable 5.1 848fd47082 manta-pacific: archive variant only (--full pruner backlog stalls the engine on the Caldera snapshot)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KjqejYycVyVvrxV9aTDhgX
2026-09-23 15:09:46 +00:00
claude 855bd92f2f Add /caplin-nodekey to node-key-globs.txt for Erigon3+Caplin nodes 2026-09-23 13:17:46 +00:00
claude dca5c5f0a7 deploy: regenerate compose from vibe-node main f0676d6098d2 2026-09-23 11:32:09 +00:00
robandClaude Fable 5.1 fc0e057658 manta-pacific: new Caldera stack - op-reth v2.3.1 (storage v1) + op-node 1.16.1 altda + op-alt-da Celestia w/ S3 read-fallback; pruned/archive trace; fork overrides; drop dead op-geth 5.2 variant
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KjqejYycVyVvrxV9aTDhgX
2026-09-23 11:24:01 +00:00
robandClaude Fable 5.1 968268142c drpc/drpc-free: host.docker.internal -> literal 172.17.0.1 (docker0) instead of host-gateway magic (Docker 28 + carrier-less docker0 breaks dshackle recreate; sg-9 2026-09-22/23)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KjqejYycVyVvrxV9aTDhgX
2026-09-23 11:17:45 +00:00
robandClaude Fable 5.1 2097356937 robinhood-mainnet: add Foundation delayed backup feed as second node.feed.input.url (dedupe by seq, no reconnect gap)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KjqejYycVyVvrxV9aTDhgX
2026-09-23 10:59:44 +00:00
claude 1a279029cd deploy: regenerate compose from vibe-node main 2717d9ed1f64 2026-09-23 10:39:49 +00:00
claude 6a5e59ef0d add karst_time/karstTime to katana-mainnet rollup.json+genesis.json (activation 2026-09-23T16:00:01Z) 2026-09-23 10:03:27 +00:00
claude 3486b807af bump op-reth on op.lisk.mainnet from v2.4.0 to v2.4.2; regen katana with OP_NODE_P2P_DISABLE=true
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-23 06:52:45 +00:00
claude 53b9598421 avalanche: helicon hardfork - fix api-max-duration from number 0 to string '0s' for v1.15.0 compatibility 2026-09-22 16:53:42 +00:00
258 changed files with 16539 additions and 30543 deletions
@@ -67,7 +67,7 @@ services:
- --metrics-server.addr=0.0.0.0
- --metrics-server.port=6070
- --node.batch-poster.enable=false
- --node.feed.input.url=wss://feed.mainnet.chain.robinhood.com
- --node.feed.input.url=wss://feed.mainnet.chain.robinhood.com,wss://delayed-feed.mainnet.chain.robinhood.com
- --node.sequencer=false
- --node.staker.enable=false
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
@@ -151,7 +151,7 @@ services:
context: ./berachain
dockerfile: beacon-kit.Dockerfile
args:
BEACONKIT_VERSION: ${BERACHAIN_BARTIO_BEACON_KIT_VERSION:-v1.4.0-rc3}
BEACONKIT_VERSION: ${BERACHAIN_BARTIO_BEACON_KIT_VERSION:-v1.4.1}
BEACONKIT_IMAGE: ${BERACHAIN_BARTIO_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
ports:
- 15527:15527
@@ -152,7 +152,7 @@ services:
context: ./berachain
dockerfile: beacon-kit.Dockerfile
args:
BEACONKIT_VERSION: ${BERACHAIN_BARTIO_BEACON_KIT_VERSION:-v1.4.0-rc3}
BEACONKIT_VERSION: ${BERACHAIN_BARTIO_BEACON_KIT_VERSION:-v1.4.1}
BEACONKIT_IMAGE: ${BERACHAIN_BARTIO_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
ports:
- 19467:19467
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
bitcoin-cash-mainnet:
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_MAINNET_BITCOIND_VERSION:-0.33.11}
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_MAINNET_BITCOIND_VERSION:-0.33.13}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
+27 -28
View File
@@ -4878,7 +4878,7 @@
"trace"
],
"network": "worldchain",
"node": "kona",
"node": null,
"relay": null,
"stack": "op",
"type": "archive",
@@ -4895,7 +4895,7 @@
"trace"
],
"network": "worldchain",
"node": "node",
"node": null,
"relay": null,
"stack": "op",
"type": "archive",
@@ -6207,24 +6207,6 @@
"lisk-sepolia-op-geth-pruned-pebble-path"
]
},
{
"chain": "pacific-mainnet",
"client": "geth",
"compose_file": "op/geth/manta-pacific-mainnet-op-geth-archive-pebble-hash",
"drpc_chain": "manta-pacific",
"features": [
"hash",
"pebble"
],
"network": "manta",
"node": null,
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"manta-pacific-mainnet-op-geth-archive-pebble-hash"
]
},
{
"chain": "mainnet",
"client": "geth",
@@ -7231,7 +7213,7 @@
"leveldb"
],
"network": "worldchain",
"node": "kona",
"node": null,
"relay": null,
"stack": "op",
"type": "archive",
@@ -7267,7 +7249,7 @@
"pebble"
],
"network": "worldchain",
"node": "kona",
"node": null,
"relay": null,
"stack": "op",
"type": "pruned",
@@ -7285,7 +7267,7 @@
"leveldb"
],
"network": "worldchain",
"node": "node",
"node": null,
"relay": null,
"stack": "op",
"type": "archive",
@@ -7303,7 +7285,7 @@
"pebble"
],
"network": "worldchain",
"node": "node",
"node": null,
"relay": null,
"stack": "op",
"type": "pruned",
@@ -8286,6 +8268,23 @@
"lisk-mainnet-op-reth-pruned-trace"
]
},
{
"chain": "pacific-mainnet",
"client": "reth",
"compose_file": "op/reth/manta-pacific-mainnet-op-reth-archive-trace",
"drpc_chain": "manta-pacific",
"features": [
"trace"
],
"network": "manta",
"node": null,
"relay": null,
"stack": "op",
"type": "archive",
"volumes": [
"manta-pacific-mainnet-op-reth-archive-trace"
]
},
{
"chain": "mainnet",
"client": "reth",
@@ -8825,7 +8824,7 @@
"trace"
],
"network": "worldchain",
"node": "kona",
"node": null,
"relay": null,
"stack": "op",
"type": "pruned",
@@ -8842,7 +8841,7 @@
"trace"
],
"network": "worldchain",
"node": "node",
"node": null,
"relay": null,
"stack": "op",
"type": "archive",
@@ -8859,7 +8858,7 @@
"trace"
],
"network": "worldchain",
"node": "node",
"node": null,
"relay": null,
"stack": "op",
"type": "minimal",
@@ -8893,7 +8892,7 @@
"trace"
],
"network": "worldchain",
"node": "kona",
"node": null,
"relay": null,
"stack": "op",
"type": "pruned",
-8
View File
@@ -12,10 +12,6 @@ API="${API:-eth,txpool,net,debug,web3}"
GENESIS_URL="${GENESIS_URL:-https://raw.githubusercontent.com/crypto-org-chain/cronos-mainnet/master/cronosmainnet_25-1/genesis.json}"
SEEDS="${SEEDS:-0d5cf1394a1cfde28dc8f023567222abc0f47534@seed-0.cronos.com:26656,3032073adc06d710dd512240281637c1bd0c8a7b@seed-1.cronos.com:26656,04f43116b4c6c70054d9c2b7485383df5b1ed1da@seed-2.cronos.com:26656,337377dcda43d79c537d2c4d93ad3b698ce9452e@bd-cronos-mainnet-seed-node-01.bdnodes.net:26656}"
STATESYNC_RPC="${STATESYNC_RPC:-https://cronos-rpc.publicnode.com:443}"
PERSISTENT_PEERS="${PERSISTENT_PEERS:-0d5cf1394a1cfde28dc8f023567222abc0f47534@seed-0.cronos.com:26656,3032073adc06d710dd512240281637c1bd0c8a7b@seed-1.cronos.com:26656,04f43116b4c6c70054d9c2b7485383df5b1ed1da@seed-2.cronos.com:26656,337377dcda43d79c537d2c4d93ad3b698ce9452e@bd-cronos-mainnet-seed-node-01.bdnodes.net:26656}"
MAX_NUM_OUTBOUND_PEERS="${MAX_NUM_OUTBOUND_PEERS:-40}"
MAX_NUM_INBOUND_PEERS="${MAX_NUM_INBOUND_PEERS:-80}"
SKIP_TIMEOUT_COMMIT="${SKIP_TIMEOUT_COMMIT:-true}"
MIN_GAS="${MIN_GAS:-5000000000000basecro}"
PRUNING="${PRUNING:-custom}"
PRUNING_KEEP_RECENT="${PRUNING_KEEP_RECENT:-100}"
@@ -60,10 +56,6 @@ sed -i "/^\[evm\]/,/^\[/{s|^max-tx-gas-wanted = .*|max-tx-gas-wanted = $EVM_MAX_
ct_patch_p2p "$CONFIG_DIR/config.toml" "$IP" "${P2P_PORT:-10521}"
ct_merge_seeds "$CONFIG_DIR/config.toml" "$SEEDS"
ct_set_persistent_peers "$CONFIG_DIR/config.toml" "$PERSISTENT_PEERS"
sed -i "s/^max_num_outbound_peers = .*/max_num_outbound_peers = ${MAX_NUM_OUTBOUND_PEERS}/" "$CONFIG_DIR/config.toml"
sed -i "s/^max_num_inbound_peers = .*/max_num_inbound_peers = ${MAX_NUM_INBOUND_PEERS}/" "$CONFIG_DIR/config.toml"
sed -i "s/^skip_timeout_commit = .*/skip_timeout_commit = ${SKIP_TIMEOUT_COMMIT}/" "$CONFIG_DIR/config.toml"
ct_configure_statesync "$CONFIG_DIR/config.toml" "$STATESYNC_RPC" 2000
ct_set_moniker "$CONFIG_DIR/config.toml" "${MONIKER:-rpc-node}"
+1 -1
View File
@@ -19,7 +19,7 @@ services:
- "traefik.http.routers.drpc-free.tls.certresolver=myresolver"
- "traefik.http.routers.drpc-free.rule=Host(`$GW_FREE_DOMAIN`)"
extra_hosts:
- "host.docker.internal:host-gateway"
- "host.docker.internal:172.17.0.1" # literal docker0 IP: Docker 28 cannot resolve host-gateway when docker0 has no carrier (sg-9 gateway outage 2026-09-22/23)
networks:
- chains
logging:
+1 -1
View File
@@ -62,7 +62,7 @@ services:
- "${GW_ALLOW_LIST:+traefik.http.middlewares.gwallowlist.ipallowlist.sourcerange=$GW_ALLOW_LIST}"
- "${GW_ALLOW_LIST:+traefik.http.routers.dshackle.middlewares=gwallowlist}"
extra_hosts:
- "host.docker.internal:host-gateway"
- "host.docker.internal:172.17.0.1" # literal docker0 IP: Docker 28 cannot resolve host-gateway when docker0 has no carrier (sg-9 gateway outage 2026-09-22/23)
networks:
- chains
logging:
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax = docker/dockerfile:1.2
ARG REPO=https://github.com/erigontech/erigon.git
ARG VERSION=v3.5.3
ARG VERSION=v3.7.0
ARG COMMIT=${COMMIT:-${VERSION}}
FROM docker.io/library/golang:1.24.1-alpine3.20 AS builder
@@ -1,7 +1,7 @@
services:
ethereum-beacon-blobs:
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v6.0.1}
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v8.2.2}
restart: unless-stopped
networks:
- chains
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-besu:
image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_MAINNET_BESU_VERSION:-26.8.1}
image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_MAINNET_BESU_VERSION:-26.9.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -115,7 +115,7 @@ services:
- traefik.http.routers.ethereum-mainnet-besu-pruned-bonsai-ws.middlewares=ethereum-mainnet-besu-pruned-bonsai-stripprefix, ipallowlist
ethereum-mainnet-besu-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 18205:18205
@@ -195,6 +195,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-erigon3-archive:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.5.3}
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.7.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-erigon3-minimal:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.5.3}
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.7.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-erigon3:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.5.3}
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.7.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-hoodi-geth-pruned-pebble-path.middlewares=ethereum-hoodi-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-hoodi-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 16917:16917
@@ -201,6 +201,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-hoodi-geth-pruned-pebble-path.middlewares=ethereum-hoodi-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-hoodi-geth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.8}
ports:
- 16917:16917
- 16917:16917/udp
@@ -107,7 +107,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-minimal-pebble-path.middlewares=ethereum-mainnet-geth-minimal-pebble-path-stripprefix, ipallowlist
ethereum-mainnet-geth-minimal-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.8}
ports:
- 19551:19551
- 19551:19551/udp
@@ -168,7 +168,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-leveldb-hash-events.middlewares=ipallowlist
ethereum-mainnet-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 15455:15455
@@ -265,6 +265,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -168,7 +168,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path-events.middlewares=ipallowlist
ethereum-mainnet-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 17023:17023
@@ -267,6 +267,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-mainnet-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 17023:17023
@@ -201,6 +201,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-mainnet-geth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.8}
ports:
- 17023:17023
- 17023:17023/udp
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.middlewares=ethereum-sepolia-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-sepolia-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 19710:19710
@@ -201,6 +201,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -103,7 +103,7 @@ services:
- traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.middlewares=ethereum-sepolia-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-sepolia-geth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.8}
ports:
- 19710:19710
- 19710:19710/udp
@@ -94,7 +94,7 @@ services:
- traefik.http.routers.ethereum-hoodi-nethermind-pruned-rocksdb-trace.middlewares=ethereum-hoodi-nethermind-pruned-rocksdb-trace-stripprefix, ipallowlist
ethereum-hoodi-nethermind-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 15786:15786
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -94,7 +94,7 @@ services:
- traefik.http.routers.ethereum-mainnet-nethermind-pruned-rocksdb-trace.middlewares=ethereum-mainnet-nethermind-pruned-rocksdb-trace-stripprefix, ipallowlist
ethereum-mainnet-nethermind-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 17065:17065
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -94,7 +94,7 @@ services:
- traefik.http.routers.ethereum-sepolia-nethermind-pruned-rocksdb-trace.middlewares=ethereum-sepolia-nethermind-pruned-rocksdb-trace-stripprefix, ipallowlist
ethereum-sepolia-nethermind-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 15835:15835
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-hoodi-reth:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_HOODI_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_HOODI_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
ethereum-hoodi-reth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.8}
ports:
- 15606:15606
- 15606:15606/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-hoodi-reth-pruned:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_HOODI_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_HOODI_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -110,7 +110,7 @@ services:
shm_size: 2gb
ethereum-hoodi-reth-pruned-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.8}
ports:
- 17435:17435
- 17435:17435/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-reth:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
ethereum-mainnet-reth-node:
image: ${ETHEREUM_LIGHTHOUSE_IMAGE:-sigp/lighthouse}:${ETHEREUM_MAINNET_LIGHTHOUSE_VERSION:-v8.2.1}
image: ${ETHEREUM_LIGHTHOUSE_IMAGE:-sigp/lighthouse}:${ETHEREUM_MAINNET_LIGHTHOUSE_VERSION:-v8.2.2}
ports:
- 19563:19563
- 19563:19563/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-reth:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
ethereum-mainnet-reth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 19563:19563
@@ -190,6 +190,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-reth:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
ethereum-mainnet-reth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.8}
ports:
- 19563:19563
- 19563:19563/udp
@@ -33,7 +33,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-reth-minimal:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -52,7 +52,7 @@ services:
args:
LLVM_IMAGE: ${LLVM_IMAGE:-snowstep/llvm}
LLVM_VERSION: ${LLVM_VERSION:-20250912105042}
RETH_VERSION: ${ETHEREUM_MAINNET_RETH_VERSION:-v2.4.1}
RETH_VERSION: ${ETHEREUM_MAINNET_RETH_VERSION:-v2.5.2}
RETH_REPO: ${ETHEREUM_MAINNET_RETH_REPO:-https://github.com/paradigmxyz/reth}
ARCH_TARGET: ${ARCH_TARGET:-native}
PROFILE: ${RETH_BUILD_PROFILE:-maxperf}
@@ -146,7 +146,7 @@ services:
- pruning
ethereum-mainnet-reth-minimal-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 19286:19286
@@ -249,6 +249,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-reth-pruned:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -110,7 +110,7 @@ services:
shm_size: 2gb
ethereum-mainnet-reth-pruned-node:
image: ${ETHEREUM_LIGHTHOUSE_IMAGE:-sigp/lighthouse}:${ETHEREUM_MAINNET_LIGHTHOUSE_VERSION:-v8.2.1}
image: ${ETHEREUM_LIGHTHOUSE_IMAGE:-sigp/lighthouse}:${ETHEREUM_MAINNET_LIGHTHOUSE_VERSION:-v8.2.2}
ports:
- 15150:15150
- 15150:15150/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-reth-pruned:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -110,7 +110,7 @@ services:
shm_size: 2gb
ethereum-mainnet-reth-pruned-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 15150:15150
@@ -191,6 +191,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-mainnet-reth-pruned:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -110,7 +110,7 @@ services:
shm_size: 2gb
ethereum-mainnet-reth-pruned-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.8}
ports:
- 15150:15150
- 15150:15150/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-sepolia-reth:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_SEPOLIA_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_SEPOLIA_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
ethereum-sepolia-reth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 19330:19330
@@ -190,6 +190,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-sepolia-reth:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_SEPOLIA_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_SEPOLIA_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
ethereum-sepolia-reth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.8}
ports:
- 19330:19330
- 19330:19330/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-sepolia-reth-pruned:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_SEPOLIA_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_SEPOLIA_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -110,7 +110,7 @@ services:
shm_size: 2gb
ethereum-sepolia-reth-pruned-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root
ports:
- 17150:17150
@@ -191,6 +191,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
ethereum-sepolia-reth-pruned:
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_SEPOLIA_RETH_VERSION:-v2.4.1}
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_SEPOLIA_RETH_VERSION:-v2.5.2}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -110,7 +110,7 @@ services:
shm_size: 2gb
ethereum-sepolia-reth-pruned-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.7}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.8}
ports:
- 17150:17150
- 17150:17150/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
gnosis-chiado-erigon3-archive:
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.6.0}
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.7.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -65,6 +65,7 @@ services:
- --beacon.api.cors.allow-origins=*
- --beacon.api.port=5555
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
- --caplin.checkpoint-sync-url=https://checkpoint.chiadochain.net
- --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=16986
- --caplin.discovery.tcpport=16986
@@ -88,6 +89,7 @@ services:
- --rpc.overlay.getlogstimeout=${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_GETLOGSTIMEOUT:-5m0s}
- --rpc.overlay.replayblocktimeout=${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_REPLAYBLOCKTIMEOUT:-10s}
- --rpc.returndata.limit=10000000
- --sentinel.staticpeers=/ip4/134.65.192.121/tcp/19000/p2p/16Uiu2HAm1TwYCeKTdwYayAr8Vru7Ku9HKHH7MiWS6G5QuVsVqUy2
- --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_MAX_DOWNLOAD_RATE:-1000mb}
- --torrent.port=26986
- --ws
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
gnosis-chiado-erigon3-minimal:
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.6.0}
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.7.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -65,6 +65,7 @@ services:
- --beacon.api.cors.allow-origins=*
- --beacon.api.port=5555
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
- --caplin.checkpoint-sync-url=https://checkpoint.chiadochain.net
- --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=16010
- --caplin.discovery.tcpport=16010
@@ -89,6 +90,7 @@ services:
- --rpc.overlay.getlogstimeout=${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_GETLOGSTIMEOUT:-5m0s}
- --rpc.overlay.replayblocktimeout=${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_REPLAYBLOCKTIMEOUT:-10s}
- --rpc.returndata.limit=10000000
- --sentinel.staticpeers=/ip4/134.65.192.121/tcp/19000/p2p/16Uiu2HAm1TwYCeKTdwYayAr8Vru7Ku9HKHH7MiWS6G5QuVsVqUy2
- --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_MAX_DOWNLOAD_RATE:-1000mb}
- --torrent.port=26010
- --ws
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
gnosis-chiado-erigon3:
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.6.0}
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.7.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -65,6 +65,7 @@ services:
- --beacon.api.cors.allow-origins=*
- --beacon.api.port=5555
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
- --caplin.checkpoint-sync-url=https://checkpoint.chiadochain.net
- --caplin.discovery.addr=0.0.0.0
- --caplin.discovery.port=16886
- --caplin.discovery.tcpport=16886
@@ -89,6 +90,7 @@ services:
- --rpc.overlay.getlogstimeout=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_GETLOGSTIMEOUT:-5m0s}
- --rpc.overlay.replayblocktimeout=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_REPLAYBLOCKTIMEOUT:-10s}
- --rpc.returndata.limit=10000000
- --sentinel.staticpeers=/ip4/134.65.192.121/tcp/19000/p2p/16Uiu2HAm1TwYCeKTdwYayAr8Vru7Ku9HKHH7MiWS6G5QuVsVqUy2
- --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_MAX_DOWNLOAD_RATE:-1000mb}
- --torrent.port=26886
- --ws
@@ -177,6 +177,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -180,6 +180,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -177,6 +177,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -180,6 +180,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -189,6 +189,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -190,6 +190,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -189,6 +189,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -190,6 +190,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true
# dshackle runs internal lower-bound detectors against each upstream.
# For a nimbus beacon endpoint the epoch detector calls POST /eth/v1/beacon/rewards/attestations/{epoch}
# every ~5 minutes with a hardcoded 5-second internal timeout, while nimbus needs 16-22 seconds
# to replay that historical state. The probe therefore always times out, retries, and
# re-issues the same historical request forever, which pins the node in constant
# historical state replay and has repeatedly degraded the mainnet ethereum node.
# The code path is GenericUpstream.upstreamStart(): if (!getOptions().disableBoundValidation)
# { detectLowerBlock() }. The YAML key is read by ChainOptionsReader as disable-bound-validation.
disable-bound-validation: true
methods:
disabled:
- name: GET#/eth/v2/debug/beacon/states/*
@@ -170,6 +170,8 @@ x-upstreams:
msgSize: 50Mb
url: $${WS_URL}
chain: linea
options:
validate-gas-price: false
method-groups:
enabled:
- debug
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
linea-sepolia:
image: ${LINEA_BESU_IMAGE:-consensys/linea-besu-package}:${LINEA_SEPOLIA_BESU_VERSION:-2.2.0-20260821-8bb72b4}
image: ${LINEA_BESU_IMAGE:-consensys/linea-besu-package}:${LINEA_SEPOLIA_BESU_VERSION:-2.3.0-20260923-8d01643}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -120,7 +120,7 @@ services:
logging: *logging-defaults
morph-mainnet-archive-node:
image: ${MORPH_MORPH_IMAGE:-ghcr.io/morph-l2/node}:${MORPH_MAINNET_MORPH_VERSION:-0.6.0}
image: ${MORPH_MORPH_IMAGE:-ghcr.io/morph-l2/node}:${MORPH_MAINNET_MORPH_VERSION:-0.6.3}
ports:
- 16860:26656
- 16860:26656/udp
+1
View File
@@ -4,6 +4,7 @@
# geth clones, erigon and sonic
**/nodekey
/caplin-nodekey
# besu
key
+2 -1
View File
@@ -27,7 +27,8 @@
"eip1559Elasticity": 6,
"eip1559Denominator": 50,
"eip1559DenominatorCanyon": 250
}
},
"taigaTime": 1746612311
},
"nonce": "0x0",
"timestamp": "0x65da5e57",
+2 -1
View File
@@ -29,5 +29,6 @@
"batch_inbox_address": "0xff00000000000000000000000000000000081457",
"deposit_contract_address": "0x0ec68c5b10f21effb74f2a5c61dfe6b08c0db6cb",
"l1_system_config_address": "0x5531dcff39ec1ec727c4c5d2fc49835368f805a9",
"protocol_versions_address": "0x0000000000000000000000000000000000000000"
"protocol_versions_address": "0x0000000000000000000000000000000000000000",
"taiga_time": 1746612311
}
+3 -1
View File
@@ -25,7 +25,9 @@
"eip1559Elasticity": 6,
"eip1559Denominator": 50,
"eip1559DenominatorCanyon": 250
}
},
"ecotoneTime": 1713999600,
"taigaTime": 1745589600
},
"nonce": "0x0",
"timestamp": "0x659b7460",
+43
View File
@@ -0,0 +1,43 @@
{
"genesis": {
"l1": {
"hash": "0x218132178d65c4bc490aadd93c31535326043fe1fe8fea2d87f26c1da83d45c2",
"number": 19634321
},
"l2": {
"hash": "0x8ed4903b7f9c3f7bb7a09374d63ae9c9852cd9aab1784b433c41dbeb47b4dba2",
"number": 0
},
"l2_time": 1712861987,
"system_config": {
"batcherAddr": "0x08f9f14ff43e112b18c96f0986f28cb1878f1d11",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
}
},
"block_time": 2,
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 1,
"l2_chain_id": 60808,
"regolith_time": 0,
"canyon_time": 0,
"delta_time": 0,
"ecotone_time": 0,
"batch_inbox_address": "0x3a75346f81302aac0333fb5dcdd407e12a6cfa83",
"deposit_contract_address": "0x8adee124447435fe03e3cd24df3f4cae32e65a3e",
"l1_system_config_address": "0xacb886b75d76d1c8d9248cfddfa09b70c71c5393",
"protocol_versions_address": "0x0000000000000000000000000000000000000000",
"da_challenge_address": "0x0000000000000000000000000000000000000000",
"da_challenge_window": 0,
"da_resolve_window": 0,
"use_plasma": false,
"fjord_time": 1720627201,
"granite_time": 1726070401,
"holocene_time": 1736445601,
"isthmus_time": 1746806401,
"jovian_time": 1773325801,
"karst_time": 1790179201
}
+15329 -15329
View File
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -40,5 +40,6 @@
"eip1559Elasticity": 6,
"eip1559Denominator": 50,
"eip1559DenominatorCanyon": 250
}
},
"karst_time": 1788364801
}
+2 -1
View File
@@ -48,5 +48,6 @@
"l2_chain_id": 97477,
"max_sequencer_drift": 600,
"regolith_time": 0,
"seq_window_size": 3600
"seq_window_size": 3600,
"karst_time": 1787673601
}
+2 -1
View File
@@ -51,5 +51,6 @@
"da_challenge_contract_address": "0x0000000000000000000000000000000000000000",
"da_challenge_window": 1,
"da_resolve_window": 1
}
},
"karst_time": 1787068801
}
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
base-sepolia-op-erigon-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.1.0}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.2.0}
ports:
- 18487:18487
- 18487:18487/udp
@@ -90,6 +90,7 @@ services:
- chains
volumes:
- ${BOB_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-bob-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -108,7 +109,7 @@ services:
shm_size: 2gb
bob-mainnet-op-erigon-node:
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.6.2}
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 16071:16071
- 16071:16071/udp
@@ -130,6 +131,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=16071
- KONA_NODE_P2P_LISTEN_UDP_PORT=16071
- KONA_NODE_ROLLUP_CONFIG=/config/rollup.json
- KONA_NODE_RPC_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer
@@ -142,6 +144,7 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -90,6 +90,7 @@ services:
- chains
volumes:
- ${BOB_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-bob-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -108,7 +109,7 @@ services:
shm_size: 2gb
bob-mainnet-op-erigon-node:
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${BOB_MAINNET_NODE_VERSION:-v1.19.2}
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${BOB_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 16071:16071
- 16071:16071/udp
@@ -129,11 +130,11 @@ services:
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_NETWORK=bob-mainnet
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_P2P_LISTEN_TCP_PORT=16071
- OP_NODE_P2P_LISTEN_UDP_PORT=16071
- OP_NODE_ROLLUP_CONFIG=/config/rollup.json
- OP_NODE_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=9545
@@ -149,6 +150,7 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
hashkeychain-mainnet-op-erigon-node:
image: ${HASHKEYCHAIN_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${HASHKEYCHAIN_MAINNET_KONA_VERSION:-v1.6.2}
image: ${HASHKEYCHAIN_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${HASHKEYCHAIN_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 16378:16378
- 16378:16378/udp
@@ -129,6 +129,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=16378
- KONA_NODE_P2P_LISTEN_UDP_PORT=16378
- KONA_NODE_ROLLUP_CONFIG=/config/rollup.json
- KONA_NODE_RPC_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
hashkeychain-mainnet-op-erigon-node:
image: ${HASHKEYCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${HASHKEYCHAIN_MAINNET_NODE_VERSION:-v1.19.2}
image: ${HASHKEYCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${HASHKEYCHAIN_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 16378:16378
- 16378:16378/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
ink-sepolia-op-erigon-node:
image: ${INK_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${INK_SEPOLIA_KONA_VERSION:-v1.6.2}
image: ${INK_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${INK_SEPOLIA_KONA_VERSION:-v1.7.0}
ports:
- 19826:19826
- 19826:19826/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
ink-sepolia-op-erigon-node:
image: ${INK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${INK_SEPOLIA_NODE_VERSION:-v1.19.2}
image: ${INK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${INK_SEPOLIA_NODE_VERSION:-v1.19.6}
ports:
- 19826:19826
- 19826:19826/udp
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
lisk-mainnet-op-erigon-node:
image: ${LISK_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${LISK_MAINNET_KONA_VERSION:-v1.6.2}
image: ${LISK_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${LISK_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 19831:19831
- 19831:19831/udp
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
lisk-mainnet-op-erigon-node:
image: ${LISK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${LISK_MAINNET_NODE_VERSION:-v1.19.3}
image: ${LISK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${LISK_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 19831:19831
- 19831:19831/udp
@@ -107,7 +107,7 @@ services:
shm_size: 2gb
mode-mainnet-op-erigon-node:
image: ${MODE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${MODE_MAINNET_KONA_VERSION:-v1.6.2}
image: ${MODE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${MODE_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 17509:17509
- 17509:17509/udp
@@ -107,7 +107,7 @@ services:
shm_size: 2gb
mode-mainnet-op-erigon-node:
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${MODE_MAINNET_NODE_VERSION:-v1.19.2}
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${MODE_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 17509:17509
- 17509:17509/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
mode-sepolia-op-erigon-node:
image: ${MODE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${MODE_SEPOLIA_KONA_VERSION:-v1.6.2}
image: ${MODE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${MODE_SEPOLIA_KONA_VERSION:-v1.7.0}
ports:
- 18212:18212
- 18212:18212/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
mode-sepolia-op-erigon-node:
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${MODE_SEPOLIA_NODE_VERSION:-v1.19.2}
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${MODE_SEPOLIA_NODE_VERSION:-v1.19.6}
ports:
- 18212:18212
- 18212:18212/udp
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
op-mainnet-op-erigon-node:
image: ${OP_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${OP_MAINNET_KONA_VERSION:-v1.6.2}
image: ${OP_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${OP_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 17509:17509
- 17509:17509/udp
@@ -109,7 +109,7 @@ services:
shm_size: 2gb
op-mainnet-op-erigon-node:
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${OP_MAINNET_NODE_VERSION:-v1.19.2}
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${OP_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 17509:17509
- 17509:17509/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
op-sepolia-op-erigon-node:
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${OP_SEPOLIA_NODE_VERSION:-v1.19.2}
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${OP_SEPOLIA_NODE_VERSION:-v1.19.6}
ports:
- 15373:15373
- 15373:15373/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
soneium-mainnet-op-erigon-node:
image: ${SONEIUM_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${SONEIUM_MAINNET_KONA_VERSION:-v1.6.2}
image: ${SONEIUM_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${SONEIUM_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 18689:18689
- 18689:18689/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
swell-mainnet-op-erigon-node:
image: ${SWELL_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${SWELL_MAINNET_KONA_VERSION:-v1.6.2}
image: ${SWELL_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${SWELL_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 15810:15810
- 15810:15810/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
swell-mainnet-op-erigon-node:
image: ${SWELL_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SWELL_MAINNET_NODE_VERSION:-v1.19.2}
image: ${SWELL_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SWELL_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 15810:15810
- 15810:15810/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
unichain-mainnet-op-erigon-node:
image: ${UNICHAIN_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${UNICHAIN_MAINNET_KONA_VERSION:-v1.6.2}
image: ${UNICHAIN_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${UNICHAIN_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 16415:16415
- 16415:16415/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
unichain-mainnet-op-erigon-node:
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${UNICHAIN_MAINNET_NODE_VERSION:-v1.19.2}
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${UNICHAIN_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 16415:16415
- 16415:16415/udp
@@ -106,7 +106,7 @@ services:
shm_size: 2gb
unichain-sepolia-op-erigon-node:
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${UNICHAIN_SEPOLIA_NODE_VERSION:-v1.19.2}
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${UNICHAIN_SEPOLIA_NODE_VERSION:-v1.19.6}
ports:
- 18196:18196
- 18196:18196/udp
@@ -107,7 +107,7 @@ services:
shm_size: 2gb
zora-mainnet-op-erigon-node:
image: ${ZORA_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZORA_MAINNET_KONA_VERSION:-v1.6.2}
image: ${ZORA_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZORA_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 19360:19360
- 19360:19360/udp
@@ -127,6 +127,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=19360
- KONA_NODE_P2P_LISTEN_UDP_PORT=19360
- KONA_NODE_ROLLUP_CONFIG=/config/rollup.json
- KONA_NODE_RPC_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer
@@ -107,7 +107,7 @@ services:
shm_size: 2gb
zora-mainnet-op-erigon-node:
image: ${ZORA_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${ZORA_MAINNET_NODE_VERSION:-v1.19.2}
image: ${ZORA_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${ZORA_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 19360:19360
- 19360:19360/udp
@@ -107,7 +107,7 @@ services:
shm_size: 2gb
zora-sepolia-op-erigon-node:
image: ${ZORA_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZORA_SEPOLIA_KONA_VERSION:-v1.6.2}
image: ${ZORA_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${ZORA_SEPOLIA_KONA_VERSION:-v1.7.0}
ports:
- 18839:18839
- 18839:18839/udp
@@ -107,7 +107,7 @@ services:
shm_size: 2gb
zora-sepolia-op-erigon-node:
image: ${ZORA_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${ZORA_SEPOLIA_NODE_VERSION:-v1.19.2}
image: ${ZORA_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${ZORA_SEPOLIA_NODE_VERSION:-v1.19.6}
ports:
- 18839:18839
- 18839:18839/udp
@@ -107,7 +107,7 @@ services:
- traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.middlewares=base-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
base-sepolia-archive-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.1.0}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.2.0}
ports:
- 15910:15910
- 15910:15910/udp
@@ -107,7 +107,7 @@ services:
- traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.middlewares=base-sepolia-op-geth-pruned-pebble-path-stripprefix, ipallowlist
base-sepolia-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.1.0}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.2.0}
ports:
- 17022:17022
- 17022:17022/udp
@@ -92,6 +92,7 @@ services:
- chains
volumes:
- ${BOB_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-bob-mainnet-op-geth-archive-leveldb-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -109,7 +110,7 @@ services:
- traefik.http.routers.bob-mainnet-op-geth-archive-leveldb-hash.middlewares=bob-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
bob-mainnet-archive-node:
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.6.2}
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 19046:19046
- 19046:19046/udp
@@ -131,6 +132,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=19046
- KONA_NODE_P2P_LISTEN_UDP_PORT=19046
- KONA_NODE_ROLLUP_CONFIG=/config/rollup.json
- KONA_NODE_RPC_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer
@@ -143,6 +145,7 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,6 +92,7 @@ services:
- chains
volumes:
- ${BOB_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-bob-mainnet-op-geth-archive-leveldb-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -109,7 +110,7 @@ services:
- traefik.http.routers.bob-mainnet-op-geth-archive-leveldb-hash.middlewares=bob-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
bob-mainnet-archive-node:
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${BOB_MAINNET_NODE_VERSION:-v1.19.2}
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${BOB_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 19046:19046
- 19046:19046/udp
@@ -129,11 +130,11 @@ services:
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_NETWORK=bob-mainnet
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_P2P_LISTEN_TCP_PORT=19046
- OP_NODE_P2P_LISTEN_UDP_PORT=19046
- OP_NODE_ROLLUP_CONFIG=/config/rollup.json
- OP_NODE_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=9545
@@ -149,6 +150,7 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,6 +92,7 @@ services:
- chains
volumes:
- ${BOB_MAINNET_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-archive-pebble-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -109,7 +110,7 @@ services:
- traefik.http.routers.bob-mainnet-op-geth-archive-pebble-hash.middlewares=bob-mainnet-op-geth-archive-pebble-hash-stripprefix, ipallowlist
bob-mainnet-archive-node:
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.6.2}
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 17223:17223
- 17223:17223/udp
@@ -131,6 +132,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17223
- KONA_NODE_P2P_LISTEN_UDP_PORT=17223
- KONA_NODE_ROLLUP_CONFIG=/config/rollup.json
- KONA_NODE_RPC_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer
@@ -143,6 +145,7 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,6 +92,7 @@ services:
- chains
volumes:
- ${BOB_MAINNET_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-archive-pebble-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -109,7 +110,7 @@ services:
- traefik.http.routers.bob-mainnet-op-geth-archive-pebble-hash.middlewares=bob-mainnet-op-geth-archive-pebble-hash-stripprefix, ipallowlist
bob-mainnet-archive-node:
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${BOB_MAINNET_NODE_VERSION:-v1.19.2}
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${BOB_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 17223:17223
- 17223:17223/udp
@@ -129,11 +130,11 @@ services:
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_NETWORK=bob-mainnet
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_P2P_LISTEN_TCP_PORT=17223
- OP_NODE_P2P_LISTEN_UDP_PORT=17223
- OP_NODE_ROLLUP_CONFIG=/config/rollup.json
- OP_NODE_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=9545
@@ -149,6 +150,7 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,6 +92,7 @@ services:
- chains
volumes:
- ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-pruned-pebble-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -109,7 +110,7 @@ services:
- traefik.http.routers.bob-mainnet-op-geth-pruned-pebble-hash.middlewares=bob-mainnet-op-geth-pruned-pebble-hash-stripprefix, ipallowlist
bob-mainnet-node:
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.6.2}
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 16363:16363
- 16363:16363/udp
@@ -131,6 +132,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=16363
- KONA_NODE_P2P_LISTEN_UDP_PORT=16363
- KONA_NODE_ROLLUP_CONFIG=/config/rollup.json
- KONA_NODE_RPC_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer
@@ -143,6 +145,7 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,6 +92,7 @@ services:
- chains
volumes:
- ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-pruned-pebble-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -109,7 +110,7 @@ services:
- traefik.http.routers.bob-mainnet-op-geth-pruned-pebble-hash.middlewares=bob-mainnet-op-geth-pruned-pebble-hash-stripprefix, ipallowlist
bob-mainnet-node:
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${BOB_MAINNET_NODE_VERSION:-v1.19.2}
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${BOB_MAINNET_NODE_VERSION:-v1.19.6}
ports:
- 16363:16363
- 16363:16363/udp
@@ -129,11 +130,11 @@ services:
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_NETWORK=bob-mainnet
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_P2P_LISTEN_TCP_PORT=16363
- OP_NODE_P2P_LISTEN_UDP_PORT=16363
- OP_NODE_ROLLUP_CONFIG=/config/rollup.json
- OP_NODE_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=9545
@@ -149,6 +150,7 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,6 +92,7 @@ services:
- chains
volumes:
- ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-bob-mainnet-op-geth-pruned-pebble-path}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -109,7 +110,7 @@ services:
- traefik.http.routers.bob-mainnet-op-geth-pruned-pebble-path.middlewares=bob-mainnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist
bob-mainnet-node:
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.6.2}
image: ${BOB_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BOB_MAINNET_KONA_VERSION:-v1.7.0}
ports:
- 18347:18347
- 18347:18347/udp
@@ -131,6 +132,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=18347
- KONA_NODE_P2P_LISTEN_UDP_PORT=18347
- KONA_NODE_ROLLUP_CONFIG=/config/rollup.json
- KONA_NODE_RPC_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer
@@ -143,6 +145,7 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:

Some files were not shown because too many files have changed in this diff Show More