Compare commits

..
Author SHA1 Message Date
claude ecb82e3b73 gravity-l1: add ASSET files for Gravity L1 onboarding
- Add gravity-reth.Dockerfile with latest commit hash (34078b9)
- Add mainnet genesis.json and waypoint.txt
- Add testnet genesis.json and waypoint.txt

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-29 10:55:57 +00:00
claude 76acb60d14 deploy: regenerate compose from vibe-node main 81502581d95a 2026-09-29 09:04:12 +00:00
claude b67022e0a2 deploy: regenerate compose from vibe-node main bf6eed4575a1 2026-09-29 04:29:28 +00:00
claude 9fceb4f4fd hemi-mainnet: pin reachable GETH_TBC_SEEDS so TBC cannot go peerless across regens
DNS-only seeds burst-die (64 peers, 2s cumulative handshake timeout) and TBC
makes no dials at all; the header restore then stalls (968254 on 2026-09-29,
967460 on 2026-09-22) and op-node wedges on 'failed to fetch previous keystone'
because canonical BTC headers are missing from full TBC.

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

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

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

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

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

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-27 16:37:28 +00:00
claude 7db1a2b004 ethereum: bump lighthouse to v8.2.2 in beacon-mainnet hand-maintained compose 2026-09-27 13:04:39 +00:00
80 changed files with 1683 additions and 164 deletions
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
bitcoin-cash-mainnet: bitcoin-cash-mainnet:
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_MAINNET_BITCOIND_VERSION:-0.33.11} image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_MAINNET_BITCOIND_VERSION:-0.33.13}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax = docker/dockerfile:1.2 # syntax = docker/dockerfile:1.2
ARG REPO=https://github.com/erigontech/erigon.git ARG REPO=https://github.com/erigontech/erigon.git
ARG VERSION=v3.5.3 ARG VERSION=v3.7.0
ARG COMMIT=${COMMIT:-${VERSION}} ARG COMMIT=${COMMIT:-${VERSION}}
FROM docker.io/library/golang:1.24.1-alpine3.20 AS builder FROM docker.io/library/golang:1.24.1-alpine3.20 AS builder
@@ -1,7 +1,7 @@
services: services:
ethereum-beacon-blobs: ethereum-beacon-blobs:
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v6.0.1} image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v8.2.2}
restart: unless-stopped restart: unless-stopped
networks: networks:
- chains - chains
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-besu: ethereum-mainnet-besu:
image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_MAINNET_BESU_VERSION:-26.8.1} image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_MAINNET_BESU_VERSION:-26.9.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle 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 - traefik.http.routers.ethereum-mainnet-besu-pruned-bonsai-ws.middlewares=ethereum-mainnet-besu-pruned-bonsai-stripprefix, ipallowlist
ethereum-mainnet-besu-node: ethereum-mainnet-besu-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 18205:18205 - 18205:18205
@@ -195,6 +195,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-erigon3-archive: ethereum-mainnet-erigon3-archive:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.5.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.7.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-erigon3-minimal: ethereum-mainnet-erigon3-minimal:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.5.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.7.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
ethereum-mainnet-erigon3: ethereum-mainnet-erigon3:
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.5.3} image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.7.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle 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 - traefik.http.routers.ethereum-hoodi-geth-pruned-pebble-path.middlewares=ethereum-hoodi-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-hoodi-geth-node: ethereum-hoodi-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 16917:16917 - 16917:16917
@@ -201,6 +201,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - 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 - traefik.http.routers.ethereum-hoodi-geth-pruned-pebble-path.middlewares=ethereum-hoodi-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-hoodi-geth-node: ethereum-hoodi-geth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 16917:16917 - 16917:16917
- 16917:16917/udp - 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 - traefik.http.routers.ethereum-mainnet-geth-minimal-pebble-path.middlewares=ethereum-mainnet-geth-minimal-pebble-path-stripprefix, ipallowlist
ethereum-mainnet-geth-minimal-node: ethereum-mainnet-geth-minimal-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 19551:19551 - 19551:19551
- 19551:19551/udp - 19551:19551/udp
@@ -168,7 +168,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-leveldb-hash-events.middlewares=ipallowlist - traefik.http.routers.ethereum-mainnet-geth-pruned-leveldb-hash-events.middlewares=ipallowlist
ethereum-mainnet-geth-node: ethereum-mainnet-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 15455:15455 - 15455:15455
@@ -265,6 +265,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -168,7 +168,7 @@ services:
- traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path-events.middlewares=ipallowlist - traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path-events.middlewares=ipallowlist
ethereum-mainnet-geth-node: ethereum-mainnet-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 17023:17023 - 17023:17023
@@ -267,6 +267,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - 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 - traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-mainnet-geth-node: ethereum-mainnet-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 17023:17023 - 17023:17023
@@ -201,6 +201,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - 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 - traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-mainnet-geth-node: ethereum-mainnet-geth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 17023:17023 - 17023:17023
- 17023:17023/udp - 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 - traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.middlewares=ethereum-sepolia-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-sepolia-geth-node: ethereum-sepolia-geth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 19710:19710 - 19710:19710
@@ -201,6 +201,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - 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 - traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.middlewares=ethereum-sepolia-geth-pruned-pebble-path-stripprefix, ipallowlist
ethereum-sepolia-geth-node: ethereum-sepolia-geth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 19710:19710 - 19710:19710
- 19710:19710/udp - 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 - traefik.http.routers.ethereum-hoodi-nethermind-pruned-rocksdb-trace.middlewares=ethereum-hoodi-nethermind-pruned-rocksdb-trace-stripprefix, ipallowlist
ethereum-hoodi-nethermind-node: ethereum-hoodi-nethermind-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_HOODI_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 15786:15786 - 15786:15786
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - 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 - traefik.http.routers.ethereum-mainnet-nethermind-pruned-rocksdb-trace.middlewares=ethereum-mainnet-nethermind-pruned-rocksdb-trace-stripprefix, ipallowlist
ethereum-mainnet-nethermind-node: ethereum-mainnet-nethermind-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 17065:17065 - 17065:17065
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - 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 - traefik.http.routers.ethereum-sepolia-nethermind-pruned-rocksdb-trace.middlewares=ethereum-sepolia-nethermind-pruned-rocksdb-trace-stripprefix, ipallowlist
ethereum-sepolia-nethermind-node: ethereum-sepolia-nethermind-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 15835:15835 - 15835:15835
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -109,7 +109,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-hoodi-reth-node: ethereum-hoodi-reth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 15606:15606 - 15606:15606
- 15606:15606/udp - 15606:15606/udp
@@ -110,7 +110,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-hoodi-reth-pruned-node: ethereum-hoodi-reth-pruned-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOODI_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 17435:17435 - 17435:17435
- 17435:17435/udp - 17435:17435/udp
@@ -109,7 +109,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-mainnet-reth-node: ethereum-mainnet-reth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 19563:19563 - 19563:19563
@@ -190,6 +190,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -109,7 +109,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-mainnet-reth-node: ethereum-mainnet-reth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 19563:19563 - 19563:19563
- 19563:19563/udp - 19563:19563/udp
@@ -146,7 +146,7 @@ services:
- pruning - pruning
ethereum-mainnet-reth-minimal-node: ethereum-mainnet-reth-minimal-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 19286:19286 - 19286:19286
@@ -249,6 +249,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -110,7 +110,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-mainnet-reth-pruned-node: ethereum-mainnet-reth-pruned-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_MAINNET_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 15150:15150 - 15150:15150
@@ -191,6 +191,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -110,7 +110,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-mainnet-reth-pruned-node: ethereum-mainnet-reth-pruned-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 15150:15150 - 15150:15150
- 15150:15150/udp - 15150:15150/udp
@@ -109,7 +109,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-sepolia-reth-node: ethereum-sepolia-reth-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 19330:19330 - 19330:19330
@@ -190,6 +190,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -109,7 +109,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-sepolia-reth-node: ethereum-sepolia-reth-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 19330:19330 - 19330:19330
- 19330:19330/udp - 19330:19330/udp
@@ -110,7 +110,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-sepolia-reth-pruned-node: ethereum-sepolia-reth-pruned-node:
image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.7.0} image: ${ETHEREUM_NIMBUS_IMAGE:-statusim/nimbus-eth2}:${ETHEREUM_SEPOLIA_NIMBUS_VERSION:-multiarch-v26.8.0}
user: root user: root
ports: ports:
- 17150:17150 - 17150:17150
@@ -191,6 +191,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -110,7 +110,7 @@ services:
shm_size: 2gb shm_size: 2gb
ethereum-sepolia-reth-pruned-node: ethereum-sepolia-reth-pruned-node:
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.7} image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v7.1.8}
ports: ports:
- 17150:17150 - 17150:17150
- 17150:17150/udp - 17150:17150/udp
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
gnosis-chiado-erigon3-archive: gnosis-chiado-erigon3-archive:
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.6.0} image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.7.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -65,6 +65,7 @@ services:
- --beacon.api.cors.allow-origins=* - --beacon.api.cors.allow-origins=*
- --beacon.api.port=5555 - --beacon.api.port=5555
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config - --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.addr=0.0.0.0
- --caplin.discovery.port=16986 - --caplin.discovery.port=16986
- --caplin.discovery.tcpport=16986 - --caplin.discovery.tcpport=16986
@@ -88,7 +89,7 @@ services:
- --rpc.overlay.getlogstimeout=${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_GETLOGSTIMEOUT:-5m0s} - --rpc.overlay.getlogstimeout=${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_GETLOGSTIMEOUT:-5m0s}
- --rpc.overlay.replayblocktimeout=${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_REPLAYBLOCKTIMEOUT:-10s} - --rpc.overlay.replayblocktimeout=${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_REPLAYBLOCKTIMEOUT:-10s}
- --rpc.returndata.limit=10000000 - --rpc.returndata.limit=10000000
- --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 - --sentinel.staticpeers=/ip4/134.65.192.121/tcp/19000/p2p/16Uiu2HAm1TwYCeKTdwYayAr8Vru7Ku9HKHH7MiWS6G5QuVsVqUy2
- --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_MAX_DOWNLOAD_RATE:-1000mb} - --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_MAX_DOWNLOAD_RATE:-1000mb}
- --torrent.port=26986 - --torrent.port=26986
- --ws - --ws
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
gnosis-chiado-erigon3-minimal: gnosis-chiado-erigon3-minimal:
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.6.0} image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.7.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -65,6 +65,7 @@ services:
- --beacon.api.cors.allow-origins=* - --beacon.api.cors.allow-origins=*
- --beacon.api.port=5555 - --beacon.api.port=5555
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config - --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.addr=0.0.0.0
- --caplin.discovery.port=16010 - --caplin.discovery.port=16010
- --caplin.discovery.tcpport=16010 - --caplin.discovery.tcpport=16010
@@ -89,7 +90,7 @@ services:
- --rpc.overlay.getlogstimeout=${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_GETLOGSTIMEOUT:-5m0s} - --rpc.overlay.getlogstimeout=${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_GETLOGSTIMEOUT:-5m0s}
- --rpc.overlay.replayblocktimeout=${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_REPLAYBLOCKTIMEOUT:-10s} - --rpc.overlay.replayblocktimeout=${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_REPLAYBLOCKTIMEOUT:-10s}
- --rpc.returndata.limit=10000000 - --rpc.returndata.limit=10000000
- --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 - --sentinel.staticpeers=/ip4/134.65.192.121/tcp/19000/p2p/16Uiu2HAm1TwYCeKTdwYayAr8Vru7Ku9HKHH7MiWS6G5QuVsVqUy2
- --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_MAX_DOWNLOAD_RATE:-1000mb} - --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_MAX_DOWNLOAD_RATE:-1000mb}
- --torrent.port=26010 - --torrent.port=26010
- --ws - --ws
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
gnosis-chiado-erigon3: gnosis-chiado-erigon3:
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.6.0} image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.7.0}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
@@ -65,6 +65,7 @@ services:
- --beacon.api.cors.allow-origins=* - --beacon.api.cors.allow-origins=*
- --beacon.api.port=5555 - --beacon.api.port=5555
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config - --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.addr=0.0.0.0
- --caplin.discovery.port=16886 - --caplin.discovery.port=16886
- --caplin.discovery.tcpport=16886 - --caplin.discovery.tcpport=16886
@@ -89,7 +90,7 @@ services:
- --rpc.overlay.getlogstimeout=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_GETLOGSTIMEOUT:-5m0s} - --rpc.overlay.getlogstimeout=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_GETLOGSTIMEOUT:-5m0s}
- --rpc.overlay.replayblocktimeout=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_REPLAYBLOCKTIMEOUT:-10s} - --rpc.overlay.replayblocktimeout=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_REPLAYBLOCKTIMEOUT:-10s}
- --rpc.returndata.limit=10000000 - --rpc.returndata.limit=10000000
- --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 - --sentinel.staticpeers=/ip4/134.65.192.121/tcp/19000/p2p/16Uiu2HAm1TwYCeKTdwYayAr8Vru7Ku9HKHH7MiWS6G5QuVsVqUy2
- --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_MAX_DOWNLOAD_RATE:-1000mb} - --torrent.download.rate=${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_MAX_DOWNLOAD_RATE:-1000mb}
- --torrent.port=26886 - --torrent.port=26886
- --ws - --ws
@@ -177,6 +177,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -180,6 +180,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -177,6 +177,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -180,6 +180,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -175,6 +175,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -189,6 +189,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -190,6 +190,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -189,6 +189,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
@@ -190,6 +190,15 @@ x-upstreams:
# UNAVAILABLE and failing live requests ("Source was empty"). Head tracking # UNAVAILABLE and failing live requests ("Source was empty"). Head tracking
# still governs health with validation off. 2026-07-10, dRPC incident. # still governs health with validation off. 2026-07-10, dRPC incident.
disable-validation: true 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: methods:
disabled: disabled:
- name: GET#/eth/v2/debug/beacon/states/* - name: GET#/eth/v2/debug/beacon/states/*
File diff suppressed because one or more lines are too long
+149
View File
@@ -0,0 +1,149 @@
# Multi-stage build for Gravity Reth (gravity-reth)
# Gravity Reth is a performance-optimized fork of Reth for Gravity L1
# Repository: https://github.com/Galxe/gravity-reth
ARG LLVM_IMAGE=snowstep/llvm
ARG LLVM_VERSION=debian-13-20251208082922
FROM ${LLVM_IMAGE}:${LLVM_VERSION} AS builder
# Install build dependencies and tools
RUN apt-get update && apt-get install -y \
build-essential \
curl \
git \
libssl-dev \
pkg-config \
wget \
ninja-build \
ccache \
autoconf \
automake \
libtool \
zlib1g-dev \
libclang-dev \
&& rm -rf /var/lib/apt/lists/*
# Set up clang as default C/C++ compiler
RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 && \
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100
# Install Rust
ENV RUSTUP_HOME=/usr/local/rustup
ENV CARGO_HOME=/usr/local/cargo
ENV PATH=/usr/local/cargo/bin:$PATH
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
sh -s -- -y --no-modify-path --default-toolchain stable --profile minimal
# Install mold linker
RUN wget https://github.com/rui314/mold/releases/download/v2.40.4/mold-2.40.4-x86_64-linux.tar.gz && \
tar xf mold-2.40.4-x86_64-linux.tar.gz && \
cp mold-2.40.4-x86_64-linux/bin/mold /usr/local/bin/ && \
cp -r mold-2.40.4-x86_64-linux/lib/* /usr/local/lib/ && \
rm -rf mold-2.40.4-x86_64-linux*
# Install sccache for build caching
RUN wget https://github.com/mozilla/sccache/releases/download/v0.7.4/sccache-v0.7.4-x86_64-unknown-linux-musl.tar.gz && \
tar xf sccache-v0.7.4-x86_64-unknown-linux-musl.tar.gz && \
mv sccache-v0.7.4-x86_64-unknown-linux-musl/sccache /usr/local/bin/ && \
rm -rf sccache-v0.7.4-x86_64-unknown-linux-musl*
# Build arguments for customization
ARG ARCH_TARGET=native
ARG GRAVITY_RETH_VERSION=34078b9b69e75f2af1427f75c6ae8b07e28d5838
ARG GRAVITY_RETH_REPO=https://github.com/Galxe/gravity-reth
ARG PROFILE=maxperf
# Set up cargo for maximum performance with aggressive optimizations
RUN mkdir -p /root/.cargo && \
echo '[profile.maxperf]' >> /root/.cargo/config.toml && \
echo 'inherits = "release"' >> /root/.cargo/config.toml && \
echo 'lto = "fat"' >> /root/.cargo/config.toml && \
echo 'codegen-units = 1' >> /root/.cargo/config.toml && \
echo 'panic = "abort"' >> /root/.cargo/config.toml && \
echo 'strip = true' >> /root/.cargo/config.toml && \
echo 'opt-level = 3' >> /root/.cargo/config.toml && \
echo 'overflow-checks = false' >> /root/.cargo/config.toml && \
echo 'debug = false' >> /root/.cargo/config.toml && \
echo 'debug-assertions = false' >> /root/.cargo/config.toml && \
echo '' >> /root/.cargo/config.toml && \
echo '[target.x86_64-unknown-linux-gnu]' >> /root/.cargo/config.toml && \
echo 'linker = "/usr/local/bin/clang"' >> /root/.cargo/config.toml && \
echo 'rustflags = ["-C", "link-arg=-fuse-ld=/usr/local/bin/mold", "-C", "link-arg=-Wl,--as-needed"]' >> /root/.cargo/config.toml
# Clone and build gravity-reth
WORKDIR /build
RUN git clone $GRAVITY_RETH_REPO . && \
git checkout $GRAVITY_RETH_VERSION
# Set environment variables for optimization
ENV CC=clang
ENV CXX=clang++
ENV AR=llvm-ar
ENV RANLIB=llvm-ranlib
ENV LD=/usr/local/bin/mold
ENV SCCACHE_DIR=/tmp/sccache
ENV RUSTC_WRAPPER=/usr/local/bin/sccache
ENV LIBZ_SYS_STATIC=1
# Set C/C++ flags for dependencies
ENV CFLAGS_BASE="-O3 -fomit-frame-pointer -fno-semantic-interposition -funroll-loops"
ENV CXXFLAGS_BASE="-O3 -fomit-frame-pointer -fno-semantic-interposition -funroll-loops"
ENV LDFLAGS="-Wl,-O3 -Wl,--as-needed"
# Configure architecture-specific flags and build
# Gravity Reth build - optimized for Gravity L1 with AptosBFT consensus
RUN --mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=/usr/local/cargo/git \
--mount=type=cache,target=/build/target \
if [ "$ARCH_TARGET" = "native" ]; then \
RUSTFLAGS="-C target-cpu=native -C link-arg=-fuse-ld=/usr/local/bin/mold -C opt-level=3" \
CFLAGS="$CFLAGS_BASE -march=native" \
CXXFLAGS="$CXXFLAGS_BASE -march=native"; \
elif [ "$ARCH_TARGET" = "zen4" ]; then \
RUSTFLAGS="-C target-cpu=znver4 -C link-arg=-fuse-ld=/usr/local/bin/mold -C opt-level=3 -C llvm-args=-enable-machine-outliner" \
CFLAGS="$CFLAGS_BASE -march=znver4" \
CXXFLAGS="$CXXFLAGS_BASE -march=znver4"; \
elif [ "$ARCH_TARGET" = "zen5" ]; then \
RUSTFLAGS="-C target-cpu=znver5 -C link-arg=-fuse-ld=/usr/local/bin/mold -C opt-level=3 -C llvm-args=-enable-machine-outliner -C llvm-args=-enable-gvn-hoist -C llvm-args=-enable-dfa-jump-thread -C llvm-args=-slp-vectorize-hor-store" \
CFLAGS="$CFLAGS_BASE -march=znver5" \
CXXFLAGS="$CXXFLAGS_BASE -march=znver5"; \
else \
RUSTFLAGS="-C target-cpu=$ARCH_TARGET -C link-arg=-fuse-ld=/usr/local/bin/mold -C opt-level=3" \
CFLAGS="$CFLAGS_BASE -march=$ARCH_TARGET" \
CXXFLAGS="$CXXFLAGS_BASE -march=$ARCH_TARGET"; \
fi && \
export RUSTFLAGS CFLAGS CXXFLAGS && \
echo "Building Gravity Reth with RUSTFLAGS: $RUSTFLAGS" && \
cargo build --profile $PROFILE --locked --bin reth --features jemalloc,asm-keccak && \
cp target/$PROFILE/reth /usr/local/bin/gravity-reth
# Final stage - minimal runtime
FROM debian:trixie-slim
# Install runtime dependencies including jemalloc for better memory performance
RUN apt-get update && apt-get install -y \
ca-certificates \
libssl3 \
libjemalloc2 \
curl \
&& rm -rf /var/lib/apt/lists/*
# Copy the optimized binary
COPY --from=builder /usr/local/bin/gravity-reth /usr/local/bin/
# Create non-root user
RUN useradd -m -u 1000 -s /bin/bash gravity
# Set up data directory
RUN mkdir -p /root/.gravity/reth && \
chown -R gravity:gravity /root/.gravity
RUN echo '/usr/lib/x86_64-linux-gnu/libjemalloc.so.2' > /etc/ld.so.preload
ENV MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:30000,muzzy_decay_ms:30000"
USER gravity
EXPOSE 30303 30303/udp 9001 8545 8546 8551
ENTRYPOINT ["/usr/local/bin/gravity-reth"]
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
0:2a61c47583cc1edb9ec242d63647e0a0c74fdec6ece35cb033460f54cb0fca03
+1
View File
@@ -0,0 +1 @@
0:ed0edcd47c25c09e10aa51b79b9e9067b97b41d0a12cd63c04df2cca58f45b86
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
services: services:
linea-sepolia: linea-sepolia:
image: ${LINEA_BESU_IMAGE:-consensys/linea-besu-package}:${LINEA_SEPOLIA_BESU_VERSION:-2.2.0-20260821-8bb72b4} image: ${LINEA_BESU_IMAGE:-consensys/linea-besu-package}:${LINEA_SEPOLIA_BESU_VERSION:-2.3.0-20260923-8d01643}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
+43
View File
@@ -0,0 +1,43 @@
{
"genesis": {
"l1": {
"hash": "0x218132178d65c4bc490aadd93c31535326043fe1fe8fea2d87f26c1da83d45c2",
"number": 19634321
},
"l2": {
"hash": "0x8ed4903b7f9c3f7bb7a09374d63ae9c9852cd9aab1784b433c41dbeb47b4dba2",
"number": 0
},
"l2_time": 1712861987,
"system_config": {
"batcherAddr": "0x08f9f14ff43e112b18c96f0986f28cb1878f1d11",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
}
},
"block_time": 2,
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 1,
"l2_chain_id": 60808,
"regolith_time": 0,
"canyon_time": 0,
"delta_time": 0,
"ecotone_time": 0,
"batch_inbox_address": "0x3a75346f81302aac0333fb5dcdd407e12a6cfa83",
"deposit_contract_address": "0x8adee124447435fe03e3cd24df3f4cae32e65a3e",
"l1_system_config_address": "0xacb886b75d76d1c8d9248cfddfa09b70c71c5393",
"protocol_versions_address": "0x0000000000000000000000000000000000000000",
"da_challenge_address": "0x0000000000000000000000000000000000000000",
"da_challenge_window": 0,
"da_resolve_window": 0,
"use_plasma": false,
"fjord_time": 1720627201,
"granite_time": 1726070401,
"holocene_time": 1736445601,
"isthmus_time": 1746806401,
"jovian_time": 1773325801,
"karst_time": 1790179201
}
@@ -90,6 +90,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-bob-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon - ${BOB_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-bob-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -130,6 +131,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=16071 - KONA_NODE_P2P_LISTEN_TCP_PORT=16071
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -142,6 +144,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -90,6 +90,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-bob-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon - ${BOB_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-bob-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -129,11 +130,11 @@ services:
- OP_NODE_METRICS_ADDR=0.0.0.0 - OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true - OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300 - OP_NODE_METRICS_PORT=7300
- OP_NODE_NETWORK=bob-mainnet
- OP_NODE_P2P_ADVERTISE_IP=${IP} - OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_P2P_LISTEN_IP=0.0.0.0 - OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_P2P_LISTEN_TCP_PORT=16071 - OP_NODE_P2P_LISTEN_TCP_PORT=16071
- OP_NODE_P2P_LISTEN_UDP_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_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
- OP_NODE_RPC_ADDR=0.0.0.0 - OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=9545 - OP_NODE_RPC_PORT=9545
@@ -149,6 +150,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -129,6 +129,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=16378 - KONA_NODE_P2P_LISTEN_TCP_PORT=16378
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -127,6 +127,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=19360 - KONA_NODE_P2P_LISTEN_TCP_PORT=19360
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -92,6 +92,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-bob-mainnet-op-geth-archive-leveldb-hash}:/data - ${BOB_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-bob-mainnet-op-geth-archive-leveldb-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -131,6 +132,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=19046 - KONA_NODE_P2P_LISTEN_TCP_PORT=19046
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -143,6 +145,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -92,6 +92,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-bob-mainnet-op-geth-archive-leveldb-hash}:/data - ${BOB_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-bob-mainnet-op-geth-archive-leveldb-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -129,11 +130,11 @@ services:
- OP_NODE_METRICS_ADDR=0.0.0.0 - OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true - OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300 - OP_NODE_METRICS_PORT=7300
- OP_NODE_NETWORK=bob-mainnet
- OP_NODE_P2P_ADVERTISE_IP=${IP} - OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_P2P_LISTEN_IP=0.0.0.0 - OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_P2P_LISTEN_TCP_PORT=19046 - OP_NODE_P2P_LISTEN_TCP_PORT=19046
- OP_NODE_P2P_LISTEN_UDP_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_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
- OP_NODE_RPC_ADDR=0.0.0.0 - OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=9545 - OP_NODE_RPC_PORT=9545
@@ -149,6 +150,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -92,6 +92,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-archive-pebble-hash}:/data - ${BOB_MAINNET_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-archive-pebble-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -131,6 +132,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17223 - KONA_NODE_P2P_LISTEN_TCP_PORT=17223
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -143,6 +145,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -92,6 +92,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-archive-pebble-hash}:/data - ${BOB_MAINNET_OP_GETH_ARCHIVE_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-archive-pebble-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -129,11 +130,11 @@ services:
- OP_NODE_METRICS_ADDR=0.0.0.0 - OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true - OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300 - OP_NODE_METRICS_PORT=7300
- OP_NODE_NETWORK=bob-mainnet
- OP_NODE_P2P_ADVERTISE_IP=${IP} - OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_P2P_LISTEN_IP=0.0.0.0 - OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_P2P_LISTEN_TCP_PORT=17223 - OP_NODE_P2P_LISTEN_TCP_PORT=17223
- OP_NODE_P2P_LISTEN_UDP_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_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
- OP_NODE_RPC_ADDR=0.0.0.0 - OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=9545 - OP_NODE_RPC_PORT=9545
@@ -149,6 +150,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -92,6 +92,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-pruned-pebble-hash}:/data - ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-pruned-pebble-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -131,6 +132,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=16363 - KONA_NODE_P2P_LISTEN_TCP_PORT=16363
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -143,6 +145,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -92,6 +92,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-pruned-pebble-hash}:/data - ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_HASH_DATA:-bob-mainnet-op-geth-pruned-pebble-hash}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -129,11 +130,11 @@ services:
- OP_NODE_METRICS_ADDR=0.0.0.0 - OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true - OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300 - OP_NODE_METRICS_PORT=7300
- OP_NODE_NETWORK=bob-mainnet
- OP_NODE_P2P_ADVERTISE_IP=${IP} - OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_P2P_LISTEN_IP=0.0.0.0 - OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_P2P_LISTEN_TCP_PORT=16363 - OP_NODE_P2P_LISTEN_TCP_PORT=16363
- OP_NODE_P2P_LISTEN_UDP_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_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
- OP_NODE_RPC_ADDR=0.0.0.0 - OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=9545 - OP_NODE_RPC_PORT=9545
@@ -149,6 +150,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -92,6 +92,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-bob-mainnet-op-geth-pruned-pebble-path}:/data - ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-bob-mainnet-op-geth-pruned-pebble-path}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -131,6 +132,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=18347 - KONA_NODE_P2P_LISTEN_TCP_PORT=18347
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -143,6 +145,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -92,6 +92,7 @@ services:
- chains - chains
volumes: volumes:
- ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-bob-mainnet-op-geth-pruned-pebble-path}:/data - ${BOB_MAINNET_OP_GETH_PRUNED_PEBBLE_PATH_DATA:-bob-mainnet-op-geth-pruned-pebble-path}:/data
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
logging: *logging-defaults logging: *logging-defaults
@@ -129,11 +130,11 @@ services:
- OP_NODE_METRICS_ADDR=0.0.0.0 - OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true - OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300 - OP_NODE_METRICS_PORT=7300
- OP_NODE_NETWORK=bob-mainnet
- OP_NODE_P2P_ADVERTISE_IP=${IP} - OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_P2P_LISTEN_IP=0.0.0.0 - OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_P2P_LISTEN_TCP_PORT=18347 - OP_NODE_P2P_LISTEN_TCP_PORT=18347
- OP_NODE_P2P_LISTEN_UDP_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_ROLLUP_LOAD_PROTOCOL_VERSIONS=true
- OP_NODE_RPC_ADDR=0.0.0.0 - OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=9545 - OP_NODE_RPC_PORT=9545
@@ -149,6 +150,7 @@ services:
networks: networks:
- chains - chains
volumes: volumes:
- ./op/bob/mainnet:/config
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
logging: *logging-defaults logging: *logging-defaults
labels: labels:
@@ -133,6 +133,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=19113 - KONA_NODE_P2P_LISTEN_TCP_PORT=19113
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -133,6 +133,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17188 - KONA_NODE_P2P_LISTEN_TCP_PORT=17188
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -131,6 +131,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=15789 - KONA_NODE_P2P_LISTEN_TCP_PORT=15789
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -131,6 +131,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17091 - KONA_NODE_P2P_LISTEN_TCP_PORT=17091
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -131,6 +131,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=16009 - KONA_NODE_P2P_LISTEN_TCP_PORT=16009
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -63,7 +63,7 @@ services:
- GETH_OVERRIDE_ISTHMUS=1751554801 - GETH_OVERRIDE_ISTHMUS=1751554801
- GETH_ROLLUP_DISABLETXPOOLGOSSIP=true - GETH_ROLLUP_DISABLETXPOOLGOSSIP=true
- GETH_ROLLUP_SEQUENCERHTTP=https://rpc.hemi.network/rpc - GETH_ROLLUP_SEQUENCERHTTP=https://rpc.hemi.network/rpc
- GETH_TBC_SEEDS=seed.bitcoin.sipa.be,dnsseed.bitcoin.dashjr.org - GETH_TBC_SEEDS=69.117.149.33:8333,24.129.130.162:8333,seed.bitcoin.sipa.be:8333,dnsseed.emzy.de:8333
- OP_GETH_L2_READINESS_RPC=http://localhost:8545 - 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 "$@"' -- 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: command:
@@ -71,7 +71,7 @@ services:
- --datadir=/data - --datadir=/data
- --db.engine=leveldb - --db.engine=leveldb
- --gcmode=full - --gcmode=full
- --hvm.genesisheader=0000003efaaa2ba65de684c512bb67ef115298d1d16bcb49b16c020000000000000000ed31a56788c4488afc4ee69e0791ad6aeeb9ea05f069e0fdde6159068765ad3f4128a96726770217e7f41c86 - --hvm.genesisheader=0000003efaaa2ba65de684c512bb67ef115298d1d16bcb49b16c02000000000000000000ed31a56788c4488afc4ee69e0791ad6aeeb9ea05f069e0fdde6159068765ad3f4128a96726770217e7f41c86
- --hvm.genesisheight=883092 - --hvm.genesisheight=883092
- --hvm.headerdatadir=/data/tbc/headers - --hvm.headerdatadir=/data/tbc/headers
- --maxpeers=50 - --maxpeers=50
@@ -32,7 +32,7 @@ x-logging-defaults: &logging-defaults
services: services:
mantle-mainnet-archive: mantle-mainnet-archive:
image: ${MANTLE_GETH_IMAGE:-mantlenetworkio/mantle-op-geth}:${MANTLE_MAINNET_GETH_VERSION:-v1.5.5} image: ${MANTLE_GETH_IMAGE:-mantlenetworkio/mantle-op-geth}:${MANTLE_MAINNET_GETH_VERSION:-v1.6.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle 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 - traefik.http.routers.mantle-mainnet-op-geth-archive-leveldb-hash.middlewares=mantle-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
mantle-mainnet-archive-node: mantle-mainnet-archive-node:
image: ${MANTLE_NODE_IMAGE:-mantlenetworkio/mantle-op-node}:${MANTLE_MAINNET_NODE_VERSION:-v1.5.4} image: ${MANTLE_NODE_IMAGE:-mantlenetworkio/mantle-op-node}:${MANTLE_MAINNET_NODE_VERSION:-v1.6.3}
ports: ports:
- 16055:16055 - 16055:16055
- 16055:16055/udp - 16055:16055/udp
@@ -32,7 +32,7 @@ x-logging-defaults: &logging-defaults
services: services:
mantle-mainnet: mantle-mainnet:
image: ${MANTLE_GETH_IMAGE:-mantlenetworkio/mantle-op-geth}:${MANTLE_MAINNET_GETH_VERSION:-v1.5.5} image: ${MANTLE_GETH_IMAGE:-mantlenetworkio/mantle-op-geth}:${MANTLE_MAINNET_GETH_VERSION:-v1.6.3}
sysctls: sysctls:
# TCP Performance # TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle 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 - traefik.http.routers.mantle-mainnet-op-geth-pruned-leveldb-hash.middlewares=mantle-mainnet-op-geth-pruned-leveldb-hash-stripprefix, ipallowlist
mantle-mainnet-node: mantle-mainnet-node:
image: ${MANTLE_NODE_IMAGE:-mantlenetworkio/mantle-op-node}:${MANTLE_MAINNET_NODE_VERSION:-v1.5.4} image: ${MANTLE_NODE_IMAGE:-mantlenetworkio/mantle-op-node}:${MANTLE_MAINNET_NODE_VERSION:-v1.6.3}
ports: ports:
- 17067:17067 - 17067:17067
- 17067:17067/udp - 17067:17067/udp
@@ -128,6 +128,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17066 - KONA_NODE_P2P_LISTEN_TCP_PORT=17066
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -128,6 +128,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=18237 - KONA_NODE_P2P_LISTEN_TCP_PORT=18237
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -128,6 +128,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=18714 - KONA_NODE_P2P_LISTEN_TCP_PORT=18714
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -135,6 +135,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=17151 - KONA_NODE_P2P_LISTEN_TCP_PORT=17151
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
@@ -133,7 +133,7 @@ services:
shm_size: 2gb shm_size: 2gb
xlayer-testnet-op-reth-node: xlayer-testnet-op-reth-node:
image: ${XLAYER_NODE_IMAGE:-xlayer/op-node}:${XLAYER_TESTNET_NODE_VERSION:-v0.1.5.1} image: ${XLAYER_NODE_IMAGE:-xlayer/op-node}:${XLAYER_TESTNET_NODE_VERSION:-v0.1.6}
ports: ports:
- 18466:18466 - 18466:18466
- 18466:18466/udp - 18466:18466/udp
@@ -134,6 +134,7 @@ services:
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0 - KONA_NODE_P2P_LISTEN_IP=0.0.0.0
- KONA_NODE_P2P_LISTEN_TCP_PORT=18561 - KONA_NODE_P2P_LISTEN_TCP_PORT=18561
- KONA_NODE_P2P_LISTEN_UDP_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_ADDR=0.0.0.0
- KONA_NODE_RPC_PORT=9545 - KONA_NODE_RPC_PORT=9545
- OP_NODE_SYNCMODE=execution-layer - OP_NODE_SYNCMODE=execution-layer
+53 -56
View File
@@ -10,55 +10,9 @@ interval = 5
p2p_port = 34070 p2p_port = 34070
timeout = 5 timeout = 5
identity_file_path = "/consensus/ec-secp256k1-non-validator.der" identity_file_path = "/consensus/ec-secp256k1-non-validator.der"
trusted_only = true trusted_only = false
discovery.enabled = 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] [network.bootstrap_nodes.0]
api_host = "plasma-mainnet-observer-cs-1.plasmalabs.tech" api_host = "plasma-mainnet-observer-cs-1.plasmalabs.tech"
p2p_port = 34070 p2p_port = 34070
@@ -74,14 +28,57 @@ api_host = "plasma-mainnet-observer-cs-9.plasmalabs.tech"
p2p_port = 34070 p2p_port = 34070
peer_id = "16Uiu2HAm2PVfZRoyXXLASVzVX3gyBEQd3mRAzZytjv3esD9kWumD" peer_id = "16Uiu2HAm2PVfZRoyXXLASVzVX3gyBEQd3mRAzZytjv3esD9kWumD"
[[network.trusted_peers]] [network.bls_peer_ids]
peer_id = "16Uiu2HAm4WdZmik6PVsRvcbCzc1eHuNfQHgj52CxUAjmdC7W5dXi" ad840fde21315f757ae4f7b30629d6446fced8648b46adfe6cfcda615ee7d93b2c8bd160fc189899d388133935686972 = "16Uiu2HAkvjrtriXRzhVp4i6jdNb6wPWA9wh9TKvsh1DnFJe4AF1J"
address = "plasma-mainnet-observer-cs-1.plasmalabs.tech:34070" a65fda74154fc876c70feb22e5d51be5d224f57152c37d6ceadb534f0c1976992cc8470b87ade6071574b778ff420828 = "16Uiu2HAkv5EgrXXwi4gheip871xYJrY5Gc7oVTs3TWuS1BgFN5jE"
9732eabb15ac6fe92a0107c4faf5a2ba175ce0a835e36e0d5892bfea220bc43a1894ff0c75067c733bc3a9c2798b6b3b = "16Uiu2HAkuz46swzu5uRzjwf15YsJBe4yawh9qHtPhtHo5mZp9rQU"
90bf4d4e3b84f19842d7e01fb09403b074730823fc143f47307018edb03659765d91ce297f945c77e1a198eed0da5b93 = "16Uiu2HAmMjDzXsnKm7xFq2gVAUKhcTtMsETXPWo3HDwnKSVyHCBv"
a9dcac28ddbf37c7af585a77c6b49568b1d844027443bac69769d5fb69796d8fb93d798ff37c0b1a91fd263576e207d4 = "16Uiu2HAmVXe3Jpb5AVuKoggNJ1cvYKZT7yC7C7Me3JYNrD36hqvU"
9173143cf3df430b15bc52961a516e1923d023aac7e31c8e4b35a5df41133934639557bec12dcc80b21f4cb879dbf49e = "16Uiu2HAm4mHePE4gesAb9KhUsQ9vbGyxZGbKD2H8Qv9LSERfQ4fq"
b9935908a1c1b77f8c388767eeb21a8e85b2131204dfea5bed53559b881d22c3bca57237c389be16da6d1ff25aca1385 = "16Uiu2HAmN7iKTmj56PzYBueSo1niYUC7jagvfKPqooz4X9ooTKUs"
a74898f0250015bd973d569a5c70c7b3ef46121dd6035ce95d000f2fdc61fafd0145d47933ff26ee65a533adbd2e699d = "16Uiu2HAmLtcwU8CSSATpyukvZ9xgjaihjYDye4pBAnvpUsgU9uXQ"
a442d581de5524eddaf4c8c467cc32f04ddab12b88c7e924fbd67c1546abaca6f8f521dcfafa2df62baa7eda3c055b14 = "16Uiu2HAmCM3TprzKxopBXVP8en3aFH2NuMMgVfYyunvqxt9LWuMF"
a24775fea0da6e9800492fd896896e79d6cb70058d1f97d2e7405078fcf051b9c49ad60455a11e85dc553cc4a19c2c5e = "16Uiu2HAky6J4k55kyXPiFrtJnqAt6WG4rMC1V2cg7t3E7KmHug7a"
[[network.trusted_peers]] [api]
peer_id = "16Uiu2HAmGmnMycTkjnMoxcyVAF8cUFpVoVKKCAGTpwEBJMs181yM" enabled = true
address = "plasma-mainnet-observer-cs-4.plasmalabs.tech:34070" host = "0.0.0.0"
port = 35070
[[network.trusted_peers]] [chain.aquila]
peer_id = "16Uiu2HAm2PVfZRoyXXLASVzVX3gyBEQd3mRAzZytjv3esD9kWumD" activation_height = 33300000
address = "plasma-mainnet-observer-cs-9.plasmalabs.tech:34070" 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"
@@ -50,7 +50,7 @@ services:
logging: *logging-defaults logging: *logging-defaults
plasma-mainnet-initialize-consensus: plasma-mainnet-initialize-consensus:
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_MAINNET_PLASMA_CONSENSUS_VERSION:-0.15.0} image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_MAINNET_PLASMA_CONSENSUS_VERSION:-1.1.0}
user: 0:0 user: 0:0
entrypoint: [/bin/bash, -c] entrypoint: [/bin/bash, -c]
command: command:
@@ -58,8 +58,8 @@ services:
set -euo pipefail set -euo pipefail
if [ ! -f /consensus/data.mdb ]; then if [ ! -f /consensus/data.mdb ]; then
echo "INFO Generating consensus database for mainnet network" echo "INFO Generating consensus database for mainnet network"
plasma-cli init \ plasma-cli init observer \
--chain /node/genesis.json \ --config-path /config/non-validator.toml \
--data-dir /consensus --data-dir /consensus
else else
echo "INFO Consensus database already exists at /consensus/data.mdb" echo "INFO Consensus database already exists at /consensus/data.mdb"
@@ -80,6 +80,7 @@ services:
volumes: volumes:
- ${PLASMA_MAINNET_RETH_PRUNED_TRACE_CONSENSUS_DATA:-plasma-mainnet-reth-pruned-trace-consensus}:/consensus:rw - ${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/genesis.json:/node/genesis.json:ro
- ./plasma/mainnet/non-validator.toml:/config/non-validator.toml:ro
- .jwtsecret:/jwt/jwt.hex:ro - .jwtsecret:/jwt/jwt.hex:ro
logging: *logging-defaults logging: *logging-defaults
@@ -190,7 +191,7 @@ services:
shm_size: 2gb shm_size: 2gb
plasma-mainnet-node: plasma-mainnet-node:
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_MAINNET_PLASMA_CONSENSUS_VERSION:-0.15.0} image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_MAINNET_PLASMA_CONSENSUS_VERSION:-1.1.0}
user: 0:0 user: 0:0
ports: ports:
- 18415:34070 - 18415:34070
@@ -212,8 +213,7 @@ services:
exec plasma-cli observer \ exec plasma-cli observer \
--config-path /tmp/non-validator.toml \ --config-path /tmp/non-validator.toml \
--no-color \ --no-color \
--timeout-stream-manager 5s \ --timeout-stream-manager 10ms \
--nat=extip:${IP}:18415 \
--telemetry.enable-metrics \ --telemetry.enable-metrics \
--telemetry.enable-health \ --telemetry.enable-health \
--telemetry.host 0.0.0.0 \ --telemetry.host 0.0.0.0 \
@@ -50,7 +50,7 @@ services:
logging: *logging-defaults logging: *logging-defaults
plasma-testnet-initialize-consensus: plasma-testnet-initialize-consensus:
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_TESTNET_PLASMA_CONSENSUS_VERSION:-0.15.0} image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_TESTNET_PLASMA_CONSENSUS_VERSION:-1.1.0}
user: 0:0 user: 0:0
entrypoint: [/bin/bash, -c] entrypoint: [/bin/bash, -c]
command: command:
@@ -58,8 +58,8 @@ services:
set -euo pipefail set -euo pipefail
if [ ! -f /consensus/data.mdb ]; then if [ ! -f /consensus/data.mdb ]; then
echo "INFO Generating consensus database for testnet network" echo "INFO Generating consensus database for testnet network"
plasma-cli init \ plasma-cli init observer \
--chain /node/genesis.json \ --config-path /config/non-validator.toml \
--data-dir /consensus --data-dir /consensus
else else
echo "INFO Consensus database already exists at /consensus/data.mdb" echo "INFO Consensus database already exists at /consensus/data.mdb"
@@ -80,6 +80,7 @@ services:
volumes: volumes:
- ${PLASMA_TESTNET_RETH_PRUNED_TRACE_CONSENSUS_DATA:-plasma-testnet-reth-pruned-trace-consensus}:/consensus:rw - ${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/genesis.json:/node/genesis.json:ro
- ./plasma/testnet/non-validator.toml:/config/non-validator.toml:ro
- .jwtsecret:/jwt/jwt.hex:ro - .jwtsecret:/jwt/jwt.hex:ro
logging: *logging-defaults logging: *logging-defaults
@@ -190,7 +191,7 @@ services:
shm_size: 2gb shm_size: 2gb
plasma-testnet-node: plasma-testnet-node:
image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_TESTNET_PLASMA_CONSENSUS_VERSION:-0.15.0} image: ${PLASMA_PLASMA_CONSENSUS_IMAGE:-ghcr.io/plasmalaboratories/plasma-consensus-public}:${PLASMA_TESTNET_PLASMA_CONSENSUS_VERSION:-1.1.0}
user: 0:0 user: 0:0
ports: ports:
- 19566:34070 - 19566:34070
@@ -212,8 +213,7 @@ services:
exec plasma-cli observer \ exec plasma-cli observer \
--config-path /tmp/non-validator.toml \ --config-path /tmp/non-validator.toml \
--no-color \ --no-color \
--timeout-stream-manager 5s \ --timeout-stream-manager 10ms \
--nat=extip:${IP}:19566 \
--telemetry.enable-metrics \ --telemetry.enable-metrics \
--telemetry.enable-health \ --telemetry.enable-health \
--telemetry.host 0.0.0.0 \ --telemetry.host 0.0.0.0 \
+55 -46
View File
@@ -13,52 +13,6 @@ identity_file_path = "/consensus/ec-secp256k1-non-validator.der"
trusted_only = false trusted_only = false
discovery.enabled = 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] [network.bootstrap_nodes.0]
api_host = "plasma-testnet-observer-cs-1.plasmalabs.tech" api_host = "plasma-testnet-observer-cs-1.plasmalabs.tech"
p2p_port = 34070 p2p_port = 34070
@@ -73,3 +27,58 @@ peer_id = "16Uiu2HAm3gGfJyWKSEzi67nL9CYc1umG5DdGp7TFHZSaWvd5N2AK"
api_host = "plasma-testnet-observer-cs-9.plasmalabs.tech" api_host = "plasma-testnet-observer-cs-9.plasmalabs.tech"
p2p_port = 34070 p2p_port = 34070
peer_id = "16Uiu2HAmLzq4LCDQ8FNSPs5ESsWAiSUfDQjXjtbrx3fG9M9qZrU6" peer_id = "16Uiu2HAmLzq4LCDQ8FNSPs5ESsWAiSUfDQjXjtbrx3fG9M9qZrU6"
[network.bls_peer_ids]
b2f8ba24adce5aae4c4355bfe662c7abef765fd7d18fc1facd88db53da919039ae1fa59e2fd334c35f8644934f0313af = "16Uiu2HAm9VojHMAAMAKF7a4cdrsNDTaYis3oFWbK3JecthZA4gMk"
a6c1f484342d0f01ec0cf53b5d467e5547aba508298ee95da7342663fd3e6dfd06ed386d4581900ce88074cb21a26bd4 = "16Uiu2HAm4SQW76nEKeGZwQ8azRtYfNNC1mZb4khsJR3rvhaqPv3h"
94d99d2d5751d48a0b7f653ed81bcef9c097c8eb808f0bd05867a757462924d22ffd8168e6b3f45ea52ce52cf7d3487a = "16Uiu2HAmGNEFW4EFP2pDkN6yoa5JzB7iqvad4NqXRnuepqNyUs3x"
87a3288cece2f105f0c61a88430355a2ffcbf86a41c6f5a112b61e7dfd103ddd00845127ec7eaed8608f3c052f80a12e = "16Uiu2HAmUx7Vm3voDz4Wt5KiQCDRqRMwNuip5vArpviXn3psZQhk"
93f351dc7f43e39ed8b4c3bcc96ad52ba643c85965e2bdeede33a8c1ff0904433848bc5d4a84246ee60e459814079203 = "16Uiu2HAmLkucJtxQ6oa4TTmjn45dVQbm8iPx2HAKJE4NMGiE2XAQ"
87ff47c8986af8589af85367c5660ed0b3f5b0f3368f4c873fe7944e80ca793d8f5d62235685fc5755272eefda0f0aed = "16Uiu2HAmAPSLPskKdM22Y9maw7T8uwK9uH9GzDy8FNGP5oj9vmMm"
a47bcbbec4bc7af7d8d83ef289f9607671e76dd5820a2066cb3f5e9bdcae1fba6aac1ba4732d2f118b1e2d1a573f4dfd = "16Uiu2HAkzsMspP7FosFWUN554jiB9bVqTVkRNGUZs4ersaLpNuRU"
a3fbd91ed97dc4996d00c0dd14d21ae68ca21be53e1701001a168fea4a5f4499f1e48211aee54aca005c743bfd795f29 = "16Uiu2HAm7FvFMyWK7Hpzu3ZXX8fku8rJd5YY4rCzWtck6bgm7Wj3"
80003b3ef56d2e983332c5ae656f67b85a88996ea6d413bef67e294edcb37a991888fe6a4d6d63e25a8750fc694b76a0 = "16Uiu2HAmESAECJ1Y4W7GK2EmpxSUfWoCbs5CidE1pu4vEEGb2qBM"
af35d8fdde248ecb6aed849f7336052edab1da635bd46303ebc14ce5f7befa47be0691d609c7636c1427dd7cc4bc353c = "16Uiu2HAkzVxFvwUvmYgr1NUBX5WhSpFJSbDrVYSwTd5pSgkFfTtL"
[api]
enabled = true
host = "0.0.0.0"
port = 35070
[chain.aquila]
activation_height = 33640000
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 = "b2f8ba24adce5aae4c4355bfe662c7abef765fd7d18fc1facd88db53da919039ae1fa59e2fd334c35f8644934f0313af"
[chain.static_committee.1]
bls_public_key = "a6c1f484342d0f01ec0cf53b5d467e5547aba508298ee95da7342663fd3e6dfd06ed386d4581900ce88074cb21a26bd4"
[chain.static_committee.2]
bls_public_key = "94d99d2d5751d48a0b7f653ed81bcef9c097c8eb808f0bd05867a757462924d22ffd8168e6b3f45ea52ce52cf7d3487a"
[chain.static_committee.3]
bls_public_key = "87a3288cece2f105f0c61a88430355a2ffcbf86a41c6f5a112b61e7dfd103ddd00845127ec7eaed8608f3c052f80a12e"
[chain.static_committee.4]
bls_public_key = "93f351dc7f43e39ed8b4c3bcc96ad52ba643c85965e2bdeede33a8c1ff0904433848bc5d4a84246ee60e459814079203"
[chain.static_committee.5]
bls_public_key = "87ff47c8986af8589af85367c5660ed0b3f5b0f3368f4c873fe7944e80ca793d8f5d62235685fc5755272eefda0f0aed"
[chain.static_committee.6]
bls_public_key = "a47bcbbec4bc7af7d8d83ef289f9607671e76dd5820a2066cb3f5e9bdcae1fba6aac1ba4732d2f118b1e2d1a573f4dfd"
[chain.static_committee.7]
bls_public_key = "a3fbd91ed97dc4996d00c0dd14d21ae68ca21be53e1701001a168fea4a5f4499f1e48211aee54aca005c743bfd795f29"
[chain.static_committee.8]
bls_public_key = "80003b3ef56d2e983332c5ae656f67b85a88996ea6d413bef67e294edcb37a991888fe6a4d6d63e25a8750fc694b76a0"
[chain.static_committee.9]
bls_public_key = "af35d8fdde248ecb6aed849f7336052edab1da635bd46303ebc14ce5f7befa47be0691d609c7636c1427dd7cc4bc353c"