Compare commits

..
Author SHA1 Message Date
claude c9da986c40 morph: bump node_version 0.6.0->0.6.3 2026-09-27 16:14:19 +00:00
116 changed files with 204 additions and 1292 deletions
@@ -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.13}
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_MAINNET_BITCOIND_VERSION:-0.33.11}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
-72
View File
@@ -3699,78 +3699,6 @@
"goat-testnet3-geth-pruned-pebble-path"
]
},
{
"chain": "alpha",
"client": "reth",
"compose_file": "gravity/reth/gravity-alpha-reth-pruned-trace",
"drpc_chain": "gravity-alpha",
"features": [
"trace"
],
"network": "gravity",
"node": "aptosbft",
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"gravity-alpha-reth-pruned-trace",
"gravity-alpha-reth-pruned-trace-consensus"
]
},
{
"chain": "alpha-sepolia",
"client": "reth",
"compose_file": "gravity/reth/gravity-alpha-sepolia-reth-pruned-trace",
"drpc_chain": "gravity-alpha-sepolia",
"features": [
"trace"
],
"network": "gravity",
"node": "aptosbft",
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"gravity-alpha-sepolia-reth-pruned-trace",
"gravity-alpha-sepolia-reth-pruned-trace-consensus"
]
},
{
"chain": "mainnet",
"client": "reth",
"compose_file": "gravity/reth/gravity-mainnet-reth-pruned-trace",
"drpc_chain": "gravity",
"features": [
"trace"
],
"network": "gravity",
"node": "aptosbft",
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"gravity-mainnet-reth-pruned-trace",
"gravity-mainnet-reth-pruned-trace-consensus"
]
},
{
"chain": "testnet",
"client": "reth",
"compose_file": "gravity/reth/gravity-testnet-reth-pruned-trace",
"drpc_chain": "gravity-testnet",
"features": [
"trace"
],
"network": "gravity",
"node": "aptosbft",
"relay": null,
"stack": null,
"type": "pruned",
"volumes": [
"gravity-testnet-reth-pruned-trace",
"gravity-testnet-reth-pruned-trace-consensus"
]
},
{
"chain": "mainnet",
"client": "haqq",
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax = docker/dockerfile:1.2
ARG REPO=https://github.com/erigontech/erigon.git
ARG VERSION=v3.7.0
ARG VERSION=v3.5.3
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:-v8.2.2}
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v6.0.1}
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.9.0}
image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_MAINNET_BESU_VERSION:-26.8.1}
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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 18205:18205
@@ -195,15 +195,6 @@ 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.7.0}
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.5.3}
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.7.0}
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.5.3}
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.7.0}
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.5.3}
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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 16917:16917
@@ -201,15 +201,6 @@ 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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.7}
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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7}
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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 15455:15455
@@ -265,15 +265,6 @@ 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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 17023:17023
@@ -267,15 +267,6 @@ 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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 17023:17023
@@ -201,15 +201,6 @@ 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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7}
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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 19710:19710
@@ -201,15 +201,6 @@ 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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.7}
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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 15786:15786
@@ -175,15 +175,6 @@ 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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 17065:17065
@@ -175,15 +175,6 @@ 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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 15835:15835
@@ -175,15 +175,6 @@ 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/*
@@ -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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.7}
ports:
- 15606:15606
- 15606:15606/udp
@@ -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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.7}
ports:
- 17435:17435
- 17435:17435/udp
@@ -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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 19563:19563
@@ -190,15 +190,6 @@ 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/*
@@ -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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7}
ports:
- 19563:19563
- 19563:19563/udp
@@ -146,7 +146,7 @@ services:
- pruning
ethereum-mainnet-reth-minimal-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 19286:19286
@@ -249,15 +249,6 @@ 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/*
@@ -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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 15150:15150
@@ -191,15 +191,6 @@ 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/*
@@ -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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7}
ports:
- 15150:15150
- 15150:15150/udp
@@ -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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 19330:19330
@@ -190,15 +190,6 @@ 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/*
@@ -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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.7}
ports:
- 19330:19330
- 19330:19330/udp
@@ -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.8.0}
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0}
user: root
ports:
- 17150:17150
@@ -191,15 +191,6 @@ 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/*
@@ -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.8}
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.7}
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.7.0}
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.6.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -65,7 +65,6 @@ 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
@@ -89,7 +88,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
- --sentinel.staticpeers=/ip4/51.210.221.124/tcp/9500/p2p/16Uiu2HAmSnLLjZfkFCythED8tQS5kP4NJKBuMdd1FYE23ZymKwL6,/ip4/65.109.101.48/tcp/9000/p2p/16Uiu2HAm98ceLNE6X3mjVcsu6ZAaKZPPcqKmeofidTDy7UCHyTtY,/ip4/57.131.40.177/tcp/9000/p2p/16Uiu2HAmUwW7LmoMDprx125LQQkt2Q1PCByiZgvVump4E284AtNc,/ip4/65.21.231.153/tcp/9009/p2p/16Uiu2HAmDZLoHHgHXMy8ddkDWNqkRDX3mSuvEiqzpYAmXKxQ7TWj,/ip4/137.74.112.3/tcp/9000/p2p/16Uiu2HAmAyBYYfR8sDE6X1gXtL9oCGZBLfRsVnGJZnDTEMmJfL8N
- --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.7.0}
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.6.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -65,7 +65,6 @@ 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
@@ -90,7 +89,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
- --sentinel.staticpeers=/ip4/51.210.221.124/tcp/9500/p2p/16Uiu2HAmSnLLjZfkFCythED8tQS5kP4NJKBuMdd1FYE23ZymKwL6,/ip4/65.109.101.48/tcp/9000/p2p/16Uiu2HAm98ceLNE6X3mjVcsu6ZAaKZPPcqKmeofidTDy7UCHyTtY,/ip4/57.131.40.177/tcp/9000/p2p/16Uiu2HAmUwW7LmoMDprx125LQQkt2Q1PCByiZgvVump4E284AtNc,/ip4/65.21.231.153/tcp/9009/p2p/16Uiu2HAmDZLoHHgHXMy8ddkDWNqkRDX3mSuvEiqzpYAmXKxQ7TWj,/ip4/137.74.112.3/tcp/9000/p2p/16Uiu2HAmAyBYYfR8sDE6X1gXtL9oCGZBLfRsVnGJZnDTEMmJfL8N
- --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.7.0}
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.6.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -65,7 +65,6 @@ 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
@@ -90,7 +89,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
- --sentinel.staticpeers=/ip4/51.210.221.124/tcp/9500/p2p/16Uiu2HAmSnLLjZfkFCythED8tQS5kP4NJKBuMdd1FYE23ZymKwL6,/ip4/65.109.101.48/tcp/9000/p2p/16Uiu2HAm98ceLNE6X3mjVcsu6ZAaKZPPcqKmeofidTDy7UCHyTtY,/ip4/57.131.40.177/tcp/9000/p2p/16Uiu2HAmUwW7LmoMDprx125LQQkt2Q1PCByiZgvVump4E284AtNc,/ip4/65.21.231.153/tcp/9009/p2p/16Uiu2HAmDZLoHHgHXMy8ddkDWNqkRDX3mSuvEiqzpYAmXKxQ7TWj,/ip4/137.74.112.3/tcp/9000/p2p/16Uiu2HAmAyBYYfR8sDE6X1gXtL9oCGZBLfRsVnGJZnDTEMmJfL8N
- --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_MAX_DOWNLOAD_RATE:-1000mb}
- --torrent.port=26886
- --ws
@@ -177,15 +177,6 @@ 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,15 +180,6 @@ 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,15 +175,6 @@ 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,15 +177,6 @@ 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,15 +180,6 @@ 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,15 +175,6 @@ 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,15 +189,6 @@ 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,15 +190,6 @@ 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,15 +189,6 @@ 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,15 +190,6 @@ 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/*
@@ -1,176 +0,0 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "512m"
max-file: "2"
# Usage:
#
# mkdir rpc && cd rpc
#
# git init
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
# git fetch origin vibe
# git checkout origin/vibe
#
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
#
# env
# ...
# IP=$(curl ipinfo.io/ip)
# DOMAIN=${IP}.traefik.me
# COMPOSE_FILE=base.yml:rpc.yml:gravity/reth/gravity-alpha-reth-pruned-trace.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/gravity-alpha \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
gravity-alpha:
image: ${GRAVITY_RETH_IMAGE:-ghcr.io/galxe/gravity-reth}:${GRAVITY_ALPHA_RETH_VERSION:-v0.2.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
# net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
user: 0:0
ports:
- 13821:13821
- 13821:13821/udp
expose:
- 8545
- 9001
- 8551
entrypoint: [reth, node]
command:
- --chain=gravity-alpha
- --datadir=/execution
- --discovery.port=13821
- --engine.cross-block-cache-size=${GRAVITY_ALPHA_RETH_STATE_CACHE:-4096}
- --engine.memory-block-buffer-target=1024
- --engine.persistence-threshold=0
- --full
- --max-inbound-peers=50
- --max-outbound-peers=50
- --metrics=0.0.0.0:9001
- --nat=extip:${IP}
- --port=13821
- --rpc-cache.max-blocks=10000
- --rpc-cache.max-concurrent-db-requests=2048
- --rpc.gascap=600000000
- --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000
- --rpc.max-logs-per-response=0
- --http
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --ws
- --ws.addr=0.0.0.0
- --ws.api=eth,net,web3,txpool,debug
- --ws.origins=*
- --ws.port=8545
- --authrpc.addr=0.0.0.0
- --authrpc.jwtsecret=/jwtsecret
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${GRAVITY_ALPHA_RETH_PRUNED_TRACE_DATA:-gravity-alpha-reth-pruned-trace}:/execution
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=9001
- prometheus-scrape.path=/metrics
- traefik.enable=true
- traefik.http.middlewares.gravity-alpha-reth-pruned-trace-stripprefix.stripprefix.prefixes=/gravity-alpha
- traefik.http.services.gravity-alpha-reth-pruned-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.gravity-alpha-reth-pruned-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.gravity-alpha-reth-pruned-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.gravity-alpha-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/gravity-alpha`) || Path(`/gravity-alpha/`))}
- ${NO_SSL:+traefik.http.routers.gravity-alpha-reth-pruned-trace.rule=Path(`/gravity-alpha`) || Path(`/gravity-alpha/`)}
- traefik.http.routers.gravity-alpha-reth-pruned-trace.middlewares=gravity-alpha-reth-pruned-trace-stripprefix, ipallowlist
shm_size: 2gb
gravity-alpha-node:
image: ${GRAVITY_APTOSBFT_IMAGE:-ghcr.io/galxe/gravity_node}:${GRAVITY_ALPHA_APTOSBFT_VERSION:-v1.10.0}
user: 0:0
ports:
- 18821:26180
- 18822:26181
- 9001:9001
environment:
- GRAVITY_NETWORK=alpha
- IP=${IP}
entrypoint: [/bin/bash, -c]
command:
- |
# Generate or use existing consensus config
if [ ! -f /config/public_full_node.yaml ]; then
gravity-node init --config-dir /config --chain alpha
fi
# Start the consensus node
exec gravity-node run --config /config/public_full_node.yaml
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${GRAVITY_ALPHA_RETH_PRUNED_TRACE_CONSENSUS_DATA:-gravity-alpha-reth-pruned-trace-consensus}:/data/consensus:rw
- ./gravity/alpha/genesis.blob:/config/genesis.blob:ro
- ./gravity/alpha/public_full_node.yaml:/config/public_full_node.yaml:ro
- ./gravity/alpha/waypoint.txt:/config/waypoint.txt:ro
healthcheck:
test: [CMD-SHELL, wget -qO- http://localhost:9001/health || exit 1]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=9001
volumes:
gravity-alpha-reth-pruned-trace:
gravity-alpha-reth-pruned-trace-consensus:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: gravity-alpha
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
- name: txpool_content # TODO: should be disabled for rollup nodes
...
@@ -1,176 +0,0 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "512m"
max-file: "2"
# Usage:
#
# mkdir rpc && cd rpc
#
# git init
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
# git fetch origin vibe
# git checkout origin/vibe
#
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
#
# env
# ...
# IP=$(curl ipinfo.io/ip)
# DOMAIN=${IP}.traefik.me
# COMPOSE_FILE=base.yml:rpc.yml:gravity/reth/gravity-alpha-sepolia-reth-pruned-trace.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/gravity-alpha-sepolia \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
gravity-alpha-sepolia:
image: ${GRAVITY_RETH_IMAGE:-ghcr.io/galxe/gravity-reth}:${GRAVITY_ALPHA_SEPOLIA_RETH_VERSION:-v0.2.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
# net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
user: 0:0
ports:
- 11338:11338
- 11338:11338/udp
expose:
- 8545
- 9001
- 8551
entrypoint: [reth, node]
command:
- --chain=gravity-alpha-sepolia
- --datadir=/execution
- --discovery.port=11338
- --engine.cross-block-cache-size=${GRAVITY_ALPHA-SEPOLIA_RETH_STATE_CACHE:-4096}
- --engine.memory-block-buffer-target=1024
- --engine.persistence-threshold=0
- --full
- --max-inbound-peers=50
- --max-outbound-peers=50
- --metrics=0.0.0.0:9001
- --nat=extip:${IP}
- --port=11338
- --rpc-cache.max-blocks=10000
- --rpc-cache.max-concurrent-db-requests=2048
- --rpc.gascap=600000000
- --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000
- --rpc.max-logs-per-response=0
- --http
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --ws
- --ws.addr=0.0.0.0
- --ws.api=eth,net,web3,txpool,debug
- --ws.origins=*
- --ws.port=8545
- --authrpc.addr=0.0.0.0
- --authrpc.jwtsecret=/jwtsecret
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${GRAVITY_ALPHA_SEPOLIA_RETH_PRUNED_TRACE_DATA:-gravity-alpha-sepolia-reth-pruned-trace}:/execution
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=9001
- prometheus-scrape.path=/metrics
- traefik.enable=true
- traefik.http.middlewares.gravity-alpha-sepolia-reth-pruned-trace-stripprefix.stripprefix.prefixes=/gravity-alpha-sepolia
- traefik.http.services.gravity-alpha-sepolia-reth-pruned-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.gravity-alpha-sepolia-reth-pruned-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.gravity-alpha-sepolia-reth-pruned-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.gravity-alpha-sepolia-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/gravity-alpha-sepolia`) || Path(`/gravity-alpha-sepolia/`))}
- ${NO_SSL:+traefik.http.routers.gravity-alpha-sepolia-reth-pruned-trace.rule=Path(`/gravity-alpha-sepolia`) || Path(`/gravity-alpha-sepolia/`)}
- traefik.http.routers.gravity-alpha-sepolia-reth-pruned-trace.middlewares=gravity-alpha-sepolia-reth-pruned-trace-stripprefix, ipallowlist
shm_size: 2gb
gravity-alpha-sepolia-node:
image: ${GRAVITY_APTOSBFT_IMAGE:-ghcr.io/galxe/gravity_node}:${GRAVITY_ALPHA_SEPOLIA_APTOSBFT_VERSION:-v1.10.0}
user: 0:0
ports:
- 16338:26180
- 16339:26181
- 9001:9001
environment:
- GRAVITY_NETWORK=alpha-sepolia
- IP=${IP}
entrypoint: [/bin/bash, -c]
command:
- |
# Generate or use existing consensus config
if [ ! -f /config/public_full_node.yaml ]; then
gravity-node init --config-dir /config --chain alpha-sepolia
fi
# Start the consensus node
exec gravity-node run --config /config/public_full_node.yaml
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${GRAVITY_ALPHA_SEPOLIA_RETH_PRUNED_TRACE_CONSENSUS_DATA:-gravity-alpha-sepolia-reth-pruned-trace-consensus}:/data/consensus:rw
- ./gravity/alpha-sepolia/genesis.blob:/config/genesis.blob:ro
- ./gravity/alpha-sepolia/public_full_node.yaml:/config/public_full_node.yaml:ro
- ./gravity/alpha-sepolia/waypoint.txt:/config/waypoint.txt:ro
healthcheck:
test: [CMD-SHELL, wget -qO- http://localhost:9001/health || exit 1]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=9001
volumes:
gravity-alpha-sepolia-reth-pruned-trace:
gravity-alpha-sepolia-reth-pruned-trace-consensus:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: gravity-alpha-sepolia
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
- name: txpool_content # TODO: should be disabled for rollup nodes
...
@@ -1,176 +0,0 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "512m"
max-file: "2"
# Usage:
#
# mkdir rpc && cd rpc
#
# git init
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
# git fetch origin vibe
# git checkout origin/vibe
#
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
#
# env
# ...
# IP=$(curl ipinfo.io/ip)
# DOMAIN=${IP}.traefik.me
# COMPOSE_FILE=base.yml:rpc.yml:gravity/reth/gravity-mainnet-reth-pruned-trace.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/gravity-mainnet \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
gravity-mainnet:
image: ${GRAVITY_RETH_IMAGE:-ghcr.io/galxe/gravity-reth}:${GRAVITY_MAINNET_RETH_VERSION:-v0.2.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
# net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
user: 0:0
ports:
- 14825:14825
- 14825:14825/udp
expose:
- 8545
- 9001
- 8551
entrypoint: [reth, node]
command:
- --chain=gravity
- --datadir=/execution
- --discovery.port=14825
- --engine.cross-block-cache-size=${GRAVITY_MAINNET_RETH_STATE_CACHE:-4096}
- --engine.memory-block-buffer-target=1024
- --engine.persistence-threshold=0
- --full
- --max-inbound-peers=50
- --max-outbound-peers=50
- --metrics=0.0.0.0:9001
- --nat=extip:${IP}
- --port=14825
- --rpc-cache.max-blocks=10000
- --rpc-cache.max-concurrent-db-requests=2048
- --rpc.gascap=600000000
- --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000
- --rpc.max-logs-per-response=0
- --http
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --ws
- --ws.addr=0.0.0.0
- --ws.api=eth,net,web3,txpool,debug
- --ws.origins=*
- --ws.port=8545
- --authrpc.addr=0.0.0.0
- --authrpc.jwtsecret=/jwtsecret
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${GRAVITY_MAINNET_RETH_PRUNED_TRACE_DATA:-gravity-mainnet-reth-pruned-trace}:/execution
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=9001
- prometheus-scrape.path=/metrics
- traefik.enable=true
- traefik.http.middlewares.gravity-mainnet-reth-pruned-trace-stripprefix.stripprefix.prefixes=/gravity-mainnet
- traefik.http.services.gravity-mainnet-reth-pruned-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.gravity-mainnet-reth-pruned-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.gravity-mainnet-reth-pruned-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.gravity-mainnet-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/gravity-mainnet`) || Path(`/gravity-mainnet/`))}
- ${NO_SSL:+traefik.http.routers.gravity-mainnet-reth-pruned-trace.rule=Path(`/gravity-mainnet`) || Path(`/gravity-mainnet/`)}
- traefik.http.routers.gravity-mainnet-reth-pruned-trace.middlewares=gravity-mainnet-reth-pruned-trace-stripprefix, ipallowlist
shm_size: 2gb
gravity-mainnet-node:
image: ${GRAVITY_APTOSBFT_IMAGE:-ghcr.io/galxe/gravity_node}:${GRAVITY_MAINNET_APTOSBFT_VERSION:-v1.10.0}
user: 0:0
ports:
- 19825:26180
- 19826:26181
- 9001:9001
environment:
- GRAVITY_NETWORK=mainnet
- IP=${IP}
entrypoint: [/bin/bash, -c]
command:
- |
# Generate or use existing consensus config
if [ ! -f /config/public_full_node.yaml ]; then
gravity-node init --config-dir /config --chain mainnet
fi
# Start the consensus node
exec gravity-node run --config /config/public_full_node.yaml
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${GRAVITY_MAINNET_RETH_PRUNED_TRACE_CONSENSUS_DATA:-gravity-mainnet-reth-pruned-trace-consensus}:/data/consensus:rw
- ./gravity/mainnet/genesis.blob:/config/genesis.blob:ro
- ./gravity/mainnet/public_full_node.yaml:/config/public_full_node.yaml:ro
- ./gravity/mainnet/waypoint.txt:/config/waypoint.txt:ro
healthcheck:
test: [CMD-SHELL, wget -qO- http://localhost:9001/health || exit 1]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=9001
volumes:
gravity-mainnet-reth-pruned-trace:
gravity-mainnet-reth-pruned-trace-consensus:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: gravity
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
- name: txpool_content # TODO: should be disabled for rollup nodes
...
@@ -1,176 +0,0 @@
---
x-logging-defaults: &logging-defaults
driver: json-file
options:
max-size: "512m"
max-file: "2"
# Usage:
#
# mkdir rpc && cd rpc
#
# git init
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
# git fetch origin vibe
# git checkout origin/vibe
#
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
#
# env
# ...
# IP=$(curl ipinfo.io/ip)
# DOMAIN=${IP}.traefik.me
# COMPOSE_FILE=base.yml:rpc.yml:gravity/reth/gravity-testnet-reth-pruned-trace.yml
#
# docker compose up -d
#
# curl -X POST https://${IP}.traefik.me/gravity-testnet \
# -H "Content-Type: application/json" \
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
services:
gravity-testnet:
image: ${GRAVITY_RETH_IMAGE:-ghcr.io/galxe/gravity-reth}:${GRAVITY_TESTNET_RETH_VERSION:-v0.2.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
# net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
user: 0:0
ports:
- 10052:10052
- 10052:10052/udp
expose:
- 8545
- 9001
- 8551
entrypoint: [reth, node]
command:
- --chain=gravity-testnet
- --datadir=/execution
- --discovery.port=10052
- --engine.cross-block-cache-size=${GRAVITY_TESTNET_RETH_STATE_CACHE:-4096}
- --engine.memory-block-buffer-target=1024
- --engine.persistence-threshold=0
- --full
- --max-inbound-peers=50
- --max-outbound-peers=50
- --metrics=0.0.0.0:9001
- --nat=extip:${IP}
- --port=10052
- --rpc-cache.max-blocks=10000
- --rpc-cache.max-concurrent-db-requests=2048
- --rpc.gascap=600000000
- --rpc.max-blocks-per-filter=0
- --rpc.max-connections=50000
- --rpc.max-logs-per-response=0
- --http
- --http.addr=0.0.0.0
- --http.api=eth,net,web3,txpool,debug
- --http.corsdomain=*
- --http.port=8545
- --ws
- --ws.addr=0.0.0.0
- --ws.api=eth,net,web3,txpool,debug
- --ws.origins=*
- --ws.port=8545
- --authrpc.addr=0.0.0.0
- --authrpc.jwtsecret=/jwtsecret
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${GRAVITY_TESTNET_RETH_PRUNED_TRACE_DATA:-gravity-testnet-reth-pruned-trace}:/execution
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=9001
- prometheus-scrape.path=/metrics
- traefik.enable=true
- traefik.http.middlewares.gravity-testnet-reth-pruned-trace-stripprefix.stripprefix.prefixes=/gravity-testnet
- traefik.http.services.gravity-testnet-reth-pruned-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.gravity-testnet-reth-pruned-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.gravity-testnet-reth-pruned-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.gravity-testnet-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/gravity-testnet`) || Path(`/gravity-testnet/`))}
- ${NO_SSL:+traefik.http.routers.gravity-testnet-reth-pruned-trace.rule=Path(`/gravity-testnet`) || Path(`/gravity-testnet/`)}
- traefik.http.routers.gravity-testnet-reth-pruned-trace.middlewares=gravity-testnet-reth-pruned-trace-stripprefix, ipallowlist
shm_size: 2gb
gravity-testnet-node:
image: ${GRAVITY_APTOSBFT_IMAGE:-ghcr.io/galxe/gravity_node}:${GRAVITY_TESTNET_APTOSBFT_VERSION:-v1.10.0}
user: 0:0
ports:
- 15052:26180
- 15053:26181
- 9001:9001
environment:
- GRAVITY_NETWORK=testnet
- IP=${IP}
entrypoint: [/bin/bash, -c]
command:
- |
# Generate or use existing consensus config
if [ ! -f /config/public_full_node.yaml ]; then
gravity-node init --config-dir /config --chain testnet
fi
# Start the consensus node
exec gravity-node run --config /config/public_full_node.yaml
restart: unless-stopped
stop_grace_period: 5m
networks:
- chains
volumes:
- ${GRAVITY_TESTNET_RETH_PRUNED_TRACE_CONSENSUS_DATA:-gravity-testnet-reth-pruned-trace-consensus}:/data/consensus:rw
- ./gravity/testnet/genesis.blob:/config/genesis.blob:ro
- ./gravity/testnet/public_full_node.yaml:/config/public_full_node.yaml:ro
- ./gravity/testnet/waypoint.txt:/config/waypoint.txt:ro
healthcheck:
test: [CMD-SHELL, wget -qO- http://localhost:9001/health || exit 1]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
logging: *logging-defaults
labels:
- prometheus-scrape.enabled=true
- prometheus-scrape.port=9001
volumes:
gravity-testnet-reth-pruned-trace:
gravity-testnet-reth-pruned-trace-consensus:
x-upstreams:
- id: $${ID}
labels:
provider: $${PROVIDER}
connection:
generic:
rpc:
url: $${RPC_URL}
ws:
frameSize: 20Mb
msgSize: 50Mb
url: $${WS_URL}
chain: gravity-testnet
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
- name: txpool_content # TODO: should be disabled for rollup nodes
...
+1 -1
View File
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
kite-mainnet:
image: ${KITE_GO_IMAGE:-ghcr.io/gokite-ai/gokite-chain}:${KITE_MAINNET_GO_VERSION:-v1.15.0}
image: ${KITE_GO_IMAGE:-ghcr.io/gokite-ai/gokite-chain}:${KITE_MAINNET_GO_VERSION:-v1.0.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
+1 -1
View File
@@ -1 +1 @@
{"database-type":"leveldb","state-sync-enabled":true,"pruning-enabled":true,"commit-interval":4096,"apis":["eth","eth-filter","net","web3","internal-account","internal-blockchain","internal-eth","internal-transaction","internal-tx-pool"]}
{"database-type":"leveldb","log-level":"info","warp-api-enabled":true,"state-sync-enabled":true,"pruning-enabled":true,"eth-apis":["eth","eth-filter","net","admin","web3","internal-account","internal-blockchain","internal-debug","internal-eth","internal-personal","internal-transaction","internal-tx-pool","debug","debug-tracer","debug-file-tracer","debug-handler"]}
@@ -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.3.0-20260923-8d01643}
image: ${LINEA_BESU_IMAGE:-consensys/linea-besu-package}:${LINEA_SEPOLIA_BESU_VERSION:-2.2.0-20260821-8bb72b4}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
-43
View File
@@ -1,43 +0,0 @@
{
"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
}
@@ -107,7 +107,7 @@ services:
shm_size: 2gb
base-mainnet-op-erigon-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.1.1}
ports:
- 18092:18092
- 18092:18092/udp
@@ -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.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.2.0}
ports:
- 18487:18487
- 18487:18487/udp
@@ -90,7 +90,6 @@ 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
@@ -131,7 +130,6 @@ 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
@@ -144,7 +142,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -90,7 +90,6 @@ 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
@@ -130,11 +129,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
@@ -150,7 +149,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -129,7 +129,6 @@ 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
@@ -127,7 +127,6 @@ 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:
- traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.middlewares=base-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
base-mainnet-archive-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.1.1}
ports:
- 18596:18596
- 18596:18596/udp
@@ -171,7 +171,7 @@ services:
- traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path-events.middlewares=ipallowlist
base-mainnet-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.1.1}
ports:
- 16422:16422
- 16422:16422/udp
@@ -107,7 +107,7 @@ services:
- traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.middlewares=base-mainnet-op-geth-pruned-pebble-path-stripprefix, ipallowlist
base-mainnet-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.1.1}
ports:
- 16422:16422
- 16422:16422/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.4.2}
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.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.2.0}
ports:
- 17022:17022
- 17022:17022/udp
@@ -92,7 +92,6 @@ 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
@@ -132,7 +131,6 @@ 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
@@ -145,7 +143,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,7 +92,6 @@ 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
@@ -130,11 +129,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
@@ -150,7 +149,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,7 +92,6 @@ 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
@@ -132,7 +131,6 @@ 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
@@ -145,7 +143,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,7 +92,6 @@ 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
@@ -130,11 +129,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
@@ -150,7 +149,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,7 +92,6 @@ 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
@@ -132,7 +131,6 @@ 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
@@ -145,7 +143,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,7 +92,6 @@ 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
@@ -130,11 +129,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
@@ -150,7 +149,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,7 +92,6 @@ 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
@@ -132,7 +131,6 @@ 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
@@ -145,7 +143,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -92,7 +92,6 @@ 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
@@ -130,11 +129,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=18347
- OP_NODE_P2P_LISTEN_UDP_PORT=18347
- 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
@@ -150,7 +149,6 @@ services:
networks:
- chains
volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -133,7 +133,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=19113
- KONA_NODE_P2P_LISTEN_UDP_PORT=19113
- 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
@@ -133,7 +133,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17188
- KONA_NODE_P2P_LISTEN_UDP_PORT=17188
- 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
@@ -131,7 +131,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=15789
- KONA_NODE_P2P_LISTEN_UDP_PORT=15789
- 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
@@ -131,7 +131,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17091
- KONA_NODE_P2P_LISTEN_UDP_PORT=17091
- 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
@@ -131,7 +131,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=16009
- KONA_NODE_P2P_LISTEN_UDP_PORT=16009
- 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
@@ -63,7 +63,7 @@ services:
- GETH_OVERRIDE_ISTHMUS=1751554801
- GETH_ROLLUP_DISABLETXPOOLGOSSIP=true
- GETH_ROLLUP_SEQUENCERHTTP=https://rpc.hemi.network/rpc
- GETH_TBC_SEEDS=69.117.149.33:8333,24.129.130.162:8333,seed.bitcoin.sipa.be:8333,dnsseed.emzy.de:8333
- GETH_TBC_SEEDS=seed.bitcoin.sipa.be,dnsseed.bitcoin.dashjr.org
- OP_GETH_L2_READINESS_RPC=http://localhost:8545
entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=leveldb --gcmode=full --datadir /data init --state.scheme=hash /config/genesis.json; [ -f /config/static-nodes.json ] && cp -f /config/static-nodes.json /data/static-nodes.json; exec geth "$@"' --
command:
@@ -71,7 +71,7 @@ services:
- --datadir=/data
- --db.engine=leveldb
- --gcmode=full
- --hvm.genesisheader=0000003efaaa2ba65de684c512bb67ef115298d1d16bcb49b16c02000000000000000000ed31a56788c4488afc4ee69e0791ad6aeeb9ea05f069e0fdde6159068765ad3f4128a96726770217e7f41c86
- --hvm.genesisheader=0000003efaaa2ba65de684c512bb67ef115298d1d16bcb49b16c020000000000000000ed31a56788c4488afc4ee69e0791ad6aeeb9ea05f069e0fdde6159068765ad3f4128a96726770217e7f41c86
- --hvm.genesisheight=883092
- --hvm.headerdatadir=/data/tbc/headers
- --maxpeers=50
@@ -32,7 +32,7 @@ x-logging-defaults: &logging-defaults
services:
mantle-mainnet-archive:
image: ${MANTLE_GETH_IMAGE:-mantlenetworkio/mantle-op-geth}:${MANTLE_MAINNET_GETH_VERSION:-v1.6.3}
image: ${MANTLE_GETH_IMAGE:-mantlenetworkio/mantle-op-geth}:${MANTLE_MAINNET_GETH_VERSION:-v1.5.5}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -107,7 +107,7 @@ services:
- traefik.http.routers.mantle-mainnet-op-geth-archive-leveldb-hash.middlewares=mantle-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
mantle-mainnet-archive-node:
image: ${MANTLE_NODE_IMAGE:-mantlenetworkio/mantle-op-node}:${MANTLE_MAINNET_NODE_VERSION:-v1.6.3}
image: ${MANTLE_NODE_IMAGE:-mantlenetworkio/mantle-op-node}:${MANTLE_MAINNET_NODE_VERSION:-v1.5.4}
ports:
- 16055:16055
- 16055:16055/udp
@@ -32,7 +32,7 @@ x-logging-defaults: &logging-defaults
services:
mantle-mainnet:
image: ${MANTLE_GETH_IMAGE:-mantlenetworkio/mantle-op-geth}:${MANTLE_MAINNET_GETH_VERSION:-v1.6.3}
image: ${MANTLE_GETH_IMAGE:-mantlenetworkio/mantle-op-geth}:${MANTLE_MAINNET_GETH_VERSION:-v1.5.5}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -107,7 +107,7 @@ services:
- traefik.http.routers.mantle-mainnet-op-geth-pruned-leveldb-hash.middlewares=mantle-mainnet-op-geth-pruned-leveldb-hash-stripprefix, ipallowlist
mantle-mainnet-node:
image: ${MANTLE_NODE_IMAGE:-mantlenetworkio/mantle-op-node}:${MANTLE_MAINNET_NODE_VERSION:-v1.6.3}
image: ${MANTLE_NODE_IMAGE:-mantlenetworkio/mantle-op-node}:${MANTLE_MAINNET_NODE_VERSION:-v1.5.4}
ports:
- 17067:17067
- 17067:17067/udp
@@ -128,7 +128,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17066
- KONA_NODE_P2P_LISTEN_UDP_PORT=17066
- 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
@@ -128,7 +128,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=18237
- KONA_NODE_P2P_LISTEN_UDP_PORT=18237
- 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
@@ -128,7 +128,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=18714
- KONA_NODE_P2P_LISTEN_UDP_PORT=18714
- 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
@@ -1,5 +0,0 @@
[
"enode://5ecd6d2054a58fa00729b73396044a35e6aceeafe58373d2f26b3f50a3934175fb56f8efa538381430889771613beaabf1177805910bbd34e4b4840320914690@mainnet-bootnodes.hsk.xyz:30615",
"enode://bd244da2a066e15f82d4bfb7f2732c5b5bac44cefb36cefef01a4c0e87e72b42004d012c9a294b8402ebf67491777f280ffbcc93a71157921d6d358b19ddac67@mainnet-bootnodes.hsk.xyz:30616",
"enode://a5bba6459ac3a075a4a8941478a4ef8d167460191c89632004b17e4b2d7beea52cdc1a2d376f35e996ad44ccac8db25f900700aad6991d015bdc4db072832063@mainnet-bootnodes.hsk.xyz:30617"
]
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
base-mainnet-op-reth:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.1}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -111,7 +111,7 @@ services:
shm_size: 2gb
base-mainnet-op-reth-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.1.1}
ports:
- 19221:19221
- 19221:19221/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
base-mainnet-op-reth-minimal:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.1}
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:
base-mainnet-op-reth-minimal:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.1}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -111,7 +111,7 @@ services:
shm_size: 2gb
base-mainnet-op-reth-minimal-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.1.1}
ports:
- 16240:16240
- 16240:16240/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
base-mainnet-op-reth-pruned:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.1}
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:
base-mainnet-op-reth-pruned:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.1}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -112,7 +112,7 @@ services:
shm_size: 2gb
base-mainnet-op-reth-pruned-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_NODE_VERSION:-v1.1.1}
ports:
- 19759:19759
- 19759:19759/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
base-sepolia-op-reth:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.2.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:
base-sepolia-op-reth:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.2.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -111,7 +111,7 @@ services:
shm_size: 2gb
base-sepolia-op-reth-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.2.0}
ports:
- 16390:16390
- 16390:16390/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
base-sepolia-op-reth-minimal:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.2.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:
base-sepolia-op-reth-minimal:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.2.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -111,7 +111,7 @@ services:
shm_size: 2gb
base-sepolia-op-reth-minimal-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.2.0}
ports:
- 17165:17165
- 17165:17165/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services:
base-sepolia-op-reth-pruned:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.2.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:
base-sepolia-op-reth-pruned:
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.4.2}
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.2.0}
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -112,7 +112,7 @@ services:
shm_size: 2gb
base-sepolia-op-reth-pruned-node:
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.4.2}
image: ${BASE_NODE_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_NODE_VERSION:-v1.2.0}
ports:
- 16147:16147
- 16147:16147/udp
@@ -135,7 +135,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17151
- KONA_NODE_P2P_LISTEN_UDP_PORT=17151
- 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
@@ -133,7 +133,7 @@ services:
shm_size: 2gb
xlayer-testnet-op-reth-node:
image: ${XLAYER_NODE_IMAGE:-xlayer/op-node}:${XLAYER_TESTNET_NODE_VERSION:-v0.1.6}
image: ${XLAYER_NODE_IMAGE:-xlayer/op-node}:${XLAYER_TESTNET_NODE_VERSION:-v0.1.5.1}
ports:
- 18466:18466
- 18466:18466/udp
@@ -134,7 +134,6 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=18561
- KONA_NODE_P2P_LISTEN_UDP_PORT=18561
- 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
+56 -53
View File
@@ -10,9 +10,55 @@ interval = 5
p2p_port = 34070
timeout = 5
identity_file_path = "/consensus/ec-secp256k1-non-validator.der"
trusted_only = false
trusted_only = true
discovery.enabled = true
[api]
enabled = true
host = "0.0.0.0"
port = 35070
[validators]
[validators.0]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-0.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-0.hex"
[validators.1]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-1.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-1.hex"
[validators.2]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-2.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-2.hex"
[validators.3]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-3.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-3.hex"
[validators.4]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-4.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-4.hex"
[validators.5]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-5.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-5.hex"
[validators.6]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-6.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-6.hex"
[validators.7]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-7.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-7.hex"
[validators.8]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-8.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-8.hex"
[validators.9]
validator_keystore_pk_file_path = "/node/keys/bls12-381-public-key-9.hex"
identity_file_path = "/node/identities/ec-secp256k1-validator-public-compressed-9.hex"
[network.bootstrap_nodes.0]
api_host = "plasma-mainnet-observer-cs-1.plasmalabs.tech"
p2p_port = 34070
@@ -28,57 +74,14 @@ api_host = "plasma-mainnet-observer-cs-9.plasmalabs.tech"
p2p_port = 34070
peer_id = "16Uiu2HAm2PVfZRoyXXLASVzVX3gyBEQd3mRAzZytjv3esD9kWumD"
[network.bls_peer_ids]
ad840fde21315f757ae4f7b30629d6446fced8648b46adfe6cfcda615ee7d93b2c8bd160fc189899d388133935686972 = "16Uiu2HAkvjrtriXRzhVp4i6jdNb6wPWA9wh9TKvsh1DnFJe4AF1J"
a65fda74154fc876c70feb22e5d51be5d224f57152c37d6ceadb534f0c1976992cc8470b87ade6071574b778ff420828 = "16Uiu2HAkv5EgrXXwi4gheip871xYJrY5Gc7oVTs3TWuS1BgFN5jE"
9732eabb15ac6fe92a0107c4faf5a2ba175ce0a835e36e0d5892bfea220bc43a1894ff0c75067c733bc3a9c2798b6b3b = "16Uiu2HAkuz46swzu5uRzjwf15YsJBe4yawh9qHtPhtHo5mZp9rQU"
90bf4d4e3b84f19842d7e01fb09403b074730823fc143f47307018edb03659765d91ce297f945c77e1a198eed0da5b93 = "16Uiu2HAmMjDzXsnKm7xFq2gVAUKhcTtMsETXPWo3HDwnKSVyHCBv"
a9dcac28ddbf37c7af585a77c6b49568b1d844027443bac69769d5fb69796d8fb93d798ff37c0b1a91fd263576e207d4 = "16Uiu2HAmVXe3Jpb5AVuKoggNJ1cvYKZT7yC7C7Me3JYNrD36hqvU"
9173143cf3df430b15bc52961a516e1923d023aac7e31c8e4b35a5df41133934639557bec12dcc80b21f4cb879dbf49e = "16Uiu2HAm4mHePE4gesAb9KhUsQ9vbGyxZGbKD2H8Qv9LSERfQ4fq"
b9935908a1c1b77f8c388767eeb21a8e85b2131204dfea5bed53559b881d22c3bca57237c389be16da6d1ff25aca1385 = "16Uiu2HAmN7iKTmj56PzYBueSo1niYUC7jagvfKPqooz4X9ooTKUs"
a74898f0250015bd973d569a5c70c7b3ef46121dd6035ce95d000f2fdc61fafd0145d47933ff26ee65a533adbd2e699d = "16Uiu2HAmLtcwU8CSSATpyukvZ9xgjaihjYDye4pBAnvpUsgU9uXQ"
a442d581de5524eddaf4c8c467cc32f04ddab12b88c7e924fbd67c1546abaca6f8f521dcfafa2df62baa7eda3c055b14 = "16Uiu2HAmCM3TprzKxopBXVP8en3aFH2NuMMgVfYyunvqxt9LWuMF"
a24775fea0da6e9800492fd896896e79d6cb70058d1f97d2e7405078fcf051b9c49ad60455a11e85dc553cc4a19c2c5e = "16Uiu2HAky6J4k55kyXPiFrtJnqAt6WG4rMC1V2cg7t3E7KmHug7a"
[[network.trusted_peers]]
peer_id = "16Uiu2HAm4WdZmik6PVsRvcbCzc1eHuNfQHgj52CxUAjmdC7W5dXi"
address = "plasma-mainnet-observer-cs-1.plasmalabs.tech:34070"
[api]
enabled = true
host = "0.0.0.0"
port = 35070
[[network.trusted_peers]]
peer_id = "16Uiu2HAmGmnMycTkjnMoxcyVAF8cUFpVoVKKCAGTpwEBJMs181yM"
address = "plasma-mainnet-observer-cs-4.plasmalabs.tech:34070"
[chain.aquila]
activation_height = 33300000
contract_address = "0x6c50b8ca8EeAa1c75dEe5b5EA79772AcAbc92F48"
epoch_length = 20000
handoff_window = 10000
speculative_prefetch = 9999
unsafe_allow_short_handoff_window = false
[chain.static_committee.0]
bls_public_key = "ad840fde21315f757ae4f7b30629d6446fced8648b46adfe6cfcda615ee7d93b2c8bd160fc189899d388133935686972"
[chain.static_committee.1]
bls_public_key = "a65fda74154fc876c70feb22e5d51be5d224f57152c37d6ceadb534f0c1976992cc8470b87ade6071574b778ff420828"
[chain.static_committee.2]
bls_public_key = "9732eabb15ac6fe92a0107c4faf5a2ba175ce0a835e36e0d5892bfea220bc43a1894ff0c75067c733bc3a9c2798b6b3b"
[chain.static_committee.3]
bls_public_key = "90bf4d4e3b84f19842d7e01fb09403b074730823fc143f47307018edb03659765d91ce297f945c77e1a198eed0da5b93"
[chain.static_committee.4]
bls_public_key = "a9dcac28ddbf37c7af585a77c6b49568b1d844027443bac69769d5fb69796d8fb93d798ff37c0b1a91fd263576e207d4"
[chain.static_committee.5]
bls_public_key = "9173143cf3df430b15bc52961a516e1923d023aac7e31c8e4b35a5df41133934639557bec12dcc80b21f4cb879dbf49e"
[chain.static_committee.6]
bls_public_key = "b9935908a1c1b77f8c388767eeb21a8e85b2131204dfea5bed53559b881d22c3bca57237c389be16da6d1ff25aca1385"
[chain.static_committee.7]
bls_public_key = "a74898f0250015bd973d569a5c70c7b3ef46121dd6035ce95d000f2fdc61fafd0145d47933ff26ee65a533adbd2e699d"
[chain.static_committee.8]
bls_public_key = "a442d581de5524eddaf4c8c467cc32f04ddab12b88c7e924fbd67c1546abaca6f8f521dcfafa2df62baa7eda3c055b14"
[chain.static_committee.9]
bls_public_key = "a24775fea0da6e9800492fd896896e79d6cb70058d1f97d2e7405078fcf051b9c49ad60455a11e85dc553cc4a19c2c5e"
[[network.trusted_peers]]
peer_id = "16Uiu2HAm2PVfZRoyXXLASVzVX3gyBEQd3mRAzZytjv3esD9kWumD"
address = "plasma-mainnet-observer-cs-9.plasmalabs.tech:34070"
@@ -50,7 +50,7 @@ services:
logging: *logging-defaults
plasma-mainnet-initialize-consensus:
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_MAINNET_PLASMA_CONSENSUS_VERSION:-1.1.0}
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_MAINNET_PLASMA_CONSENSUS_VERSION:-0.15.0}
user: 0:0
entrypoint: [/bin/bash, -c]
command:
@@ -58,8 +58,8 @@ services:
set -euo pipefail
if [ ! -f /consensus/data.mdb ]; then
echo "INFO Generating consensus database for mainnet network"
plasma-cli init observer \
--config-path /config/non-validator.toml \
plasma-cli init \
--chain /node/genesis.json \
--data-dir /consensus
else
echo "INFO Consensus database already exists at /consensus/data.mdb"
@@ -80,7 +80,6 @@ services:
volumes:
- ${PLASMA_MAINNET_RETH_PRUNED_TRACE_CONSENSUS_DATA:-plasma-mainnet-reth-pruned-trace-consensus}:/consensus:rw
- ./plasma/mainnet/genesis.json:/node/genesis.json:ro
- ./plasma/mainnet/non-validator.toml:/config/non-validator.toml:ro
- .jwtsecret:/jwt/jwt.hex:ro
logging: *logging-defaults
@@ -191,7 +190,7 @@ services:
shm_size: 2gb
plasma-mainnet-node:
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_MAINNET_PLASMA_CONSENSUS_VERSION:-1.1.0}
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_MAINNET_PLASMA_CONSENSUS_VERSION:-0.15.0}
user: 0:0
ports:
- 18415:34070
@@ -213,7 +212,8 @@ services:
exec plasma-cli observer \
--config-path /tmp/non-validator.toml \
--no-color \
--timeout-stream-manager 10ms \
--timeout-stream-manager 5s \
--nat=extip:${IP}:18415 \
--telemetry.enable-metrics \
--telemetry.enable-health \
--telemetry.host 0.0.0.0 \
@@ -50,7 +50,7 @@ services:
logging: *logging-defaults
plasma-testnet-initialize-consensus:
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_TESTNET_PLASMA_CONSENSUS_VERSION:-1.1.0}
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_TESTNET_PLASMA_CONSENSUS_VERSION:-0.15.0}
user: 0:0
entrypoint: [/bin/bash, -c]
command:
@@ -58,8 +58,8 @@ services:
set -euo pipefail
if [ ! -f /consensus/data.mdb ]; then
echo "INFO Generating consensus database for testnet network"
plasma-cli init observer \
--config-path /config/non-validator.toml \
plasma-cli init \
--chain /node/genesis.json \
--data-dir /consensus
else
echo "INFO Consensus database already exists at /consensus/data.mdb"
@@ -80,7 +80,6 @@ services:
volumes:
- ${PLASMA_TESTNET_RETH_PRUNED_TRACE_CONSENSUS_DATA:-plasma-testnet-reth-pruned-trace-consensus}:/consensus:rw
- ./plasma/testnet/genesis.json:/node/genesis.json:ro
- ./plasma/testnet/non-validator.toml:/config/non-validator.toml:ro
- .jwtsecret:/jwt/jwt.hex:ro
logging: *logging-defaults
@@ -191,7 +190,7 @@ services:
shm_size: 2gb
plasma-testnet-node:
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_TESTNET_PLASMA_CONSENSUS_VERSION:-1.1.0}
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_TESTNET_PLASMA_CONSENSUS_VERSION:-0.15.0}
user: 0:0
ports:
- 19566:34070
@@ -213,7 +212,8 @@ services:
exec plasma-cli observer \
--config-path /tmp/non-validator.toml \
--no-color \
--timeout-stream-manager 10ms \
--timeout-stream-manager 5s \
--nat=extip:${IP}:19566 \
--telemetry.enable-metrics \
--telemetry.enable-health \
--telemetry.host 0.0.0.0 \

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