Compare commits
17 Commits
issue-4590
...
611aae805a
| Author | SHA1 | Date | |
|---|---|---|---|
| 611aae805a | |||
| b062191754 | |||
|
|
eee8bc13de | ||
|
|
2960ac3480 | ||
| 03eece850f | |||
| 20618f9f56 | |||
| be4c1a599f | |||
| a8a8986305 | |||
| dd059dfa1e | |||
| 75e92270c6 | |||
| ecf3eea227 | |||
| bc81a514d3 | |||
| 4d0d4e84bd | |||
|
|
4daf21cb27 | ||
| 7006907548 | |||
| 6abace8173 | |||
| 9f7317dcd1 |
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@abstract-mainnet-archive-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@abstract-mainnet-archive-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@abstract-mainnet-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@abstract-mainnet-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@abstract-testnet-archive-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@abstract-testnet-archive-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@abstract-testnet-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@abstract-testnet-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
apechain-mainnet-archive:
|
apechain-mainnet-archive:
|
||||||
image: ${APECHAIN_NITRO_IMAGE:-public.ecr.aws/i6b2w2n6/nitro-node}:${APECHAIN_MAINNET_NITRO_VERSION:-apechain-v3.5.6}
|
image: ${APECHAIN_NITRO_IMAGE:-public.ecr.aws/i6b2w2n6/nitro-node}:${APECHAIN_MAINNET_NITRO_VERSION:-apechain-3.9.9}
|
||||||
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:
|
||||||
apechain-mainnet:
|
apechain-mainnet:
|
||||||
image: ${APECHAIN_NITRO_IMAGE:-public.ecr.aws/i6b2w2n6/nitro-node}:${APECHAIN_MAINNET_NITRO_VERSION:-apechain-v3.5.6}
|
image: ${APECHAIN_NITRO_IMAGE:-public.ecr.aws/i6b2w2n6/nitro-node}:${APECHAIN_MAINNET_NITRO_VERSION:-apechain-3.9.9}
|
||||||
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:
|
||||||
arc-mainnet-archive-consensus-init:
|
arc-mainnet-archive-consensus-init:
|
||||||
image: ${ARC_CONSENSUS_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-consensus}:${ARC_MAINNET_CONSENSUS_VERSION:-0.8.0}
|
image: ${ARC_CONSENSUS_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-consensus}:${ARC_MAINNET_CONSENSUS_VERSION:-0.7.2}
|
||||||
user: 0:0
|
user: 0:0
|
||||||
entrypoint: [/usr/local/bin/arc-node-consensus, init]
|
entrypoint: [/usr/local/bin/arc-node-consensus, init]
|
||||||
command:
|
command:
|
||||||
@@ -57,7 +57,7 @@ services:
|
|||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
arc-mainnet-archive:
|
arc-mainnet-archive:
|
||||||
image: ${ARC_RETH_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-execution}:${ARC_MAINNET_RETH_VERSION:-0.8.0}
|
image: ${ARC_RETH_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-execution}:${ARC_MAINNET_RETH_VERSION:-0.7.2}
|
||||||
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
|
||||||
@@ -119,7 +119,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
arc-mainnet-archive-node:
|
arc-mainnet-archive-node:
|
||||||
image: ${ARC_CONSENSUS_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-consensus}:${ARC_MAINNET_CONSENSUS_VERSION:-0.8.0}
|
image: ${ARC_CONSENSUS_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-consensus}:${ARC_MAINNET_CONSENSUS_VERSION:-0.7.2}
|
||||||
user: 0:0
|
user: 0:0
|
||||||
expose:
|
expose:
|
||||||
- 31000
|
- 31000
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
arc-mainnet-consensus-init:
|
arc-mainnet-consensus-init:
|
||||||
image: ${ARC_CONSENSUS_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-consensus}:${ARC_MAINNET_CONSENSUS_VERSION:-0.8.0}
|
image: ${ARC_CONSENSUS_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-consensus}:${ARC_MAINNET_CONSENSUS_VERSION:-0.7.2}
|
||||||
user: 0:0
|
user: 0:0
|
||||||
entrypoint: [/usr/local/bin/arc-node-consensus, init]
|
entrypoint: [/usr/local/bin/arc-node-consensus, init]
|
||||||
command:
|
command:
|
||||||
@@ -57,7 +57,7 @@ services:
|
|||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
arc-mainnet:
|
arc-mainnet:
|
||||||
image: ${ARC_RETH_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-execution}:${ARC_MAINNET_RETH_VERSION:-0.8.0}
|
image: ${ARC_RETH_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-execution}:${ARC_MAINNET_RETH_VERSION:-0.7.2}
|
||||||
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
|
||||||
@@ -121,7 +121,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
arc-mainnet-node:
|
arc-mainnet-node:
|
||||||
image: ${ARC_CONSENSUS_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-consensus}:${ARC_MAINNET_CONSENSUS_VERSION:-0.8.0}
|
image: ${ARC_CONSENSUS_IMAGE:-docker.cloudsmith.io/circle/arc-network/arc-consensus}:${ARC_MAINNET_CONSENSUS_VERSION:-0.7.2}
|
||||||
user: 0:0
|
user: 0:0
|
||||||
expose:
|
expose:
|
||||||
- 31000
|
- 31000
|
||||||
|
|||||||
@@ -2,5 +2,18 @@
|
|||||||
"state-sync-enabled": false,
|
"state-sync-enabled": false,
|
||||||
"pruning-enabled": false,
|
"pruning-enabled": false,
|
||||||
"rpc-gas-cap": 2500000000,
|
"rpc-gas-cap": 2500000000,
|
||||||
"eth-rpc-gas-limit": 2500000000
|
"eth-rpc-gas-limit": 2500000000,
|
||||||
|
"eth-apis": [
|
||||||
|
"eth",
|
||||||
|
"eth-filter",
|
||||||
|
"net",
|
||||||
|
"web3",
|
||||||
|
"internal-eth",
|
||||||
|
"internal-blockchain",
|
||||||
|
"internal-transaction",
|
||||||
|
"debug",
|
||||||
|
"debug-tracer",
|
||||||
|
"debug-file-tracer",
|
||||||
|
"debug-handler"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,5 +2,18 @@
|
|||||||
"rpc-gas-cap": 2500000000,
|
"rpc-gas-cap": 2500000000,
|
||||||
"eth-rpc-gas-limit": 2500000000,
|
"eth-rpc-gas-limit": 2500000000,
|
||||||
"state-sync-enabled": true,
|
"state-sync-enabled": true,
|
||||||
"state-sync-skip-resume": true
|
"state-sync-skip-resume": true,
|
||||||
|
"eth-apis": [
|
||||||
|
"eth",
|
||||||
|
"eth-filter",
|
||||||
|
"net",
|
||||||
|
"web3",
|
||||||
|
"internal-eth",
|
||||||
|
"internal-blockchain",
|
||||||
|
"internal-transaction",
|
||||||
|
"debug",
|
||||||
|
"debug-tracer",
|
||||||
|
"debug-file-tracer",
|
||||||
|
"debug-handler"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,17 @@
|
|||||||
{
|
{
|
||||||
"state-sync-enabled": false,
|
"state-sync-enabled": false,
|
||||||
"pruning-enabled": false
|
"pruning-enabled": false,
|
||||||
|
"eth-apis": [
|
||||||
|
"eth",
|
||||||
|
"eth-filter",
|
||||||
|
"net",
|
||||||
|
"web3",
|
||||||
|
"internal-eth",
|
||||||
|
"internal-blockchain",
|
||||||
|
"internal-transaction",
|
||||||
|
"debug",
|
||||||
|
"debug-tracer",
|
||||||
|
"debug-file-tracer",
|
||||||
|
"debug-handler"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,7 @@
|
|||||||
{
|
{
|
||||||
"snowman-api-enabled": false,
|
|
||||||
"coreth-admin-api-enabled": false,
|
|
||||||
"net-api-enabled": true,
|
|
||||||
"rpc-gas-cap": 2500000000,
|
"rpc-gas-cap": 2500000000,
|
||||||
"rpc-tx-fee-cap": 100,
|
"rpc-tx-fee-cap": 100,
|
||||||
"eth-rpc-gas-limit": 2500000000,
|
"eth-rpc-gas-limit": 2500000000,
|
||||||
"eth-api-enabled": true,
|
|
||||||
"personal-api-enabled": false,
|
|
||||||
"tx-pool-api-enabled": false,
|
|
||||||
"debug-api-enabled": false,
|
|
||||||
"web3-api-enabled": true,
|
|
||||||
"local-txs-enabled": false,
|
"local-txs-enabled": false,
|
||||||
"pruning-enabled": false,
|
"pruning-enabled": false,
|
||||||
"api-max-duration": 0,
|
"api-max-duration": 0,
|
||||||
@@ -20,5 +12,18 @@
|
|||||||
"state-sync-skip-resume": true,
|
"state-sync-skip-resume": true,
|
||||||
"state-scheme": "firewood",
|
"state-scheme": "firewood",
|
||||||
"populate-missing-tries": null,
|
"populate-missing-tries": null,
|
||||||
"snapshot-cache": 0
|
"snapshot-cache": 0,
|
||||||
|
"eth-apis": [
|
||||||
|
"eth",
|
||||||
|
"eth-filter",
|
||||||
|
"net",
|
||||||
|
"web3",
|
||||||
|
"internal-eth",
|
||||||
|
"internal-blockchain",
|
||||||
|
"internal-transaction",
|
||||||
|
"debug",
|
||||||
|
"debug-tracer",
|
||||||
|
"debug-file-tracer",
|
||||||
|
"debug-handler"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,7 @@
|
|||||||
{
|
{
|
||||||
"snowman-api-enabled": false,
|
|
||||||
"coreth-admin-api-enabled": false,
|
|
||||||
"net-api-enabled": true,
|
|
||||||
"rpc-gas-cap": 2500000000,
|
"rpc-gas-cap": 2500000000,
|
||||||
"rpc-tx-fee-cap": 100,
|
"rpc-tx-fee-cap": 100,
|
||||||
"eth-rpc-gas-limit": 2500000000,
|
"eth-rpc-gas-limit": 2500000000,
|
||||||
"eth-api-enabled": true,
|
|
||||||
"personal-api-enabled": false,
|
|
||||||
"tx-pool-api-enabled": false,
|
|
||||||
"debug-api-enabled": false,
|
|
||||||
"web3-api-enabled": true,
|
|
||||||
"local-txs-enabled": false,
|
"local-txs-enabled": false,
|
||||||
"pruning-enabled": true,
|
"pruning-enabled": true,
|
||||||
"api-max-duration": 0,
|
"api-max-duration": 0,
|
||||||
@@ -17,5 +9,18 @@
|
|||||||
"allow-unfinalized-queries": false,
|
"allow-unfinalized-queries": false,
|
||||||
"log-level": "info",
|
"log-level": "info",
|
||||||
"state-sync-enabled": true,
|
"state-sync-enabled": true,
|
||||||
"state-sync-skip-resume": true
|
"state-sync-skip-resume": true,
|
||||||
|
"eth-apis": [
|
||||||
|
"eth",
|
||||||
|
"eth-filter",
|
||||||
|
"net",
|
||||||
|
"web3",
|
||||||
|
"internal-eth",
|
||||||
|
"internal-blockchain",
|
||||||
|
"internal-transaction",
|
||||||
|
"debug",
|
||||||
|
"debug-tracer",
|
||||||
|
"debug-file-tracer",
|
||||||
|
"debug-handler"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@@ -68,11 +68,28 @@ ct_merge_seeds() {
|
|||||||
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
_seeds=$(ct_valid_peers "$_seeds")
|
||||||
if [ -n "$_seeds" ]; then
|
if [ -n "$_seeds" ]; then
|
||||||
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ct_valid_peers LIST
|
||||||
|
# Keep only well-formed CometBFT peer entries (<40-hex node id>@<host>:<port>), drop and
|
||||||
|
# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes
|
||||||
|
# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31.
|
||||||
|
ct_valid_peers() {
|
||||||
|
_in="$1"; _out=""
|
||||||
|
for _p in $(echo "$_in" | tr ',' ' '); do
|
||||||
|
if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then
|
||||||
|
_out="${_out:+$_out,}$_p"
|
||||||
|
else
|
||||||
|
ct_log "dropping malformed peer entry: $_p"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "$_out"
|
||||||
|
}
|
||||||
|
|
||||||
# ct_set_persistent_peers CONFIG_TOML PEERS
|
# ct_set_persistent_peers CONFIG_TOML PEERS
|
||||||
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
||||||
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
||||||
@@ -80,6 +97,8 @@ ct_set_persistent_peers() {
|
|||||||
_cfg="$1"; _peers="$2"
|
_cfg="$1"; _peers="$2"
|
||||||
[ -f "$_cfg" ] || return 0
|
[ -f "$_cfg" ] || return 0
|
||||||
[ -n "$_peers" ] || return 0
|
[ -n "$_peers" ] || return 0
|
||||||
|
_peers=$(ct_valid_peers "$_peers")
|
||||||
|
[ -n "$_peers" ] || return 0
|
||||||
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
||||||
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -7706,6 +7706,23 @@
|
|||||||
"base-mainnet-op-reth-archive-trace"
|
"base-mainnet-op-reth-archive-trace"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "mainnet",
|
||||||
|
"client": "reth",
|
||||||
|
"compose_file": "op/reth/base-mainnet-op-reth-minimal-trace--kona",
|
||||||
|
"drpc_chain": "base",
|
||||||
|
"features": [
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"network": "base",
|
||||||
|
"node": "kona",
|
||||||
|
"relay": null,
|
||||||
|
"stack": "op",
|
||||||
|
"type": "minimal",
|
||||||
|
"volumes": [
|
||||||
|
"base-mainnet-op-reth-minimal-trace"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "mainnet",
|
"chain": "mainnet",
|
||||||
"client": "reth",
|
"client": "reth",
|
||||||
@@ -7715,7 +7732,7 @@
|
|||||||
"trace"
|
"trace"
|
||||||
],
|
],
|
||||||
"network": "base",
|
"network": "base",
|
||||||
"node": "node",
|
"node": "kona",
|
||||||
"relay": null,
|
"relay": null,
|
||||||
"stack": "op",
|
"stack": "op",
|
||||||
"type": "minimal",
|
"type": "minimal",
|
||||||
@@ -7723,6 +7740,23 @@
|
|||||||
"base-mainnet-op-reth-minimal-trace"
|
"base-mainnet-op-reth-minimal-trace"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "mainnet",
|
||||||
|
"client": "reth",
|
||||||
|
"compose_file": "op/reth/base-mainnet-op-reth-pruned-trace--kona",
|
||||||
|
"drpc_chain": "base",
|
||||||
|
"features": [
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"network": "base",
|
||||||
|
"node": "kona",
|
||||||
|
"relay": null,
|
||||||
|
"stack": "op",
|
||||||
|
"type": "pruned",
|
||||||
|
"volumes": [
|
||||||
|
"base-mainnet-op-reth-pruned-trace"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "mainnet",
|
"chain": "mainnet",
|
||||||
"client": "reth",
|
"client": "reth",
|
||||||
@@ -7732,7 +7766,7 @@
|
|||||||
"trace"
|
"trace"
|
||||||
],
|
],
|
||||||
"network": "base",
|
"network": "base",
|
||||||
"node": "node",
|
"node": "kona",
|
||||||
"relay": null,
|
"relay": null,
|
||||||
"stack": "op",
|
"stack": "op",
|
||||||
"type": "pruned",
|
"type": "pruned",
|
||||||
@@ -7740,6 +7774,23 @@
|
|||||||
"base-mainnet-op-reth-pruned-trace"
|
"base-mainnet-op-reth-pruned-trace"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "sepolia",
|
||||||
|
"client": "reth",
|
||||||
|
"compose_file": "op/reth/base-sepolia-op-reth-archive-trace--kona",
|
||||||
|
"drpc_chain": "base-sepolia",
|
||||||
|
"features": [
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"network": "base",
|
||||||
|
"node": "kona",
|
||||||
|
"relay": null,
|
||||||
|
"stack": "op",
|
||||||
|
"type": "archive",
|
||||||
|
"volumes": [
|
||||||
|
"base-sepolia-op-reth-archive-trace"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "sepolia",
|
"chain": "sepolia",
|
||||||
"client": "reth",
|
"client": "reth",
|
||||||
@@ -7749,7 +7800,7 @@
|
|||||||
"trace"
|
"trace"
|
||||||
],
|
],
|
||||||
"network": "base",
|
"network": "base",
|
||||||
"node": "node",
|
"node": "kona",
|
||||||
"relay": null,
|
"relay": null,
|
||||||
"stack": "op",
|
"stack": "op",
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
@@ -7757,6 +7808,23 @@
|
|||||||
"base-sepolia-op-reth-archive-trace"
|
"base-sepolia-op-reth-archive-trace"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "sepolia",
|
||||||
|
"client": "reth",
|
||||||
|
"compose_file": "op/reth/base-sepolia-op-reth-minimal-trace--kona",
|
||||||
|
"drpc_chain": "base-sepolia",
|
||||||
|
"features": [
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"network": "base",
|
||||||
|
"node": "kona",
|
||||||
|
"relay": null,
|
||||||
|
"stack": "op",
|
||||||
|
"type": "minimal",
|
||||||
|
"volumes": [
|
||||||
|
"base-sepolia-op-reth-minimal-trace"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "sepolia",
|
"chain": "sepolia",
|
||||||
"client": "reth",
|
"client": "reth",
|
||||||
@@ -7766,7 +7834,7 @@
|
|||||||
"trace"
|
"trace"
|
||||||
],
|
],
|
||||||
"network": "base",
|
"network": "base",
|
||||||
"node": "node",
|
"node": "kona",
|
||||||
"relay": null,
|
"relay": null,
|
||||||
"stack": "op",
|
"stack": "op",
|
||||||
"type": "minimal",
|
"type": "minimal",
|
||||||
@@ -7774,6 +7842,23 @@
|
|||||||
"base-sepolia-op-reth-minimal-trace"
|
"base-sepolia-op-reth-minimal-trace"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "sepolia",
|
||||||
|
"client": "reth",
|
||||||
|
"compose_file": "op/reth/base-sepolia-op-reth-pruned-trace--kona",
|
||||||
|
"drpc_chain": "base-sepolia",
|
||||||
|
"features": [
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"network": "base",
|
||||||
|
"node": "kona",
|
||||||
|
"relay": null,
|
||||||
|
"stack": "op",
|
||||||
|
"type": "pruned",
|
||||||
|
"volumes": [
|
||||||
|
"base-sepolia-op-reth-pruned-trace"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "sepolia",
|
"chain": "sepolia",
|
||||||
"client": "reth",
|
"client": "reth",
|
||||||
@@ -7783,7 +7868,7 @@
|
|||||||
"trace"
|
"trace"
|
||||||
],
|
],
|
||||||
"network": "base",
|
"network": "base",
|
||||||
"node": "node",
|
"node": "kona",
|
||||||
"relay": null,
|
"relay": null,
|
||||||
"stack": "op",
|
"stack": "op",
|
||||||
"type": "pruned",
|
"type": "pruned",
|
||||||
@@ -8644,6 +8729,23 @@
|
|||||||
"unichain-sepolia-op-reth-archive-trace"
|
"unichain-sepolia-op-reth-archive-trace"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "sepolia",
|
||||||
|
"client": "reth",
|
||||||
|
"compose_file": "op/reth/unichain-sepolia-op-reth-pruned-trace--kona",
|
||||||
|
"drpc_chain": "unichain-sepolia",
|
||||||
|
"features": [
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"network": "unichain",
|
||||||
|
"node": "kona",
|
||||||
|
"relay": null,
|
||||||
|
"stack": "op",
|
||||||
|
"type": "pruned",
|
||||||
|
"volumes": [
|
||||||
|
"unichain-sepolia-op-reth-pruned-trace"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "sepolia",
|
"chain": "sepolia",
|
||||||
"client": "reth",
|
"client": "reth",
|
||||||
@@ -8653,7 +8755,7 @@
|
|||||||
"trace"
|
"trace"
|
||||||
],
|
],
|
||||||
"network": "unichain",
|
"network": "unichain",
|
||||||
"node": "node",
|
"node": "kona",
|
||||||
"relay": null,
|
"relay": null,
|
||||||
"stack": "op",
|
"stack": "op",
|
||||||
"type": "pruned",
|
"type": "pruned",
|
||||||
@@ -8729,6 +8831,23 @@
|
|||||||
"worldchain-sepolia-op-reth-minimal-trace"
|
"worldchain-sepolia-op-reth-minimal-trace"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "sepolia",
|
||||||
|
"client": "reth",
|
||||||
|
"compose_file": "op/reth/worldchain-sepolia-op-reth-pruned-trace--kona",
|
||||||
|
"drpc_chain": "worldchain-sepolia",
|
||||||
|
"features": [
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"network": "worldchain",
|
||||||
|
"node": "kona",
|
||||||
|
"relay": null,
|
||||||
|
"stack": "op",
|
||||||
|
"type": "pruned",
|
||||||
|
"volumes": [
|
||||||
|
"worldchain-sepolia-op-reth-pruned-trace"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "sepolia",
|
"chain": "sepolia",
|
||||||
"client": "reth",
|
"client": "reth",
|
||||||
@@ -8738,7 +8857,7 @@
|
|||||||
"trace"
|
"trace"
|
||||||
],
|
],
|
||||||
"network": "worldchain",
|
"network": "worldchain",
|
||||||
"node": "node",
|
"node": "kona",
|
||||||
"relay": null,
|
"relay": null,
|
||||||
"stack": "op",
|
"stack": "op",
|
||||||
"type": "pruned",
|
"type": "pruned",
|
||||||
@@ -8863,8 +8982,7 @@
|
|||||||
"type": "pruned",
|
"type": "pruned",
|
||||||
"volumes": [
|
"volumes": [
|
||||||
"plasma-mainnet-reth-pruned-trace-consensus",
|
"plasma-mainnet-reth-pruned-trace-consensus",
|
||||||
"plasma-mainnet-reth-pruned-trace-execution",
|
"plasma-mainnet-reth-pruned-trace-execution"
|
||||||
"plasma-mainnet-reth-pruned-trace-jwt"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -8882,8 +9000,7 @@
|
|||||||
"type": "pruned",
|
"type": "pruned",
|
||||||
"volumes": [
|
"volumes": [
|
||||||
"plasma-testnet-reth-pruned-trace-consensus",
|
"plasma-testnet-reth-pruned-trace-consensus",
|
||||||
"plasma-testnet-reth-pruned-trace-execution",
|
"plasma-testnet-reth-pruned-trace-execution"
|
||||||
"plasma-testnet-reth-pruned-trace-jwt"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,11 +68,28 @@ ct_merge_seeds() {
|
|||||||
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
_seeds=$(ct_valid_peers "$_seeds")
|
||||||
if [ -n "$_seeds" ]; then
|
if [ -n "$_seeds" ]; then
|
||||||
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ct_valid_peers LIST
|
||||||
|
# Keep only well-formed CometBFT peer entries (<40-hex node id>@<host>:<port>), drop and
|
||||||
|
# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes
|
||||||
|
# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31.
|
||||||
|
ct_valid_peers() {
|
||||||
|
_in="$1"; _out=""
|
||||||
|
for _p in $(echo "$_in" | tr ',' ' '); do
|
||||||
|
if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then
|
||||||
|
_out="${_out:+$_out,}$_p"
|
||||||
|
else
|
||||||
|
ct_log "dropping malformed peer entry: $_p"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "$_out"
|
||||||
|
}
|
||||||
|
|
||||||
# ct_set_persistent_peers CONFIG_TOML PEERS
|
# ct_set_persistent_peers CONFIG_TOML PEERS
|
||||||
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
||||||
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
||||||
@@ -80,6 +97,8 @@ ct_set_persistent_peers() {
|
|||||||
_cfg="$1"; _peers="$2"
|
_cfg="$1"; _peers="$2"
|
||||||
[ -f "$_cfg" ] || return 0
|
[ -f "$_cfg" ] || return 0
|
||||||
[ -n "$_peers" ] || return 0
|
[ -n "$_peers" ] || return 0
|
||||||
|
_peers=$(ct_valid_peers "$_peers")
|
||||||
|
[ -n "$_peers" ] || return 0
|
||||||
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
||||||
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@cronos-zkevm-mainnet-archive-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@cronos-zkevm-mainnet-archive-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@cronos-zkevm-mainnet-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@cronos-zkevm-mainnet-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@cronos-zkevm-testnet-archive-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@cronos-zkevm-testnet-archive-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@cronos-zkevm-testnet-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@cronos-zkevm-testnet-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -68,11 +68,28 @@ ct_merge_seeds() {
|
|||||||
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
_seeds=$(ct_valid_peers "$_seeds")
|
||||||
if [ -n "$_seeds" ]; then
|
if [ -n "$_seeds" ]; then
|
||||||
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ct_valid_peers LIST
|
||||||
|
# Keep only well-formed CometBFT peer entries (<40-hex node id>@<host>:<port>), drop and
|
||||||
|
# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes
|
||||||
|
# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31.
|
||||||
|
ct_valid_peers() {
|
||||||
|
_in="$1"; _out=""
|
||||||
|
for _p in $(echo "$_in" | tr ',' ' '); do
|
||||||
|
if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then
|
||||||
|
_out="${_out:+$_out,}$_p"
|
||||||
|
else
|
||||||
|
ct_log "dropping malformed peer entry: $_p"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "$_out"
|
||||||
|
}
|
||||||
|
|
||||||
# ct_set_persistent_peers CONFIG_TOML PEERS
|
# ct_set_persistent_peers CONFIG_TOML PEERS
|
||||||
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
||||||
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
||||||
@@ -80,6 +97,8 @@ ct_set_persistent_peers() {
|
|||||||
_cfg="$1"; _peers="$2"
|
_cfg="$1"; _peers="$2"
|
||||||
[ -f "$_cfg" ] || return 0
|
[ -f "$_cfg" ] || return 0
|
||||||
[ -n "$_peers" ] || return 0
|
[ -n "$_peers" ] || return 0
|
||||||
|
_peers=$(ct_valid_peers "$_peers")
|
||||||
|
[ -n "$_peers" ] || return 0
|
||||||
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
||||||
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -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.7.1}
|
image: ${ETHEREUM_BESU_IMAGE:-hyperledger/besu}:${ETHEREUM_MAINNET_BESU_VERSION:-26.8.1}
|
||||||
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
|
||||||
|
|||||||
@@ -68,11 +68,28 @@ ct_merge_seeds() {
|
|||||||
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
_seeds=$(ct_valid_peers "$_seeds")
|
||||||
if [ -n "$_seeds" ]; then
|
if [ -n "$_seeds" ]; then
|
||||||
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ct_valid_peers LIST
|
||||||
|
# Keep only well-formed CometBFT peer entries (<40-hex node id>@<host>:<port>), drop and
|
||||||
|
# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes
|
||||||
|
# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31.
|
||||||
|
ct_valid_peers() {
|
||||||
|
_in="$1"; _out=""
|
||||||
|
for _p in $(echo "$_in" | tr ',' ' '); do
|
||||||
|
if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then
|
||||||
|
_out="${_out:+$_out,}$_p"
|
||||||
|
else
|
||||||
|
ct_log "dropping malformed peer entry: $_p"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "$_out"
|
||||||
|
}
|
||||||
|
|
||||||
# ct_set_persistent_peers CONFIG_TOML PEERS
|
# ct_set_persistent_peers CONFIG_TOML PEERS
|
||||||
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
||||||
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
||||||
@@ -80,6 +97,8 @@ ct_set_persistent_peers() {
|
|||||||
_cfg="$1"; _peers="$2"
|
_cfg="$1"; _peers="$2"
|
||||||
[ -f "$_cfg" ] || return 0
|
[ -f "$_cfg" ] || return 0
|
||||||
[ -n "$_peers" ] || return 0
|
[ -n "$_peers" ] || return 0
|
||||||
|
_peers=$(ct_valid_peers "$_peers")
|
||||||
|
[ -n "$_peers" ] || return 0
|
||||||
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
||||||
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ MIN_GAS="${MIN_GAS:-0.01hqq}"
|
|||||||
MONIKER="${MONIKER:-rpc-node}"
|
MONIKER="${MONIKER:-rpc-node}"
|
||||||
|
|
||||||
# Polkachu seeds + official Haqq network seeds for reliable peer discovery
|
# Polkachu seeds + official Haqq network seeds for reliable peer discovery
|
||||||
SEEDS="${SEEDS:-936e27a05f3cfb090507dd810395cbbd8efbffb0@65.109.115.172:24056,f4675b63b8872fb9216efa99428eb5b1fb297393@65.109.104.118:61256,6c9a6fc0e0d94bf303075e46560832e652cffc14@65.108.71.137:24056,7c153a83@peer.haqq.mainnet.dteam.tech:28656}"
|
SEEDS="${SEEDS:-936e27a05f3cfb090507dd810395cbbd8efbffb0@65.109.115.172:24056,f4675b63b8872fb9216efa99428eb5b1fb297393@65.109.104.118:61256,6c9a6fc0e0d94bf303075e46560832e652cffc14@65.108.71.137:24056}"
|
||||||
|
|
||||||
# Optional persistent peers for additional bootstrap reliability
|
# Optional persistent peers for additional bootstrap reliability
|
||||||
PERSISTENT_PEERS="${PERSISTENT_PEERS:-17e0fd08f04e062d18412808b8bf134e9ad34508@65.109.109.189:10656,e000b992a0066eae9e87c66e0d65229a76647509@198.96.92.242:32656,7c153a83@peer.haqq.mainnet.dteam.tech:28656,235ac65359582357b04754e838496545b3ba6429@haqq-seed-1.allnodes.me:26656,9573a569016378765444095484840d7f543d2800@haqq-seed-2.allnodes.me:26656}"
|
PERSISTENT_PEERS="${PERSISTENT_PEERS:-17e0fd08f04e062d18412808b8bf134e9ad34508@65.109.109.189:10656,e000b992a0066eae9e87c66e0d65229a76647509@198.96.92.242:32656,235ac65359582357b04754e838496545b3ba6429@haqq-seed-1.allnodes.me:26656,9573a569016378765444095484840d7f543d2800@haqq-seed-2.allnodes.me:26656}"
|
||||||
|
|
||||||
ct_apk curl jq
|
ct_apk curl jq
|
||||||
|
|
||||||
@@ -44,7 +44,10 @@ fi
|
|||||||
sed -i '/^\[rpc\]/,/^\[/{s|^laddr = .*|laddr = "tcp://0.0.0.0:26657"|}' "$CONFIG_DIR/config.toml"
|
sed -i '/^\[rpc\]/,/^\[/{s|^laddr = .*|laddr = "tcp://0.0.0.0:26657"|}' "$CONFIG_DIR/config.toml"
|
||||||
|
|
||||||
ct_patch_p2p "$CONFIG_DIR/config.toml" "$IP" "${P2P_PORT:-10465}"
|
ct_patch_p2p "$CONFIG_DIR/config.toml" "$IP" "${P2P_PORT:-10465}"
|
||||||
ct_merge_seeds "$CONFIG_DIR/config.toml" "$SEEDS" "$ADDRBOOK_URL"
|
# The Polkachu addrbook is a JSON file handled by ct_set_addrbook above; it is NOT a
|
||||||
|
# seed list. Feeding it to ct_merge_seeds blew the sed argument past ARG_MAX (2026-09-07,
|
||||||
|
# rpc-de-31) and left haqqd unable to start.
|
||||||
|
ct_merge_seeds "$CONFIG_DIR/config.toml" "$SEEDS"
|
||||||
ct_set_persistent_peers "$CONFIG_DIR/config.toml" "$PERSISTENT_PEERS"
|
ct_set_persistent_peers "$CONFIG_DIR/config.toml" "$PERSISTENT_PEERS"
|
||||||
ct_set_moniker "$CONFIG_DIR/config.toml" "$MONIKER"
|
ct_set_moniker "$CONFIG_DIR/config.toml" "$MONIKER"
|
||||||
ct_configure_statesync "$CONFIG_DIR/config.toml" "$STATESYNC_RPC"
|
ct_configure_statesync "$CONFIG_DIR/config.toml" "$STATESYNC_RPC"
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@lens-mainnet-archive-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@lens-mainnet-archive-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_DA_API_NODE_URL=wss://mainnet.avail-rpc.com
|
- EN_DA_API_NODE_URL=wss://mainnet.avail-rpc.com
|
||||||
- EN_DA_APP_ID=26
|
- EN_DA_APP_ID=26
|
||||||
- EN_DA_AVAIL_CLIENT_TYPE=FullClient
|
- EN_DA_AVAIL_CLIENT_TYPE=FullClient
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@lens-mainnet-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@lens-mainnet-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_DA_API_NODE_URL=wss://mainnet.avail-rpc.com
|
- EN_DA_API_NODE_URL=wss://mainnet.avail-rpc.com
|
||||||
- EN_DA_APP_ID=26
|
- EN_DA_APP_ID=26
|
||||||
- EN_DA_AVAIL_CLIENT_TYPE=FullClient
|
- EN_DA_AVAIL_CLIENT_TYPE=FullClient
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@lens-testnet-archive-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@lens-testnet-archive-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_DA_API_NODE_URL=wss://turing-rpc.avail.so/ws
|
- EN_DA_API_NODE_URL=wss://turing-rpc.avail.so/ws
|
||||||
- EN_DA_APP_ID=247
|
- EN_DA_APP_ID=247
|
||||||
- EN_DA_AVAIL_CLIENT_TYPE=FullClient
|
- EN_DA_AVAIL_CLIENT_TYPE=FullClient
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@lens-testnet-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@lens-testnet-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_DA_API_NODE_URL=wss://turing-rpc.avail.so/ws
|
- EN_DA_API_NODE_URL=wss://turing-rpc.avail.so/ws
|
||||||
- EN_DA_APP_ID=247
|
- EN_DA_APP_ID=247
|
||||||
- EN_DA_AVAIL_CLIENT_TYPE=FullClient
|
- EN_DA_AVAIL_CLIENT_TYPE=FullClient
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
linea-mainnet:
|
linea-mainnet:
|
||||||
image: ${LINEA_BESU_IMAGE:-consensys/linea-besu-package}:${LINEA_MAINNET_BESU_VERSION:-2.0.0-20260714-6a92ee2}
|
image: ${LINEA_BESU_IMAGE:-consensys/linea-besu-package}:${LINEA_MAINNET_BESU_VERSION:-2.2.0-20260821-8bb72b4}
|
||||||
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:
|
||||||
linea-sepolia:
|
linea-sepolia:
|
||||||
image: ${LINEA_BESU_IMAGE:-consensys/linea-besu-package}:${LINEA_SEPOLIA_BESU_VERSION:-2.0.0-20260714-6a92ee2}
|
image: ${LINEA_BESU_IMAGE:-consensys/linea-besu-package}:${LINEA_SEPOLIA_BESU_VERSION:-2.2.0-20260821-8bb72b4}
|
||||||
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
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
soneium-mainnet-op-erigon-node:
|
soneium-mainnet-op-erigon-node:
|
||||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MAINNET_NODE_VERSION:-v1.19.2}
|
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MAINNET_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 18689:18689
|
- 18689:18689
|
||||||
- 18689:18689/udp
|
- 18689:18689/udp
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
soneium-minato-sepolia-op-erigon-node:
|
soneium-minato-sepolia-op-erigon-node:
|
||||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 17283:17283
|
- 17283:17283
|
||||||
- 17283:17283/udp
|
- 17283:17283/udp
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
worldchain-sepolia-op-erigon-node:
|
worldchain-sepolia-op-erigon-node:
|
||||||
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 16046:16046
|
- 16046:16046
|
||||||
- 16046:16046/udp
|
- 16046:16046/udp
|
||||||
|
|||||||
@@ -61,9 +61,6 @@ services:
|
|||||||
ulimits:
|
ulimits:
|
||||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
user: root
|
user: root
|
||||||
ports:
|
|
||||||
- 12111:12111
|
|
||||||
- 12111:12111/udp
|
|
||||||
expose:
|
expose:
|
||||||
- 8545
|
- 8545
|
||||||
- 6060
|
- 6060
|
||||||
@@ -87,7 +84,6 @@ services:
|
|||||||
- GETH_ROLLUP_SEQUENCERHTTP=https://cel2-sequencer.celo.org
|
- GETH_ROLLUP_SEQUENCERHTTP=https://cel2-sequencer.celo.org
|
||||||
entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=leveldb --gcmode=archive --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=archive --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:
|
||||||
- --bootnodes=enode://28f4fcb7f38c1b012087f7aef25dcb0a1257ccf1cdc4caa88584dc25416129069b514908c8cead5d0105cb0041dd65cd4ee185ae0d379a586fb07b1447e9de38@34.169.39.223:30303,enode://a9077c3e030206954c5c7f22cc16a32cb5013112aa8985e3575fadda7884a508384e1e63c077b7d9fcb4a15c716465d8585567f047c564ada2e823145591e444@34.169.212.31:30303,enode://029b007a7a56acbaa8ea50ec62cda279484bf3843fae1646f690566f784aca50e7d732a9a0530f0541e5ed82ba9bf2a4e21b9021559c5b8b527b91c9c7a38579@34.82.139.199:30303,enode://f3c96b73a5772c5efb48d5a33bf193e58080d826ba7f03e9d5bdef20c0634a4f83475add92ab6313b7a24aa4f729689efb36f5093e5d527bb25e823f8a377224@34.82.84.247:30303,enode://daa5ad65d16bcb0967cf478d9f20544bf1b6de617634e452dff7b947279f41f408b548261d62483f2034d237f61cbcf92a83fc992dbae884156f28ce68533205@34.168.45.168:30303,enode://c79d596d77268387e599695d23e941c14c220745052ea6642a71ef7df31a13874cb7f2ce2ecf5a8a458cfc9b5d9219ce3e8bc6e5c279656177579605a5533c4f@35.247.32.229:30303,enode://4151336075dd08eb6c75bfd63855e8a4bd6fd0f91ae4a81b14930f2671e16aee55495c139380c16e1094a49691875e69e40a3a5e2b4960c7859e7eb5745f9387@35.205.149.224:30303,enode://ab999db751265c714b171344de1972ed74348162de465a0444f56e50b8cfd048725b213ba1fe48c15e3dfb0638e685ea9a21b8447a54eb2962c6768f43018e5c@34.79.3.199:30303,enode://9d86d92fb38a429330546fe1aefce264e1f55c5d40249b63153e7df744005fa3c1e2da295e307041fd30ab1c618715f362c932c28715bc20bed7ae4fc76dea81@34.77.144.164:30303,enode://c82c31f21dd5bbb8dc35686ff67a4353382b4017c9ec7660a383ccb5b8e3b04c6d7aefe71203e550382f6f892795728570f8190afd885efcb7b78fa398608699@34.76.202.74:30303,enode://3bad5f57ad8de6541f02e36d806b87e7e9ca6d533c956e89a56b3054ae85d608784f2cd948dc685f7d6bbd5a2f6dd1a23cc03e529ea370dd72d880864a2af6a3@104.199.93.87:30303,enode://1decf3b8b9a0d0b8332d15218f3bf0ceb9606b0efe18f352c51effc14bbf1f4f3f46711e1d460230cb361302ceaad2be48b5b187ad946e50d729b34e463268d2@35.240.26.148:30303
|
|
||||||
- --datadir=/data
|
- --datadir=/data
|
||||||
- --db.engine=leveldb
|
- --db.engine=leveldb
|
||||||
- --gcmode=archive
|
- --gcmode=archive
|
||||||
@@ -95,9 +91,8 @@ services:
|
|||||||
- --metrics
|
- --metrics
|
||||||
- --metrics.addr=0.0.0.0
|
- --metrics.addr=0.0.0.0
|
||||||
- --metrics.port=6060
|
- --metrics.port=6060
|
||||||
- --nat=extip:${IP}
|
|
||||||
- --networkid=42220
|
- --networkid=42220
|
||||||
- --port=12111
|
- --nodiscover
|
||||||
- --rollup.historicalrpc=${CELO_MAINNET_CLASSIC_ARCHIVE_RPC:-http://celo-mainnet-geth-archive:8545}
|
- --rollup.historicalrpc=${CELO_MAINNET_CLASSIC_ARCHIVE_RPC:-http://celo-mainnet-geth-archive:8545}
|
||||||
- --rpc.gascap=600000000
|
- --rpc.gascap=600000000
|
||||||
- --rpc.txfeecap=0
|
- --rpc.txfeecap=0
|
||||||
@@ -190,7 +185,7 @@ services:
|
|||||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
- OP_NODE_L2_ENGINE_RPC=http://celo-mainnet-archive:8551
|
- OP_NODE_L2_ENGINE_RPC=http://celo-mainnet-archive:8551
|
||||||
- OP_NODE_L2_ENGINE_RPC_TIMEOUT=120s
|
- OP_NODE_L2_ENGINE_RPC_TIMEOUT=120s
|
||||||
- OP_NODE_L2_SKIP_SYNC_START_CHECK=true
|
- OP_NODE_L2_SKIP_SYNC_START_CHECK=false
|
||||||
- OP_NODE_LOG_LEVEL=info
|
- OP_NODE_LOG_LEVEL=info
|
||||||
- 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
|
||||||
@@ -206,7 +201,7 @@ services:
|
|||||||
- 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
|
||||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||||
- OP_NODE_SYNCMODE=execution-layer
|
- OP_NODE_SYNCMODE=consensus-layer
|
||||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||||
entrypoint: [op-node]
|
entrypoint: [op-node]
|
||||||
command:
|
command:
|
||||||
|
|||||||
@@ -61,9 +61,6 @@ services:
|
|||||||
ulimits:
|
ulimits:
|
||||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
user: root
|
user: root
|
||||||
ports:
|
|
||||||
- 14087:14087
|
|
||||||
- 14087:14087/udp
|
|
||||||
expose:
|
expose:
|
||||||
- 8545
|
- 8545
|
||||||
- 6060
|
- 6060
|
||||||
@@ -87,7 +84,6 @@ services:
|
|||||||
- GETH_ROLLUP_SEQUENCERHTTP=https://cel2-sequencer.celo.org
|
- GETH_ROLLUP_SEQUENCERHTTP=https://cel2-sequencer.celo.org
|
||||||
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:
|
||||||
- --bootnodes=enode://28f4fcb7f38c1b012087f7aef25dcb0a1257ccf1cdc4caa88584dc25416129069b514908c8cead5d0105cb0041dd65cd4ee185ae0d379a586fb07b1447e9de38@34.169.39.223:30303,enode://a9077c3e030206954c5c7f22cc16a32cb5013112aa8985e3575fadda7884a508384e1e63c077b7d9fcb4a15c716465d8585567f047c564ada2e823145591e444@34.169.212.31:30303,enode://029b007a7a56acbaa8ea50ec62cda279484bf3843fae1646f690566f784aca50e7d732a9a0530f0541e5ed82ba9bf2a4e21b9021559c5b8b527b91c9c7a38579@34.82.139.199:30303,enode://f3c96b73a5772c5efb48d5a33bf193e58080d826ba7f03e9d5bdef20c0634a4f83475add92ab6313b7a24aa4f729689efb36f5093e5d527bb25e823f8a377224@34.82.84.247:30303,enode://daa5ad65d16bcb0967cf478d9f20544bf1b6de617634e452dff7b947279f41f408b548261d62483f2034d237f61cbcf92a83fc992dbae884156f28ce68533205@34.168.45.168:30303,enode://c79d596d77268387e599695d23e941c14c220745052ea6642a71ef7df31a13874cb7f2ce2ecf5a8a458cfc9b5d9219ce3e8bc6e5c279656177579605a5533c4f@35.247.32.229:30303,enode://4151336075dd08eb6c75bfd63855e8a4bd6fd0f91ae4a81b14930f2671e16aee55495c139380c16e1094a49691875e69e40a3a5e2b4960c7859e7eb5745f9387@35.205.149.224:30303,enode://ab999db751265c714b171344de1972ed74348162de465a0444f56e50b8cfd048725b213ba1fe48c15e3dfb0638e685ea9a21b8447a54eb2962c6768f43018e5c@34.79.3.199:30303,enode://9d86d92fb38a429330546fe1aefce264e1f55c5d40249b63153e7df744005fa3c1e2da295e307041fd30ab1c618715f362c932c28715bc20bed7ae4fc76dea81@34.77.144.164:30303,enode://c82c31f21dd5bbb8dc35686ff67a4353382b4017c9ec7660a383ccb5b8e3b04c6d7aefe71203e550382f6f892795728570f8190afd885efcb7b78fa398608699@34.76.202.74:30303,enode://3bad5f57ad8de6541f02e36d806b87e7e9ca6d533c956e89a56b3054ae85d608784f2cd948dc685f7d6bbd5a2f6dd1a23cc03e529ea370dd72d880864a2af6a3@104.199.93.87:30303,enode://1decf3b8b9a0d0b8332d15218f3bf0ceb9606b0efe18f352c51effc14bbf1f4f3f46711e1d460230cb361302ceaad2be48b5b187ad946e50d729b34e463268d2@35.240.26.148:30303
|
|
||||||
- --datadir=/data
|
- --datadir=/data
|
||||||
- --db.engine=leveldb
|
- --db.engine=leveldb
|
||||||
- --gcmode=full
|
- --gcmode=full
|
||||||
@@ -95,9 +91,8 @@ services:
|
|||||||
- --metrics
|
- --metrics
|
||||||
- --metrics.addr=0.0.0.0
|
- --metrics.addr=0.0.0.0
|
||||||
- --metrics.port=6060
|
- --metrics.port=6060
|
||||||
- --nat=extip:${IP}
|
|
||||||
- --networkid=42220
|
- --networkid=42220
|
||||||
- --port=14087
|
- --nodiscover
|
||||||
- --rpc.gascap=600000000
|
- --rpc.gascap=600000000
|
||||||
- --rpc.txfeecap=0
|
- --rpc.txfeecap=0
|
||||||
- --state.scheme=hash
|
- --state.scheme=hash
|
||||||
@@ -189,7 +184,7 @@ services:
|
|||||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
- OP_NODE_L2_ENGINE_RPC=http://celo-mainnet:8551
|
- OP_NODE_L2_ENGINE_RPC=http://celo-mainnet:8551
|
||||||
- OP_NODE_L2_ENGINE_RPC_TIMEOUT=120s
|
- OP_NODE_L2_ENGINE_RPC_TIMEOUT=120s
|
||||||
- OP_NODE_L2_SKIP_SYNC_START_CHECK=true
|
- OP_NODE_L2_SKIP_SYNC_START_CHECK=false
|
||||||
- OP_NODE_LOG_LEVEL=info
|
- OP_NODE_LOG_LEVEL=info
|
||||||
- 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
|
||||||
@@ -205,7 +200,7 @@ services:
|
|||||||
- 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
|
||||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||||
- OP_NODE_SYNCMODE=execution-layer
|
- OP_NODE_SYNCMODE=consensus-layer
|
||||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||||
entrypoint: [op-node]
|
entrypoint: [op-node]
|
||||||
command:
|
command:
|
||||||
|
|||||||
@@ -61,9 +61,6 @@ services:
|
|||||||
ulimits:
|
ulimits:
|
||||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
user: root
|
user: root
|
||||||
ports:
|
|
||||||
- 11775:11775
|
|
||||||
- 11775:11775/udp
|
|
||||||
expose:
|
expose:
|
||||||
- 8545
|
- 8545
|
||||||
- 6060
|
- 6060
|
||||||
@@ -87,7 +84,6 @@ services:
|
|||||||
- GETH_ROLLUP_SEQUENCERHTTP=https://cel2-sequencer.celo.org
|
- GETH_ROLLUP_SEQUENCERHTTP=https://cel2-sequencer.celo.org
|
||||||
entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=pebble --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=pebble --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:
|
||||||
- --bootnodes=enode://28f4fcb7f38c1b012087f7aef25dcb0a1257ccf1cdc4caa88584dc25416129069b514908c8cead5d0105cb0041dd65cd4ee185ae0d379a586fb07b1447e9de38@34.169.39.223:30303,enode://a9077c3e030206954c5c7f22cc16a32cb5013112aa8985e3575fadda7884a508384e1e63c077b7d9fcb4a15c716465d8585567f047c564ada2e823145591e444@34.169.212.31:30303,enode://029b007a7a56acbaa8ea50ec62cda279484bf3843fae1646f690566f784aca50e7d732a9a0530f0541e5ed82ba9bf2a4e21b9021559c5b8b527b91c9c7a38579@34.82.139.199:30303,enode://f3c96b73a5772c5efb48d5a33bf193e58080d826ba7f03e9d5bdef20c0634a4f83475add92ab6313b7a24aa4f729689efb36f5093e5d527bb25e823f8a377224@34.82.84.247:30303,enode://daa5ad65d16bcb0967cf478d9f20544bf1b6de617634e452dff7b947279f41f408b548261d62483f2034d237f61cbcf92a83fc992dbae884156f28ce68533205@34.168.45.168:30303,enode://c79d596d77268387e599695d23e941c14c220745052ea6642a71ef7df31a13874cb7f2ce2ecf5a8a458cfc9b5d9219ce3e8bc6e5c279656177579605a5533c4f@35.247.32.229:30303,enode://4151336075dd08eb6c75bfd63855e8a4bd6fd0f91ae4a81b14930f2671e16aee55495c139380c16e1094a49691875e69e40a3a5e2b4960c7859e7eb5745f9387@35.205.149.224:30303,enode://ab999db751265c714b171344de1972ed74348162de465a0444f56e50b8cfd048725b213ba1fe48c15e3dfb0638e685ea9a21b8447a54eb2962c6768f43018e5c@34.79.3.199:30303,enode://9d86d92fb38a429330546fe1aefce264e1f55c5d40249b63153e7df744005fa3c1e2da295e307041fd30ab1c618715f362c932c28715bc20bed7ae4fc76dea81@34.77.144.164:30303,enode://c82c31f21dd5bbb8dc35686ff67a4353382b4017c9ec7660a383ccb5b8e3b04c6d7aefe71203e550382f6f892795728570f8190afd885efcb7b78fa398608699@34.76.202.74:30303,enode://3bad5f57ad8de6541f02e36d806b87e7e9ca6d533c956e89a56b3054ae85d608784f2cd948dc685f7d6bbd5a2f6dd1a23cc03e529ea370dd72d880864a2af6a3@104.199.93.87:30303,enode://1decf3b8b9a0d0b8332d15218f3bf0ceb9606b0efe18f352c51effc14bbf1f4f3f46711e1d460230cb361302ceaad2be48b5b187ad946e50d729b34e463268d2@35.240.26.148:30303
|
|
||||||
- --datadir=/data
|
- --datadir=/data
|
||||||
- --db.engine=pebble
|
- --db.engine=pebble
|
||||||
- --gcmode=full
|
- --gcmode=full
|
||||||
@@ -95,9 +91,8 @@ services:
|
|||||||
- --metrics
|
- --metrics
|
||||||
- --metrics.addr=0.0.0.0
|
- --metrics.addr=0.0.0.0
|
||||||
- --metrics.port=6060
|
- --metrics.port=6060
|
||||||
- --nat=extip:${IP}
|
|
||||||
- --networkid=42220
|
- --networkid=42220
|
||||||
- --port=11775
|
- --nodiscover
|
||||||
- --rpc.gascap=600000000
|
- --rpc.gascap=600000000
|
||||||
- --rpc.txfeecap=0
|
- --rpc.txfeecap=0
|
||||||
- --state.scheme=hash
|
- --state.scheme=hash
|
||||||
@@ -187,7 +182,7 @@ services:
|
|||||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
- OP_NODE_L2_ENGINE_RPC=http://celo-mainnet:8551
|
- OP_NODE_L2_ENGINE_RPC=http://celo-mainnet:8551
|
||||||
- OP_NODE_L2_ENGINE_RPC_TIMEOUT=120s
|
- OP_NODE_L2_ENGINE_RPC_TIMEOUT=120s
|
||||||
- OP_NODE_L2_SKIP_SYNC_START_CHECK=true
|
- OP_NODE_L2_SKIP_SYNC_START_CHECK=false
|
||||||
- OP_NODE_LOG_LEVEL=info
|
- OP_NODE_LOG_LEVEL=info
|
||||||
- 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
|
||||||
@@ -203,7 +198,7 @@ services:
|
|||||||
- 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
|
||||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||||
- OP_NODE_SYNCMODE=execution-layer
|
- OP_NODE_SYNCMODE=consensus-layer
|
||||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||||
entrypoint: [op-node]
|
entrypoint: [op-node]
|
||||||
command:
|
command:
|
||||||
|
|||||||
@@ -61,9 +61,6 @@ services:
|
|||||||
ulimits:
|
ulimits:
|
||||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
user: root
|
user: root
|
||||||
ports:
|
|
||||||
- 11993:11993
|
|
||||||
- 11993:11993/udp
|
|
||||||
expose:
|
expose:
|
||||||
- 8545
|
- 8545
|
||||||
- 6060
|
- 6060
|
||||||
@@ -87,7 +84,6 @@ services:
|
|||||||
- GETH_ROLLUP_SEQUENCERHTTP=https://cel2-sequencer.celo.org
|
- GETH_ROLLUP_SEQUENCERHTTP=https://cel2-sequencer.celo.org
|
||||||
entrypoint: /bin/sh -c '[ -f /config/genesis.json ] && geth --db.engine=pebble --gcmode=full --datadir /data init --state.scheme=path /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=pebble --gcmode=full --datadir /data init --state.scheme=path /config/genesis.json; [ -f /config/static-nodes.json ] && cp -f /config/static-nodes.json /data/static-nodes.json; exec geth "$@"' --
|
||||||
command:
|
command:
|
||||||
- --bootnodes=enode://28f4fcb7f38c1b012087f7aef25dcb0a1257ccf1cdc4caa88584dc25416129069b514908c8cead5d0105cb0041dd65cd4ee185ae0d379a586fb07b1447e9de38@34.169.39.223:30303,enode://a9077c3e030206954c5c7f22cc16a32cb5013112aa8985e3575fadda7884a508384e1e63c077b7d9fcb4a15c716465d8585567f047c564ada2e823145591e444@34.169.212.31:30303,enode://029b007a7a56acbaa8ea50ec62cda279484bf3843fae1646f690566f784aca50e7d732a9a0530f0541e5ed82ba9bf2a4e21b9021559c5b8b527b91c9c7a38579@34.82.139.199:30303,enode://f3c96b73a5772c5efb48d5a33bf193e58080d826ba7f03e9d5bdef20c0634a4f83475add92ab6313b7a24aa4f729689efb36f5093e5d527bb25e823f8a377224@34.82.84.247:30303,enode://daa5ad65d16bcb0967cf478d9f20544bf1b6de617634e452dff7b947279f41f408b548261d62483f2034d237f61cbcf92a83fc992dbae884156f28ce68533205@34.168.45.168:30303,enode://c79d596d77268387e599695d23e941c14c220745052ea6642a71ef7df31a13874cb7f2ce2ecf5a8a458cfc9b5d9219ce3e8bc6e5c279656177579605a5533c4f@35.247.32.229:30303,enode://4151336075dd08eb6c75bfd63855e8a4bd6fd0f91ae4a81b14930f2671e16aee55495c139380c16e1094a49691875e69e40a3a5e2b4960c7859e7eb5745f9387@35.205.149.224:30303,enode://ab999db751265c714b171344de1972ed74348162de465a0444f56e50b8cfd048725b213ba1fe48c15e3dfb0638e685ea9a21b8447a54eb2962c6768f43018e5c@34.79.3.199:30303,enode://9d86d92fb38a429330546fe1aefce264e1f55c5d40249b63153e7df744005fa3c1e2da295e307041fd30ab1c618715f362c932c28715bc20bed7ae4fc76dea81@34.77.144.164:30303,enode://c82c31f21dd5bbb8dc35686ff67a4353382b4017c9ec7660a383ccb5b8e3b04c6d7aefe71203e550382f6f892795728570f8190afd885efcb7b78fa398608699@34.76.202.74:30303,enode://3bad5f57ad8de6541f02e36d806b87e7e9ca6d533c956e89a56b3054ae85d608784f2cd948dc685f7d6bbd5a2f6dd1a23cc03e529ea370dd72d880864a2af6a3@104.199.93.87:30303,enode://1decf3b8b9a0d0b8332d15218f3bf0ceb9606b0efe18f352c51effc14bbf1f4f3f46711e1d460230cb361302ceaad2be48b5b187ad946e50d729b34e463268d2@35.240.26.148:30303
|
|
||||||
- --datadir=/data
|
- --datadir=/data
|
||||||
- --db.engine=pebble
|
- --db.engine=pebble
|
||||||
- --gcmode=full
|
- --gcmode=full
|
||||||
@@ -95,13 +91,12 @@ services:
|
|||||||
- --metrics
|
- --metrics
|
||||||
- --metrics.addr=0.0.0.0
|
- --metrics.addr=0.0.0.0
|
||||||
- --metrics.port=6060
|
- --metrics.port=6060
|
||||||
- --nat=extip:${IP}
|
|
||||||
- --networkid=42220
|
- --networkid=42220
|
||||||
- --port=11993
|
- --nodiscover
|
||||||
- --rpc.gascap=600000000
|
- --rpc.gascap=600000000
|
||||||
- --rpc.txfeecap=0
|
- --rpc.txfeecap=0
|
||||||
- --state.scheme=path
|
- --state.scheme=path
|
||||||
- --syncmode=snap
|
- --syncmode=full
|
||||||
- --http
|
- --http
|
||||||
- --http.addr=0.0.0.0
|
- --http.addr=0.0.0.0
|
||||||
- --http.api=eth,net,web3,debug,admin,txpool,engine
|
- --http.api=eth,net,web3,debug,admin,txpool,engine
|
||||||
@@ -187,7 +182,7 @@ services:
|
|||||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
- OP_NODE_L2_ENGINE_RPC=http://celo-mainnet:8551
|
- OP_NODE_L2_ENGINE_RPC=http://celo-mainnet:8551
|
||||||
- OP_NODE_L2_ENGINE_RPC_TIMEOUT=120s
|
- OP_NODE_L2_ENGINE_RPC_TIMEOUT=120s
|
||||||
- OP_NODE_L2_SKIP_SYNC_START_CHECK=true
|
- OP_NODE_L2_SKIP_SYNC_START_CHECK=false
|
||||||
- OP_NODE_LOG_LEVEL=info
|
- OP_NODE_LOG_LEVEL=info
|
||||||
- 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
|
||||||
@@ -203,7 +198,7 @@ services:
|
|||||||
- 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
|
||||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||||
- OP_NODE_SYNCMODE=execution-layer
|
- OP_NODE_SYNCMODE=consensus-layer
|
||||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||||
entrypoint: [op-node]
|
entrypoint: [op-node]
|
||||||
command:
|
command:
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ services:
|
|||||||
- traefik.http.routers.soneium-minato-sepolia-op-geth-archive-leveldb-hash.middlewares=soneium-minato-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
|
- traefik.http.routers.soneium-minato-sepolia-op-geth-archive-leveldb-hash.middlewares=soneium-minato-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
|
||||||
|
|
||||||
soneium-minato-sepolia-archive-node:
|
soneium-minato-sepolia-archive-node:
|
||||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 16279:16279
|
- 16279:16279
|
||||||
- 16279:16279/udp
|
- 16279:16279/udp
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ services:
|
|||||||
- traefik.http.routers.soneium-minato-sepolia-op-geth-pruned-pebble-path.middlewares=soneium-minato-sepolia-op-geth-pruned-pebble-path-stripprefix, ipallowlist
|
- traefik.http.routers.soneium-minato-sepolia-op-geth-pruned-pebble-path.middlewares=soneium-minato-sepolia-op-geth-pruned-pebble-path-stripprefix, ipallowlist
|
||||||
|
|
||||||
soneium-minato-sepolia-node:
|
soneium-minato-sepolia-node:
|
||||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 17166:17166
|
- 17166:17166
|
||||||
- 17166:17166/udp
|
- 17166:17166/udp
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ services:
|
|||||||
- OP_NODE_METRICS_PORT=7300
|
- OP_NODE_METRICS_PORT=7300
|
||||||
- OP_NODE_OVERRIDE_GRANITE=1725984001
|
- OP_NODE_OVERRIDE_GRANITE=1725984001
|
||||||
- OP_NODE_OVERRIDE_HOLOCENE=1732633200
|
- OP_NODE_OVERRIDE_HOLOCENE=1732633200
|
||||||
- OP_NODE_OVERRIDE_KARST=1781712000
|
- OP_NODE_OVERRIDE_KARST=1787068801
|
||||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||||
- OP_NODE_P2P_BOOTNODES=enode://c9fb471294f243ce4aa32f8987d743fed73fa109013996f169f81914efd2a76762f2f142bd6dcc147afe342c752a587e06ef2ea1418c99ff757986242e372f3d@34.105.58.183:9222?discport=30301,enode://d25ce99435982b04d60c4b41ba256b84b888626db7bee45a9419382300fbe907359ae5ef250346785bff8d3b9d07cd3e017a27e2ee3cfda3bcbb0ba762ac9674@bootnode.conduit.xyz:0?discport=30301,enode://2d4e7e9d48f4dd4efe9342706dd1b0024681bd4c3300d021f86fc75eab7865d4e0cbec6fbc883f011cfd6a57423e7e2f6e104baad2b744c3cafaec6bc7dc92c1@34.65.43.171:0?discport=30305,enode://9d7a3efefe442351217e73b3a593bcb8efffb55b4807699972145324eab5e6b382152f8d24f6301baebbfb5ecd4127bd3faab2842c04cd432bdf50ba092f6645@34.65.109.126:0?discport=30305
|
- OP_NODE_P2P_BOOTNODES=enode://c9fb471294f243ce4aa32f8987d743fed73fa109013996f169f81914efd2a76762f2f142bd6dcc147afe342c752a587e06ef2ea1418c99ff757986242e372f3d@34.105.58.183:9222?discport=30301,enode://d25ce99435982b04d60c4b41ba256b84b888626db7bee45a9419382300fbe907359ae5ef250346785bff8d3b9d07cd3e017a27e2ee3cfda3bcbb0ba762ac9674@bootnode.conduit.xyz:0?discport=30301,enode://2d4e7e9d48f4dd4efe9342706dd1b0024681bd4c3300d021f86fc75eab7865d4e0cbec6fbc883f011cfd6a57423e7e2f6e104baad2b744c3cafaec6bc7dc92c1@34.65.43.171:0?discport=30305,enode://9d7a3efefe442351217e73b3a593bcb8efffb55b4807699972145324eab5e6b382152f8d24f6301baebbfb5ecd4127bd3faab2842c04cd432bdf50ba092f6645@34.65.109.126:0?discport=30305
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ services:
|
|||||||
- traefik.http.routers.worldchain-sepolia-op-geth-archive-leveldb-hash.middlewares=worldchain-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
|
- traefik.http.routers.worldchain-sepolia-op-geth-archive-leveldb-hash.middlewares=worldchain-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipallowlist
|
||||||
|
|
||||||
worldchain-sepolia-archive-node:
|
worldchain-sepolia-archive-node:
|
||||||
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 16720:16720
|
- 16720:16720
|
||||||
- 16720:16720/udp
|
- 16720:16720/udp
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ services:
|
|||||||
- traefik.http.routers.worldchain-sepolia-op-geth-pruned-pebble-path.middlewares=worldchain-sepolia-op-geth-pruned-pebble-path-stripprefix, ipallowlist
|
- traefik.http.routers.worldchain-sepolia-op-geth-pruned-pebble-path.middlewares=worldchain-sepolia-op-geth-pruned-pebble-path-stripprefix, ipallowlist
|
||||||
|
|
||||||
worldchain-sepolia-node:
|
worldchain-sepolia-node:
|
||||||
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 19620:19620
|
- 19620:19620
|
||||||
- 19620:19620/udp
|
- 19620:19620/udp
|
||||||
|
|||||||
187
op/reth/base-mainnet-op-reth-minimal-trace--kona.yml
Normal file
187
op/reth/base-mainnet-op-reth-minimal-trace--kona.yml
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
---
|
||||||
|
x-logging-defaults: &logging-defaults
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: "512m"
|
||||||
|
max-file: "2"
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# mkdir rpc && cd rpc
|
||||||
|
#
|
||||||
|
# git init
|
||||||
|
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||||
|
# git fetch origin vibe
|
||||||
|
# git checkout origin/vibe
|
||||||
|
#
|
||||||
|
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||||
|
#
|
||||||
|
# env
|
||||||
|
# ...
|
||||||
|
# IP=$(curl ipinfo.io/ip)
|
||||||
|
# DOMAIN=${IP}.traefik.me
|
||||||
|
# COMPOSE_FILE=base.yml:rpc.yml:op/reth/base-mainnet-op-reth-minimal-trace--kona.yml
|
||||||
|
#
|
||||||
|
# docker compose up -d
|
||||||
|
#
|
||||||
|
# curl -X POST https://${IP}.traefik.me/base-mainnet-op-reth-minimal \
|
||||||
|
# -H "Content-Type: application/json" \
|
||||||
|
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||||
|
|
||||||
|
services:
|
||||||
|
base-mainnet-op-reth-minimal:
|
||||||
|
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.1}
|
||||||
|
sysctls:
|
||||||
|
# TCP Performance
|
||||||
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
|
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||||
|
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||||
|
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||||
|
net.core.somaxconn: 32768 # Higher connection queue
|
||||||
|
# Memory/Connection Management
|
||||||
|
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||||
|
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||||
|
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||||
|
ulimits:
|
||||||
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
|
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- 11240:11240
|
||||||
|
- 11240:11240/udp
|
||||||
|
expose:
|
||||||
|
- 8545
|
||||||
|
- 9001
|
||||||
|
- 8551
|
||||||
|
entrypoint: [/app/base-reth-node, node]
|
||||||
|
command:
|
||||||
|
- --chain=base
|
||||||
|
- --datadir=/root/.local/share/reth
|
||||||
|
- --discovery.addr=0.0.0.0
|
||||||
|
- --discovery.port=11240
|
||||||
|
- --discovery.v5.addr=0.0.0.0
|
||||||
|
- --discovery.v5.port=11240
|
||||||
|
- --engine.cross-block-cache-size=${BASE_MAINNET_RETH_STATE_CACHE:-4096}
|
||||||
|
- --max-inbound-peers=50
|
||||||
|
- --max-outbound-peers=50
|
||||||
|
- --metrics=0.0.0.0:9001
|
||||||
|
- --nat=extip:${IP}
|
||||||
|
- --port=11240
|
||||||
|
- --rollup.sequencer-http=https://mainnet-sequencer.base.org
|
||||||
|
- --rpc-cache.max-blocks=10000
|
||||||
|
- --rpc-cache.max-concurrent-db-requests=2048
|
||||||
|
- --rpc.gascap=600000000
|
||||||
|
- --rpc.max-blocks-per-filter=0
|
||||||
|
- --rpc.max-connections=50000
|
||||||
|
- --rpc.max-logs-per-response=0
|
||||||
|
- --rpc.max-trace-filter-blocks=10000
|
||||||
|
- --http
|
||||||
|
- --http.addr=0.0.0.0
|
||||||
|
- --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --http.corsdomain=*
|
||||||
|
- --http.port=8545
|
||||||
|
- --ws
|
||||||
|
- --ws.addr=0.0.0.0
|
||||||
|
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --ws.origins=*
|
||||||
|
- --ws.port=8545
|
||||||
|
- --authrpc.addr=0.0.0.0
|
||||||
|
- --authrpc.jwtsecret=/jwtsecret
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 5m
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- ${BASE_MAINNET_OP_RETH_MINIMAL_TRACE_DATA:-base-mainnet-op-reth-minimal-trace}:/root/.local/share/reth
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
- /slowdisk:/slowdisk
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=9001
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-mainnet-op-reth-minimal-trace-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth-minimal
|
||||||
|
- traefik.http.services.base-mainnet-op-reth-minimal-trace.loadbalancer.server.port=8545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace.rule=Host(`$DOMAIN`) && (Path(`/base-mainnet-op-reth-minimal`) || Path(`/base-mainnet-op-reth-minimal/`))}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-minimal-trace.rule=Path(`/base-mainnet-op-reth-minimal`) || Path(`/base-mainnet-op-reth-minimal/`)}
|
||||||
|
- traefik.http.routers.base-mainnet-op-reth-minimal-trace.middlewares=base-mainnet-op-reth-minimal-trace-stripprefix, ipallowlist
|
||||||
|
shm_size: 2gb
|
||||||
|
|
||||||
|
base-mainnet-op-reth-minimal-node:
|
||||||
|
image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_MAINNET_KONA_VERSION:-v1.6.2}
|
||||||
|
ports:
|
||||||
|
- 16240:16240
|
||||||
|
- 16240:16240/udp
|
||||||
|
environment:
|
||||||
|
- KONA_METRICS_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||||
|
- KONA_NODE_L1_ETH_RPC=${BASE_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}}
|
||||||
|
- KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||||
|
- KONA_NODE_L2_CHAIN_ID=8453
|
||||||
|
- KONA_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
|
- KONA_NODE_L2_ENGINE_RPC=http://base-mainnet-op-reth-minimal:8551
|
||||||
|
- KONA_NODE_L2_ENGINE_TIMEOUT=120000
|
||||||
|
- KONA_NODE_L2_TRUST_RPC=true
|
||||||
|
- KONA_NODE_METRICS_PORT=7300
|
||||||
|
- KONA_NODE_MODE=Validator
|
||||||
|
- KONA_NODE_P2P_ADVERTISE_IP=${IP}
|
||||||
|
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||||
|
- KONA_NODE_P2P_LISTEN_TCP_PORT=16240
|
||||||
|
- KONA_NODE_P2P_LISTEN_UDP_PORT=16240
|
||||||
|
- KONA_NODE_RPC_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_RPC_PORT=9545
|
||||||
|
- OP_NODE_SYNCMODE=execution-layer
|
||||||
|
entrypoint: [kona-node, node]
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
base-mainnet-op-reth-minimal:
|
||||||
|
condition: service_started
|
||||||
|
restart: true
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=7300
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-mainnet-op-reth-minimal-trace-node-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth-minimal/node
|
||||||
|
- traefik.http.services.base-mainnet-op-reth-minimal-trace-node.loadbalancer.server.port=9545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-op-reth-minimal/node`)}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.rule=PathPrefix(`/base-mainnet-op-reth-minimal/node`)}
|
||||||
|
- traefik.http.routers.base-mainnet-op-reth-minimal-trace-node.middlewares=base-mainnet-op-reth-minimal-trace-node-stripprefix, ipallowlist
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
base-mainnet-op-reth-minimal-trace:
|
||||||
|
|
||||||
|
x-upstreams:
|
||||||
|
- id: $${ID}
|
||||||
|
labels:
|
||||||
|
provider: $${PROVIDER}
|
||||||
|
connection:
|
||||||
|
generic:
|
||||||
|
rpc:
|
||||||
|
url: $${RPC_URL}
|
||||||
|
ws:
|
||||||
|
frameSize: 20Mb
|
||||||
|
msgSize: 50Mb
|
||||||
|
url: $${WS_URL}
|
||||||
|
chain: base
|
||||||
|
method-groups:
|
||||||
|
enabled:
|
||||||
|
- debug
|
||||||
|
- filter
|
||||||
|
- trace
|
||||||
|
methods:
|
||||||
|
disabled:
|
||||||
|
- name: eth_maxPriorityFeePerGas
|
||||||
|
enabled:
|
||||||
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
|
...
|
||||||
188
op/reth/base-mainnet-op-reth-pruned-trace--kona.yml
Normal file
188
op/reth/base-mainnet-op-reth-pruned-trace--kona.yml
Normal file
@@ -0,0 +1,188 @@
|
|||||||
|
---
|
||||||
|
x-logging-defaults: &logging-defaults
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: "512m"
|
||||||
|
max-file: "2"
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# mkdir rpc && cd rpc
|
||||||
|
#
|
||||||
|
# git init
|
||||||
|
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||||
|
# git fetch origin vibe
|
||||||
|
# git checkout origin/vibe
|
||||||
|
#
|
||||||
|
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||||
|
#
|
||||||
|
# env
|
||||||
|
# ...
|
||||||
|
# IP=$(curl ipinfo.io/ip)
|
||||||
|
# DOMAIN=${IP}.traefik.me
|
||||||
|
# COMPOSE_FILE=base.yml:rpc.yml:op/reth/base-mainnet-op-reth-pruned-trace--kona.yml
|
||||||
|
#
|
||||||
|
# docker compose up -d
|
||||||
|
#
|
||||||
|
# curl -X POST https://${IP}.traefik.me/base-mainnet-op-reth-pruned \
|
||||||
|
# -H "Content-Type: application/json" \
|
||||||
|
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||||
|
|
||||||
|
services:
|
||||||
|
base-mainnet-op-reth-pruned:
|
||||||
|
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_MAINNET_RETH_VERSION:-v1.1.1}
|
||||||
|
sysctls:
|
||||||
|
# TCP Performance
|
||||||
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
|
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||||
|
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||||
|
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||||
|
net.core.somaxconn: 32768 # Higher connection queue
|
||||||
|
# Memory/Connection Management
|
||||||
|
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||||
|
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||||
|
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||||
|
ulimits:
|
||||||
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
|
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- 14759:14759
|
||||||
|
- 14759:14759/udp
|
||||||
|
expose:
|
||||||
|
- 8545
|
||||||
|
- 9001
|
||||||
|
- 8551
|
||||||
|
entrypoint: [/app/base-reth-node, node]
|
||||||
|
command:
|
||||||
|
- --chain=base
|
||||||
|
- --datadir=/root/.local/share/reth
|
||||||
|
- --discovery.addr=0.0.0.0
|
||||||
|
- --discovery.port=14759
|
||||||
|
- --discovery.v5.addr=0.0.0.0
|
||||||
|
- --discovery.v5.port=14759
|
||||||
|
- --engine.cross-block-cache-size=${BASE_MAINNET_RETH_STATE_CACHE:-4096}
|
||||||
|
- --full
|
||||||
|
- --max-inbound-peers=50
|
||||||
|
- --max-outbound-peers=50
|
||||||
|
- --metrics=0.0.0.0:9001
|
||||||
|
- --nat=extip:${IP}
|
||||||
|
- --port=14759
|
||||||
|
- --rollup.sequencer-http=https://mainnet-sequencer.base.org
|
||||||
|
- --rpc-cache.max-blocks=10000
|
||||||
|
- --rpc-cache.max-concurrent-db-requests=2048
|
||||||
|
- --rpc.gascap=600000000
|
||||||
|
- --rpc.max-blocks-per-filter=0
|
||||||
|
- --rpc.max-connections=50000
|
||||||
|
- --rpc.max-logs-per-response=0
|
||||||
|
- --rpc.max-trace-filter-blocks=10000
|
||||||
|
- --http
|
||||||
|
- --http.addr=0.0.0.0
|
||||||
|
- --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --http.corsdomain=*
|
||||||
|
- --http.port=8545
|
||||||
|
- --ws
|
||||||
|
- --ws.addr=0.0.0.0
|
||||||
|
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --ws.origins=*
|
||||||
|
- --ws.port=8545
|
||||||
|
- --authrpc.addr=0.0.0.0
|
||||||
|
- --authrpc.jwtsecret=/jwtsecret
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 5m
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- ${BASE_MAINNET_OP_RETH_PRUNED_TRACE_DATA:-base-mainnet-op-reth-pruned-trace}:/root/.local/share/reth
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
- /slowdisk:/slowdisk
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=9001
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-mainnet-op-reth-pruned-trace-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth-pruned
|
||||||
|
- traefik.http.services.base-mainnet-op-reth-pruned-trace.loadbalancer.server.port=8545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/base-mainnet-op-reth-pruned`) || Path(`/base-mainnet-op-reth-pruned/`))}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-pruned-trace.rule=Path(`/base-mainnet-op-reth-pruned`) || Path(`/base-mainnet-op-reth-pruned/`)}
|
||||||
|
- traefik.http.routers.base-mainnet-op-reth-pruned-trace.middlewares=base-mainnet-op-reth-pruned-trace-stripprefix, ipallowlist
|
||||||
|
shm_size: 2gb
|
||||||
|
|
||||||
|
base-mainnet-op-reth-pruned-node:
|
||||||
|
image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_MAINNET_KONA_VERSION:-v1.6.2}
|
||||||
|
ports:
|
||||||
|
- 19759:19759
|
||||||
|
- 19759:19759/udp
|
||||||
|
environment:
|
||||||
|
- KONA_METRICS_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||||
|
- KONA_NODE_L1_ETH_RPC=${BASE_MAINNET_L1_EXECUTION_RPC:-${ETHEREUM_MAINNET_EXECUTION_RPC}}
|
||||||
|
- KONA_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||||
|
- KONA_NODE_L2_CHAIN_ID=8453
|
||||||
|
- KONA_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
|
- KONA_NODE_L2_ENGINE_RPC=http://base-mainnet-op-reth-pruned:8551
|
||||||
|
- KONA_NODE_L2_ENGINE_TIMEOUT=120000
|
||||||
|
- KONA_NODE_L2_TRUST_RPC=true
|
||||||
|
- KONA_NODE_METRICS_PORT=7300
|
||||||
|
- KONA_NODE_MODE=Validator
|
||||||
|
- KONA_NODE_P2P_ADVERTISE_IP=${IP}
|
||||||
|
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||||
|
- KONA_NODE_P2P_LISTEN_TCP_PORT=19759
|
||||||
|
- KONA_NODE_P2P_LISTEN_UDP_PORT=19759
|
||||||
|
- KONA_NODE_RPC_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_RPC_PORT=9545
|
||||||
|
- OP_NODE_SYNCMODE=execution-layer
|
||||||
|
entrypoint: [kona-node, node]
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
base-mainnet-op-reth-pruned:
|
||||||
|
condition: service_started
|
||||||
|
restart: true
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=7300
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-mainnet-op-reth-pruned-trace-node-stripprefix.stripprefix.prefixes=/base-mainnet-op-reth-pruned/node
|
||||||
|
- traefik.http.services.base-mainnet-op-reth-pruned-trace-node.loadbalancer.server.port=9545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-op-reth-pruned/node`)}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.rule=PathPrefix(`/base-mainnet-op-reth-pruned/node`)}
|
||||||
|
- traefik.http.routers.base-mainnet-op-reth-pruned-trace-node.middlewares=base-mainnet-op-reth-pruned-trace-node-stripprefix, ipallowlist
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
base-mainnet-op-reth-pruned-trace:
|
||||||
|
|
||||||
|
x-upstreams:
|
||||||
|
- id: $${ID}
|
||||||
|
labels:
|
||||||
|
provider: $${PROVIDER}
|
||||||
|
connection:
|
||||||
|
generic:
|
||||||
|
rpc:
|
||||||
|
url: $${RPC_URL}
|
||||||
|
ws:
|
||||||
|
frameSize: 20Mb
|
||||||
|
msgSize: 50Mb
|
||||||
|
url: $${WS_URL}
|
||||||
|
chain: base
|
||||||
|
method-groups:
|
||||||
|
enabled:
|
||||||
|
- debug
|
||||||
|
- filter
|
||||||
|
- trace
|
||||||
|
methods:
|
||||||
|
disabled:
|
||||||
|
- name: eth_maxPriorityFeePerGas
|
||||||
|
enabled:
|
||||||
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
|
...
|
||||||
188
op/reth/base-sepolia-op-reth-archive-trace--kona.yml
Normal file
188
op/reth/base-sepolia-op-reth-archive-trace--kona.yml
Normal file
@@ -0,0 +1,188 @@
|
|||||||
|
---
|
||||||
|
x-logging-defaults: &logging-defaults
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: "512m"
|
||||||
|
max-file: "2"
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# mkdir rpc && cd rpc
|
||||||
|
#
|
||||||
|
# git init
|
||||||
|
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||||
|
# git fetch origin vibe
|
||||||
|
# git checkout origin/vibe
|
||||||
|
#
|
||||||
|
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||||
|
#
|
||||||
|
# env
|
||||||
|
# ...
|
||||||
|
# IP=$(curl ipinfo.io/ip)
|
||||||
|
# DOMAIN=${IP}.traefik.me
|
||||||
|
# COMPOSE_FILE=base.yml:rpc.yml:op/reth/base-sepolia-op-reth-archive-trace--kona.yml
|
||||||
|
#
|
||||||
|
# docker compose up -d
|
||||||
|
#
|
||||||
|
# curl -X POST https://${IP}.traefik.me/base-sepolia-op-reth \
|
||||||
|
# -H "Content-Type: application/json" \
|
||||||
|
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||||
|
|
||||||
|
services:
|
||||||
|
base-sepolia-op-reth:
|
||||||
|
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.1.0}
|
||||||
|
sysctls:
|
||||||
|
# TCP Performance
|
||||||
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
|
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||||
|
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||||
|
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||||
|
net.core.somaxconn: 32768 # Higher connection queue
|
||||||
|
# Memory/Connection Management
|
||||||
|
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||||
|
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||||
|
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||||
|
ulimits:
|
||||||
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
|
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- 11390:11390
|
||||||
|
- 11390:11390/udp
|
||||||
|
expose:
|
||||||
|
- 8545
|
||||||
|
- 9001
|
||||||
|
- 8551
|
||||||
|
entrypoint: [/app/base-reth-node, node]
|
||||||
|
command:
|
||||||
|
- --chain=base-sepolia
|
||||||
|
- --datadir=/root/.local/share/reth
|
||||||
|
- --discovery.addr=0.0.0.0
|
||||||
|
- --discovery.port=11390
|
||||||
|
- --discovery.v5.addr=0.0.0.0
|
||||||
|
- --discovery.v5.port=11390
|
||||||
|
- --engine.cross-block-cache-size=${BASE_SEPOLIA_RETH_STATE_CACHE:-4096}
|
||||||
|
- --max-inbound-peers=50
|
||||||
|
- --max-outbound-peers=50
|
||||||
|
- --metrics=0.0.0.0:9001
|
||||||
|
- --nat=extip:${IP}
|
||||||
|
- --port=11390
|
||||||
|
- --rollup.sequencer-http=https://sepolia-sequencer.base.org
|
||||||
|
- --rpc-cache.max-blocks=10000
|
||||||
|
- --rpc-cache.max-concurrent-db-requests=2048
|
||||||
|
- --rpc.gascap=600000000
|
||||||
|
- --rpc.max-blocks-per-filter=0
|
||||||
|
- --rpc.max-connections=50000
|
||||||
|
- --rpc.max-logs-per-response=0
|
||||||
|
- --rpc.max-trace-filter-blocks=10000
|
||||||
|
- --http
|
||||||
|
- --http.addr=0.0.0.0
|
||||||
|
- --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --http.corsdomain=*
|
||||||
|
- --http.port=8545
|
||||||
|
- --ws
|
||||||
|
- --ws.addr=0.0.0.0
|
||||||
|
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --ws.origins=*
|
||||||
|
- --ws.port=8545
|
||||||
|
- --authrpc.addr=0.0.0.0
|
||||||
|
- --authrpc.jwtsecret=/jwtsecret
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 5m
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- ${BASE_SEPOLIA_OP_RETH_ARCHIVE_TRACE_DATA:-base-sepolia-op-reth-archive-trace}:/root/.local/share/reth
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
- /slowdisk:/slowdisk
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=9001
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-sepolia-op-reth-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth
|
||||||
|
- traefik.http.services.base-sepolia-op-reth-archive-trace.loadbalancer.server.port=8545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace.rule=Host(`$DOMAIN`) && (Path(`/base-sepolia-op-reth`) || Path(`/base-sepolia-op-reth/`))}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-archive-trace.rule=Path(`/base-sepolia-op-reth`) || Path(`/base-sepolia-op-reth/`)}
|
||||||
|
- traefik.http.routers.base-sepolia-op-reth-archive-trace.middlewares=base-sepolia-op-reth-archive-trace-stripprefix, ipallowlist
|
||||||
|
shm_size: 2gb
|
||||||
|
|
||||||
|
base-sepolia-op-reth-node:
|
||||||
|
image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_SEPOLIA_KONA_VERSION:-v1.6.2}
|
||||||
|
ports:
|
||||||
|
- 16390:16390
|
||||||
|
- 16390:16390/udp
|
||||||
|
environment:
|
||||||
|
- KONA_METRICS_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||||
|
- KONA_NODE_L1_ETH_RPC=${BASE_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}}
|
||||||
|
- KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||||
|
- KONA_NODE_L2_CHAIN_ID=84532
|
||||||
|
- KONA_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
|
- KONA_NODE_L2_ENGINE_RPC=http://base-sepolia-op-reth:8551
|
||||||
|
- KONA_NODE_L2_ENGINE_TIMEOUT=120000
|
||||||
|
- KONA_NODE_L2_TRUST_RPC=true
|
||||||
|
- KONA_NODE_METRICS_PORT=7300
|
||||||
|
- KONA_NODE_MODE=Validator
|
||||||
|
- KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400
|
||||||
|
- KONA_NODE_P2P_ADVERTISE_IP=${IP}
|
||||||
|
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||||
|
- KONA_NODE_P2P_LISTEN_TCP_PORT=16390
|
||||||
|
- KONA_NODE_P2P_LISTEN_UDP_PORT=16390
|
||||||
|
- KONA_NODE_RPC_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_RPC_PORT=9545
|
||||||
|
- OP_NODE_SYNCMODE=execution-layer
|
||||||
|
entrypoint: [kona-node, node]
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
base-sepolia-op-reth:
|
||||||
|
condition: service_started
|
||||||
|
restart: true
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=7300
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-sepolia-op-reth-archive-trace-node-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth/node
|
||||||
|
- traefik.http.services.base-sepolia-op-reth-archive-trace-node.loadbalancer.server.port=9545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace-node.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace-node.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-op-reth/node`)}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-archive-trace-node.rule=PathPrefix(`/base-sepolia-op-reth/node`)}
|
||||||
|
- traefik.http.routers.base-sepolia-op-reth-archive-trace-node.middlewares=base-sepolia-op-reth-archive-trace-node-stripprefix, ipallowlist
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
base-sepolia-op-reth-archive-trace:
|
||||||
|
|
||||||
|
x-upstreams:
|
||||||
|
- id: $${ID}
|
||||||
|
labels:
|
||||||
|
provider: $${PROVIDER}
|
||||||
|
connection:
|
||||||
|
generic:
|
||||||
|
rpc:
|
||||||
|
url: $${RPC_URL}
|
||||||
|
ws:
|
||||||
|
frameSize: 20Mb
|
||||||
|
msgSize: 50Mb
|
||||||
|
url: $${WS_URL}
|
||||||
|
chain: base-sepolia
|
||||||
|
method-groups:
|
||||||
|
enabled:
|
||||||
|
- debug
|
||||||
|
- filter
|
||||||
|
- trace
|
||||||
|
methods:
|
||||||
|
disabled:
|
||||||
|
- name: eth_maxPriorityFeePerGas
|
||||||
|
enabled:
|
||||||
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
|
...
|
||||||
188
op/reth/base-sepolia-op-reth-minimal-trace--kona.yml
Normal file
188
op/reth/base-sepolia-op-reth-minimal-trace--kona.yml
Normal file
@@ -0,0 +1,188 @@
|
|||||||
|
---
|
||||||
|
x-logging-defaults: &logging-defaults
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: "512m"
|
||||||
|
max-file: "2"
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# mkdir rpc && cd rpc
|
||||||
|
#
|
||||||
|
# git init
|
||||||
|
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||||
|
# git fetch origin vibe
|
||||||
|
# git checkout origin/vibe
|
||||||
|
#
|
||||||
|
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||||
|
#
|
||||||
|
# env
|
||||||
|
# ...
|
||||||
|
# IP=$(curl ipinfo.io/ip)
|
||||||
|
# DOMAIN=${IP}.traefik.me
|
||||||
|
# COMPOSE_FILE=base.yml:rpc.yml:op/reth/base-sepolia-op-reth-minimal-trace--kona.yml
|
||||||
|
#
|
||||||
|
# docker compose up -d
|
||||||
|
#
|
||||||
|
# curl -X POST https://${IP}.traefik.me/base-sepolia-op-reth-minimal \
|
||||||
|
# -H "Content-Type: application/json" \
|
||||||
|
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||||
|
|
||||||
|
services:
|
||||||
|
base-sepolia-op-reth-minimal:
|
||||||
|
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.1.0}
|
||||||
|
sysctls:
|
||||||
|
# TCP Performance
|
||||||
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
|
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||||
|
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||||
|
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||||
|
net.core.somaxconn: 32768 # Higher connection queue
|
||||||
|
# Memory/Connection Management
|
||||||
|
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||||
|
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||||
|
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||||
|
ulimits:
|
||||||
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
|
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- 12165:12165
|
||||||
|
- 12165:12165/udp
|
||||||
|
expose:
|
||||||
|
- 8545
|
||||||
|
- 9001
|
||||||
|
- 8551
|
||||||
|
entrypoint: [/app/base-reth-node, node]
|
||||||
|
command:
|
||||||
|
- --chain=base-sepolia
|
||||||
|
- --datadir=/root/.local/share/reth
|
||||||
|
- --discovery.addr=0.0.0.0
|
||||||
|
- --discovery.port=12165
|
||||||
|
- --discovery.v5.addr=0.0.0.0
|
||||||
|
- --discovery.v5.port=12165
|
||||||
|
- --engine.cross-block-cache-size=${BASE_SEPOLIA_RETH_STATE_CACHE:-4096}
|
||||||
|
- --max-inbound-peers=50
|
||||||
|
- --max-outbound-peers=50
|
||||||
|
- --metrics=0.0.0.0:9001
|
||||||
|
- --nat=extip:${IP}
|
||||||
|
- --port=12165
|
||||||
|
- --rollup.sequencer-http=https://sepolia-sequencer.base.org
|
||||||
|
- --rpc-cache.max-blocks=10000
|
||||||
|
- --rpc-cache.max-concurrent-db-requests=2048
|
||||||
|
- --rpc.gascap=600000000
|
||||||
|
- --rpc.max-blocks-per-filter=0
|
||||||
|
- --rpc.max-connections=50000
|
||||||
|
- --rpc.max-logs-per-response=0
|
||||||
|
- --rpc.max-trace-filter-blocks=10000
|
||||||
|
- --http
|
||||||
|
- --http.addr=0.0.0.0
|
||||||
|
- --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --http.corsdomain=*
|
||||||
|
- --http.port=8545
|
||||||
|
- --ws
|
||||||
|
- --ws.addr=0.0.0.0
|
||||||
|
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --ws.origins=*
|
||||||
|
- --ws.port=8545
|
||||||
|
- --authrpc.addr=0.0.0.0
|
||||||
|
- --authrpc.jwtsecret=/jwtsecret
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 5m
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- ${BASE_SEPOLIA_OP_RETH_MINIMAL_TRACE_DATA:-base-sepolia-op-reth-minimal-trace}:/root/.local/share/reth
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
- /slowdisk:/slowdisk
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=9001
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-sepolia-op-reth-minimal-trace-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth-minimal
|
||||||
|
- traefik.http.services.base-sepolia-op-reth-minimal-trace.loadbalancer.server.port=8545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace.rule=Host(`$DOMAIN`) && (Path(`/base-sepolia-op-reth-minimal`) || Path(`/base-sepolia-op-reth-minimal/`))}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-minimal-trace.rule=Path(`/base-sepolia-op-reth-minimal`) || Path(`/base-sepolia-op-reth-minimal/`)}
|
||||||
|
- traefik.http.routers.base-sepolia-op-reth-minimal-trace.middlewares=base-sepolia-op-reth-minimal-trace-stripprefix, ipallowlist
|
||||||
|
shm_size: 2gb
|
||||||
|
|
||||||
|
base-sepolia-op-reth-minimal-node:
|
||||||
|
image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_SEPOLIA_KONA_VERSION:-v1.6.2}
|
||||||
|
ports:
|
||||||
|
- 17165:17165
|
||||||
|
- 17165:17165/udp
|
||||||
|
environment:
|
||||||
|
- KONA_METRICS_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||||
|
- KONA_NODE_L1_ETH_RPC=${BASE_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}}
|
||||||
|
- KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||||
|
- KONA_NODE_L2_CHAIN_ID=84532
|
||||||
|
- KONA_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
|
- KONA_NODE_L2_ENGINE_RPC=http://base-sepolia-op-reth-minimal:8551
|
||||||
|
- KONA_NODE_L2_ENGINE_TIMEOUT=120000
|
||||||
|
- KONA_NODE_L2_TRUST_RPC=true
|
||||||
|
- KONA_NODE_METRICS_PORT=7300
|
||||||
|
- KONA_NODE_MODE=Validator
|
||||||
|
- KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400
|
||||||
|
- KONA_NODE_P2P_ADVERTISE_IP=${IP}
|
||||||
|
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||||
|
- KONA_NODE_P2P_LISTEN_TCP_PORT=17165
|
||||||
|
- KONA_NODE_P2P_LISTEN_UDP_PORT=17165
|
||||||
|
- KONA_NODE_RPC_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_RPC_PORT=9545
|
||||||
|
- OP_NODE_SYNCMODE=execution-layer
|
||||||
|
entrypoint: [kona-node, node]
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
base-sepolia-op-reth-minimal:
|
||||||
|
condition: service_started
|
||||||
|
restart: true
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=7300
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-sepolia-op-reth-minimal-trace-node-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth-minimal/node
|
||||||
|
- traefik.http.services.base-sepolia-op-reth-minimal-trace-node.loadbalancer.server.port=9545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-op-reth-minimal/node`)}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.rule=PathPrefix(`/base-sepolia-op-reth-minimal/node`)}
|
||||||
|
- traefik.http.routers.base-sepolia-op-reth-minimal-trace-node.middlewares=base-sepolia-op-reth-minimal-trace-node-stripprefix, ipallowlist
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
base-sepolia-op-reth-minimal-trace:
|
||||||
|
|
||||||
|
x-upstreams:
|
||||||
|
- id: $${ID}
|
||||||
|
labels:
|
||||||
|
provider: $${PROVIDER}
|
||||||
|
connection:
|
||||||
|
generic:
|
||||||
|
rpc:
|
||||||
|
url: $${RPC_URL}
|
||||||
|
ws:
|
||||||
|
frameSize: 20Mb
|
||||||
|
msgSize: 50Mb
|
||||||
|
url: $${WS_URL}
|
||||||
|
chain: base-sepolia
|
||||||
|
method-groups:
|
||||||
|
enabled:
|
||||||
|
- debug
|
||||||
|
- filter
|
||||||
|
- trace
|
||||||
|
methods:
|
||||||
|
disabled:
|
||||||
|
- name: eth_maxPriorityFeePerGas
|
||||||
|
enabled:
|
||||||
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
|
...
|
||||||
189
op/reth/base-sepolia-op-reth-pruned-trace--kona.yml
Normal file
189
op/reth/base-sepolia-op-reth-pruned-trace--kona.yml
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
---
|
||||||
|
x-logging-defaults: &logging-defaults
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: "512m"
|
||||||
|
max-file: "2"
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# mkdir rpc && cd rpc
|
||||||
|
#
|
||||||
|
# git init
|
||||||
|
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||||
|
# git fetch origin vibe
|
||||||
|
# git checkout origin/vibe
|
||||||
|
#
|
||||||
|
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||||
|
#
|
||||||
|
# env
|
||||||
|
# ...
|
||||||
|
# IP=$(curl ipinfo.io/ip)
|
||||||
|
# DOMAIN=${IP}.traefik.me
|
||||||
|
# COMPOSE_FILE=base.yml:rpc.yml:op/reth/base-sepolia-op-reth-pruned-trace--kona.yml
|
||||||
|
#
|
||||||
|
# docker compose up -d
|
||||||
|
#
|
||||||
|
# curl -X POST https://${IP}.traefik.me/base-sepolia-op-reth-pruned \
|
||||||
|
# -H "Content-Type: application/json" \
|
||||||
|
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||||
|
|
||||||
|
services:
|
||||||
|
base-sepolia-op-reth-pruned:
|
||||||
|
image: ${BASE_RETH_IMAGE:-ghcr.io/base/node-reth}:${BASE_SEPOLIA_RETH_VERSION:-v1.1.0}
|
||||||
|
sysctls:
|
||||||
|
# TCP Performance
|
||||||
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
|
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||||
|
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||||
|
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||||
|
net.core.somaxconn: 32768 # Higher connection queue
|
||||||
|
# Memory/Connection Management
|
||||||
|
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||||
|
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||||
|
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||||
|
ulimits:
|
||||||
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
|
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- 11147:11147
|
||||||
|
- 11147:11147/udp
|
||||||
|
expose:
|
||||||
|
- 8545
|
||||||
|
- 9001
|
||||||
|
- 8551
|
||||||
|
entrypoint: [/app/base-reth-node, node]
|
||||||
|
command:
|
||||||
|
- --chain=base-sepolia
|
||||||
|
- --datadir=/root/.local/share/reth
|
||||||
|
- --discovery.addr=0.0.0.0
|
||||||
|
- --discovery.port=11147
|
||||||
|
- --discovery.v5.addr=0.0.0.0
|
||||||
|
- --discovery.v5.port=11147
|
||||||
|
- --engine.cross-block-cache-size=${BASE_SEPOLIA_RETH_STATE_CACHE:-4096}
|
||||||
|
- --full
|
||||||
|
- --max-inbound-peers=50
|
||||||
|
- --max-outbound-peers=50
|
||||||
|
- --metrics=0.0.0.0:9001
|
||||||
|
- --nat=extip:${IP}
|
||||||
|
- --port=11147
|
||||||
|
- --rollup.sequencer-http=https://sepolia-sequencer.base.org
|
||||||
|
- --rpc-cache.max-blocks=10000
|
||||||
|
- --rpc-cache.max-concurrent-db-requests=2048
|
||||||
|
- --rpc.gascap=600000000
|
||||||
|
- --rpc.max-blocks-per-filter=0
|
||||||
|
- --rpc.max-connections=50000
|
||||||
|
- --rpc.max-logs-per-response=0
|
||||||
|
- --rpc.max-trace-filter-blocks=10000
|
||||||
|
- --http
|
||||||
|
- --http.addr=0.0.0.0
|
||||||
|
- --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --http.corsdomain=*
|
||||||
|
- --http.port=8545
|
||||||
|
- --ws
|
||||||
|
- --ws.addr=0.0.0.0
|
||||||
|
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --ws.origins=*
|
||||||
|
- --ws.port=8545
|
||||||
|
- --authrpc.addr=0.0.0.0
|
||||||
|
- --authrpc.jwtsecret=/jwtsecret
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 5m
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- ${BASE_SEPOLIA_OP_RETH_PRUNED_TRACE_DATA:-base-sepolia-op-reth-pruned-trace}:/root/.local/share/reth
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
- /slowdisk:/slowdisk
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=9001
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-sepolia-op-reth-pruned-trace-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth-pruned
|
||||||
|
- traefik.http.services.base-sepolia-op-reth-pruned-trace.loadbalancer.server.port=8545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/base-sepolia-op-reth-pruned`) || Path(`/base-sepolia-op-reth-pruned/`))}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-pruned-trace.rule=Path(`/base-sepolia-op-reth-pruned`) || Path(`/base-sepolia-op-reth-pruned/`)}
|
||||||
|
- traefik.http.routers.base-sepolia-op-reth-pruned-trace.middlewares=base-sepolia-op-reth-pruned-trace-stripprefix, ipallowlist
|
||||||
|
shm_size: 2gb
|
||||||
|
|
||||||
|
base-sepolia-op-reth-pruned-node:
|
||||||
|
image: ${BASE_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${BASE_SEPOLIA_KONA_VERSION:-v1.6.2}
|
||||||
|
ports:
|
||||||
|
- 16147:16147
|
||||||
|
- 16147:16147/udp
|
||||||
|
environment:
|
||||||
|
- KONA_METRICS_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||||
|
- KONA_NODE_L1_ETH_RPC=${BASE_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}}
|
||||||
|
- KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||||
|
- KONA_NODE_L2_CHAIN_ID=84532
|
||||||
|
- KONA_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
|
- KONA_NODE_L2_ENGINE_RPC=http://base-sepolia-op-reth-pruned:8551
|
||||||
|
- KONA_NODE_L2_ENGINE_TIMEOUT=120000
|
||||||
|
- KONA_NODE_L2_TRUST_RPC=true
|
||||||
|
- KONA_NODE_METRICS_PORT=7300
|
||||||
|
- KONA_NODE_MODE=Validator
|
||||||
|
- KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400
|
||||||
|
- KONA_NODE_P2P_ADVERTISE_IP=${IP}
|
||||||
|
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||||
|
- KONA_NODE_P2P_LISTEN_TCP_PORT=16147
|
||||||
|
- KONA_NODE_P2P_LISTEN_UDP_PORT=16147
|
||||||
|
- KONA_NODE_RPC_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_RPC_PORT=9545
|
||||||
|
- OP_NODE_SYNCMODE=execution-layer
|
||||||
|
entrypoint: [kona-node, node]
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
base-sepolia-op-reth-pruned:
|
||||||
|
condition: service_started
|
||||||
|
restart: true
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=7300
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.base-sepolia-op-reth-pruned-trace-node-stripprefix.stripprefix.prefixes=/base-sepolia-op-reth-pruned/node
|
||||||
|
- traefik.http.services.base-sepolia-op-reth-pruned-trace-node.loadbalancer.server.port=9545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-op-reth-pruned/node`)}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.rule=PathPrefix(`/base-sepolia-op-reth-pruned/node`)}
|
||||||
|
- traefik.http.routers.base-sepolia-op-reth-pruned-trace-node.middlewares=base-sepolia-op-reth-pruned-trace-node-stripprefix, ipallowlist
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
base-sepolia-op-reth-pruned-trace:
|
||||||
|
|
||||||
|
x-upstreams:
|
||||||
|
- id: $${ID}
|
||||||
|
labels:
|
||||||
|
provider: $${PROVIDER}
|
||||||
|
connection:
|
||||||
|
generic:
|
||||||
|
rpc:
|
||||||
|
url: $${RPC_URL}
|
||||||
|
ws:
|
||||||
|
frameSize: 20Mb
|
||||||
|
msgSize: 50Mb
|
||||||
|
url: $${WS_URL}
|
||||||
|
chain: base-sepolia
|
||||||
|
method-groups:
|
||||||
|
enabled:
|
||||||
|
- debug
|
||||||
|
- filter
|
||||||
|
- trace
|
||||||
|
methods:
|
||||||
|
disabled:
|
||||||
|
- name: eth_maxPriorityFeePerGas
|
||||||
|
enabled:
|
||||||
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
|
...
|
||||||
@@ -134,7 +134,7 @@ services:
|
|||||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||||
- OP_NODE_P2P_LISTEN_TCP_PORT=19265
|
- OP_NODE_P2P_LISTEN_TCP_PORT=19265
|
||||||
- OP_NODE_P2P_LISTEN_UDP_PORT=19265
|
- OP_NODE_P2P_LISTEN_UDP_PORT=19265
|
||||||
- OP_NODE_P2P_STATIC=/ip4/34.19.21.27/tcp/9222/p2p/16Uiu2HAm3xezniqrtMrMqXKPp46Rb2d4mJ67f9TYayHC51SvCrqN
|
- OP_NODE_P2P_STATIC=/ip4/34.19.21.27/tcp/9222/p2p/16Uiu2HAm3xezniqrtMrMqXKPp46Rb2d4mJ67f9TYayHC51SvCrqN,/ip4/162.55.232.96/tcp/18767/p2p/16Uiu2HAmVN7o51j2pThspMtjWYe9TborWsxZD9uuFqq1H7xANKyz,/ip4/185.242.112.9/tcp/18767/p2p/16Uiu2HAm4txTfhdMqdM3QrQo2HcqL7M2a8fjFFFv4c1H9JgYgqvB,/ip4/193.160.22.66/tcp/18767/p2p/16Uiu2HAkzt7d4F5ufJfwGPd4TrGoT3DmhXzWnxuJWgGWc44nigz6,/ip4/38.18.230.23/tcp/18767/p2p/16Uiu2HAmK5EXWKKgzWsrSVkk6sNDmnjy6udL4swiahUEuguTYUnd
|
||||||
- OP_NODE_ROLLUP_CONFIG=/config/rollup.json
|
- 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
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ services:
|
|||||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||||
- OP_NODE_P2P_LISTEN_TCP_PORT=18767
|
- OP_NODE_P2P_LISTEN_TCP_PORT=18767
|
||||||
- OP_NODE_P2P_LISTEN_UDP_PORT=18767
|
- OP_NODE_P2P_LISTEN_UDP_PORT=18767
|
||||||
- OP_NODE_P2P_STATIC=/ip4/34.19.21.27/tcp/9222/p2p/16Uiu2HAm3xezniqrtMrMqXKPp46Rb2d4mJ67f9TYayHC51SvCrqN
|
- OP_NODE_P2P_STATIC=/ip4/34.19.21.27/tcp/9222/p2p/16Uiu2HAm3xezniqrtMrMqXKPp46Rb2d4mJ67f9TYayHC51SvCrqN,/ip4/162.55.232.96/tcp/18767/p2p/16Uiu2HAmVN7o51j2pThspMtjWYe9TborWsxZD9uuFqq1H7xANKyz,/ip4/185.242.112.9/tcp/18767/p2p/16Uiu2HAm4txTfhdMqdM3QrQo2HcqL7M2a8fjFFFv4c1H9JgYgqvB,/ip4/193.160.22.66/tcp/18767/p2p/16Uiu2HAkzt7d4F5ufJfwGPd4TrGoT3DmhXzWnxuJWgGWc44nigz6,/ip4/38.18.230.23/tcp/18767/p2p/16Uiu2HAmK5EXWKKgzWsrSVkk6sNDmnjy6udL4swiahUEuguTYUnd
|
||||||
- OP_NODE_ROLLUP_CONFIG=/config/rollup.json
|
- 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
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
soneium-mainnet-archive:
|
soneium-mainnet-archive:
|
||||||
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MAINNET_RETH_VERSION:-v2.3.3}
|
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MAINNET_RETH_VERSION:-v2.4.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
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
soneium-mainnet-archive:
|
soneium-mainnet-archive:
|
||||||
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MAINNET_RETH_VERSION:-v2.3.3}
|
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MAINNET_RETH_VERSION:-v2.4.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
|
||||||
@@ -111,7 +111,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
soneium-mainnet-archive-node:
|
soneium-mainnet-archive-node:
|
||||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MAINNET_NODE_VERSION:-v1.19.2}
|
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MAINNET_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 19133:19133
|
- 19133:19133
|
||||||
- 19133:19133/udp
|
- 19133:19133/udp
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
soneium-mainnet:
|
soneium-mainnet:
|
||||||
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MAINNET_RETH_VERSION:-v2.3.3}
|
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MAINNET_RETH_VERSION:-v2.4.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
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
soneium-mainnet:
|
soneium-mainnet:
|
||||||
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MAINNET_RETH_VERSION:-v2.3.3}
|
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MAINNET_RETH_VERSION:-v2.4.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
|
||||||
@@ -112,7 +112,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
soneium-mainnet-node:
|
soneium-mainnet-node:
|
||||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MAINNET_NODE_VERSION:-v1.19.2}
|
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MAINNET_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 16080:16080
|
- 16080:16080
|
||||||
- 16080:16080/udp
|
- 16080:16080/udp
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
soneium-minato-sepolia-op-reth:
|
soneium-minato-sepolia-op-reth:
|
||||||
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MINATO_SEPOLIA_RETH_VERSION:-v2.3.3}
|
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MINATO_SEPOLIA_RETH_VERSION:-v2.4.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
|
||||||
@@ -111,7 +111,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
soneium-minato-sepolia-op-reth-node:
|
soneium-minato-sepolia-op-reth-node:
|
||||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 19829:19829
|
- 19829:19829
|
||||||
- 19829:19829/udp
|
- 19829:19829/udp
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
soneium-minato-sepolia-op-reth-pruned:
|
soneium-minato-sepolia-op-reth-pruned:
|
||||||
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MINATO_SEPOLIA_RETH_VERSION:-v2.3.3}
|
image: ${SONEIUM_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${SONEIUM_MINATO_SEPOLIA_RETH_VERSION:-v2.4.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
|
||||||
@@ -112,7 +112,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
soneium-minato-sepolia-op-reth-pruned-node:
|
soneium-minato-sepolia-op-reth-pruned-node:
|
||||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${SONEIUM_MINATO_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 18724:18724
|
- 18724:18724
|
||||||
- 18724:18724/udp
|
- 18724:18724/udp
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ services:
|
|||||||
- OP_NODE_METRICS_PORT=7300
|
- OP_NODE_METRICS_PORT=7300
|
||||||
- OP_NODE_OVERRIDE_GRANITE=1725984001
|
- OP_NODE_OVERRIDE_GRANITE=1725984001
|
||||||
- OP_NODE_OVERRIDE_HOLOCENE=1732633200
|
- OP_NODE_OVERRIDE_HOLOCENE=1732633200
|
||||||
- OP_NODE_OVERRIDE_KARST=1781712000
|
- OP_NODE_OVERRIDE_KARST=1787068801
|
||||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||||
- OP_NODE_P2P_BOOTNODES=enode://c9fb471294f243ce4aa32f8987d743fed73fa109013996f169f81914efd2a76762f2f142bd6dcc147afe342c752a587e06ef2ea1418c99ff757986242e372f3d@34.105.58.183:9222?discport=30301,enode://d25ce99435982b04d60c4b41ba256b84b888626db7bee45a9419382300fbe907359ae5ef250346785bff8d3b9d07cd3e017a27e2ee3cfda3bcbb0ba762ac9674@bootnode.conduit.xyz:0?discport=30301,enode://2d4e7e9d48f4dd4efe9342706dd1b0024681bd4c3300d021f86fc75eab7865d4e0cbec6fbc883f011cfd6a57423e7e2f6e104baad2b744c3cafaec6bc7dc92c1@34.65.43.171:0?discport=30305,enode://9d7a3efefe442351217e73b3a593bcb8efffb55b4807699972145324eab5e6b382152f8d24f6301baebbfb5ecd4127bd3faab2842c04cd432bdf50ba092f6645@34.65.109.126:0?discport=30305
|
- OP_NODE_P2P_BOOTNODES=enode://c9fb471294f243ce4aa32f8987d743fed73fa109013996f169f81914efd2a76762f2f142bd6dcc147afe342c752a587e06ef2ea1418c99ff757986242e372f3d@34.105.58.183:9222?discport=30301,enode://d25ce99435982b04d60c4b41ba256b84b888626db7bee45a9419382300fbe907359ae5ef250346785bff8d3b9d07cd3e017a27e2ee3cfda3bcbb0ba762ac9674@bootnode.conduit.xyz:0?discport=30301,enode://2d4e7e9d48f4dd4efe9342706dd1b0024681bd4c3300d021f86fc75eab7865d4e0cbec6fbc883f011cfd6a57423e7e2f6e104baad2b744c3cafaec6bc7dc92c1@34.65.43.171:0?discport=30305,enode://9d7a3efefe442351217e73b3a593bcb8efffb55b4807699972145324eab5e6b382152f8d24f6301baebbfb5ecd4127bd3faab2842c04cd432bdf50ba092f6645@34.65.109.126:0?discport=30305
|
||||||
|
|||||||
189
op/reth/unichain-sepolia-op-reth-pruned-trace--kona.yml
Normal file
189
op/reth/unichain-sepolia-op-reth-pruned-trace--kona.yml
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
---
|
||||||
|
x-logging-defaults: &logging-defaults
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: "512m"
|
||||||
|
max-file: "2"
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# mkdir rpc && cd rpc
|
||||||
|
#
|
||||||
|
# git init
|
||||||
|
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||||
|
# git fetch origin vibe
|
||||||
|
# git checkout origin/vibe
|
||||||
|
#
|
||||||
|
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||||
|
#
|
||||||
|
# env
|
||||||
|
# ...
|
||||||
|
# IP=$(curl ipinfo.io/ip)
|
||||||
|
# DOMAIN=${IP}.traefik.me
|
||||||
|
# COMPOSE_FILE=base.yml:rpc.yml:op/reth/unichain-sepolia-op-reth-pruned-trace--kona.yml
|
||||||
|
#
|
||||||
|
# docker compose up -d
|
||||||
|
#
|
||||||
|
# curl -X POST https://${IP}.traefik.me/unichain-sepolia-op-reth-pruned \
|
||||||
|
# -H "Content-Type: application/json" \
|
||||||
|
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||||
|
|
||||||
|
services:
|
||||||
|
unichain-sepolia-op-reth-pruned:
|
||||||
|
image: ${UNICHAIN_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${UNICHAIN_SEPOLIA_RETH_VERSION:-v2.3.3}
|
||||||
|
sysctls:
|
||||||
|
# TCP Performance
|
||||||
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
|
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||||
|
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||||
|
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||||
|
net.core.somaxconn: 32768 # Higher connection queue
|
||||||
|
# Memory/Connection Management
|
||||||
|
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||||
|
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||||
|
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||||
|
ulimits:
|
||||||
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
|
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- 14152:14152
|
||||||
|
- 14152:14152/udp
|
||||||
|
expose:
|
||||||
|
- 8545
|
||||||
|
- 9001
|
||||||
|
- 8551
|
||||||
|
entrypoint: [op-reth, node]
|
||||||
|
command:
|
||||||
|
- --chain=unichain-sepolia
|
||||||
|
- --datadir=/root/.local/share/reth
|
||||||
|
- --discovery.addr=0.0.0.0
|
||||||
|
- --discovery.port=14152
|
||||||
|
- --discovery.v5.addr=0.0.0.0
|
||||||
|
- --discovery.v5.port=14152
|
||||||
|
- --engine.cross-block-cache-size=${UNICHAIN_SEPOLIA_RETH_STATE_CACHE:-4096}
|
||||||
|
- --full
|
||||||
|
- --max-inbound-peers=50
|
||||||
|
- --max-outbound-peers=50
|
||||||
|
- --metrics=0.0.0.0:9001
|
||||||
|
- --nat=extip:${IP}
|
||||||
|
- --port=14152
|
||||||
|
- --rollup.sequencer-http=https://sepolia.unichain.org
|
||||||
|
- --rpc-cache.max-blocks=10000
|
||||||
|
- --rpc-cache.max-concurrent-db-requests=2048
|
||||||
|
- --rpc.gascap=600000000
|
||||||
|
- --rpc.max-blocks-per-filter=0
|
||||||
|
- --rpc.max-connections=50000
|
||||||
|
- --rpc.max-logs-per-response=0
|
||||||
|
- --rpc.max-trace-filter-blocks=10000
|
||||||
|
- --http
|
||||||
|
- --http.addr=0.0.0.0
|
||||||
|
- --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --http.corsdomain=*
|
||||||
|
- --http.port=8545
|
||||||
|
- --ws
|
||||||
|
- --ws.addr=0.0.0.0
|
||||||
|
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --ws.origins=*
|
||||||
|
- --ws.port=8545
|
||||||
|
- --authrpc.addr=0.0.0.0
|
||||||
|
- --authrpc.jwtsecret=/jwtsecret
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 5m
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- ${UNICHAIN_SEPOLIA_OP_RETH_PRUNED_TRACE_DATA:-unichain-sepolia-op-reth-pruned-trace}:/root/.local/share/reth
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
- /slowdisk:/slowdisk
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=9001
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.unichain-sepolia-op-reth-pruned-trace-stripprefix.stripprefix.prefixes=/unichain-sepolia-op-reth-pruned
|
||||||
|
- traefik.http.services.unichain-sepolia-op-reth-pruned-trace.loadbalancer.server.port=8545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-reth-pruned-trace.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-reth-pruned-trace.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/unichain-sepolia-op-reth-pruned`) || Path(`/unichain-sepolia-op-reth-pruned/`))}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.unichain-sepolia-op-reth-pruned-trace.rule=Path(`/unichain-sepolia-op-reth-pruned`) || Path(`/unichain-sepolia-op-reth-pruned/`)}
|
||||||
|
- traefik.http.routers.unichain-sepolia-op-reth-pruned-trace.middlewares=unichain-sepolia-op-reth-pruned-trace-stripprefix, ipallowlist
|
||||||
|
shm_size: 2gb
|
||||||
|
|
||||||
|
unichain-sepolia-op-reth-pruned-node:
|
||||||
|
image: ${UNICHAIN_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${UNICHAIN_SEPOLIA_KONA_VERSION:-v1.6.2}
|
||||||
|
ports:
|
||||||
|
- 19152:19152
|
||||||
|
- 19152:19152/udp
|
||||||
|
environment:
|
||||||
|
- KONA_METRICS_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||||
|
- KONA_NODE_L1_ETH_RPC=${UNICHAIN_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}}
|
||||||
|
- KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||||
|
- KONA_NODE_L2_CHAIN_ID=1301
|
||||||
|
- KONA_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
|
- KONA_NODE_L2_ENGINE_RPC=http://unichain-sepolia-op-reth-pruned:8551
|
||||||
|
- KONA_NODE_L2_ENGINE_TIMEOUT=120000
|
||||||
|
- KONA_NODE_L2_TRUST_RPC=true
|
||||||
|
- KONA_NODE_METRICS_PORT=7300
|
||||||
|
- KONA_NODE_MODE=Validator
|
||||||
|
- KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400
|
||||||
|
- KONA_NODE_P2P_ADVERTISE_IP=${IP}
|
||||||
|
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||||
|
- KONA_NODE_P2P_LISTEN_TCP_PORT=19152
|
||||||
|
- KONA_NODE_P2P_LISTEN_UDP_PORT=19152
|
||||||
|
- KONA_NODE_RPC_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_RPC_PORT=9545
|
||||||
|
- OP_NODE_SYNCMODE=execution-layer
|
||||||
|
entrypoint: [kona-node, node]
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
unichain-sepolia-op-reth-pruned:
|
||||||
|
condition: service_started
|
||||||
|
restart: true
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=7300
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.unichain-sepolia-op-reth-pruned-trace-node-stripprefix.stripprefix.prefixes=/unichain-sepolia-op-reth-pruned/node
|
||||||
|
- traefik.http.services.unichain-sepolia-op-reth-pruned-trace-node.loadbalancer.server.port=9545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-reth-pruned-trace-node.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-reth-pruned-trace-node.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-reth-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-sepolia-op-reth-pruned/node`)}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.unichain-sepolia-op-reth-pruned-trace-node.rule=PathPrefix(`/unichain-sepolia-op-reth-pruned/node`)}
|
||||||
|
- traefik.http.routers.unichain-sepolia-op-reth-pruned-trace-node.middlewares=unichain-sepolia-op-reth-pruned-trace-node-stripprefix, ipallowlist
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
unichain-sepolia-op-reth-pruned-trace:
|
||||||
|
|
||||||
|
x-upstreams:
|
||||||
|
- id: $${ID}
|
||||||
|
labels:
|
||||||
|
provider: $${PROVIDER}
|
||||||
|
connection:
|
||||||
|
generic:
|
||||||
|
rpc:
|
||||||
|
url: $${RPC_URL}
|
||||||
|
ws:
|
||||||
|
frameSize: 20Mb
|
||||||
|
msgSize: 50Mb
|
||||||
|
url: $${WS_URL}
|
||||||
|
chain: unichain-sepolia
|
||||||
|
method-groups:
|
||||||
|
enabled:
|
||||||
|
- debug
|
||||||
|
- filter
|
||||||
|
- trace
|
||||||
|
methods:
|
||||||
|
disabled:
|
||||||
|
- name: eth_maxPriorityFeePerGas
|
||||||
|
enabled:
|
||||||
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
|
...
|
||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
worldchain-sepolia-op-reth:
|
worldchain-sepolia-op-reth:
|
||||||
image: ${WORLDCHAIN_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${WORLDCHAIN_SEPOLIA_RETH_VERSION:-v2.3.3}
|
image: ${WORLDCHAIN_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${WORLDCHAIN_SEPOLIA_RETH_VERSION:-v2.4.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
|
||||||
@@ -111,7 +111,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
worldchain-sepolia-op-reth-node:
|
worldchain-sepolia-op-reth-node:
|
||||||
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 18954:18954
|
- 18954:18954
|
||||||
- 18954:18954/udp
|
- 18954:18954/udp
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
worldchain-sepolia-op-reth-minimal:
|
worldchain-sepolia-op-reth-minimal:
|
||||||
image: ${WORLDCHAIN_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${WORLDCHAIN_SEPOLIA_RETH_VERSION:-v2.3.3}
|
image: ${WORLDCHAIN_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${WORLDCHAIN_SEPOLIA_RETH_VERSION:-v2.4.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
|
||||||
@@ -111,7 +111,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
worldchain-sepolia-op-reth-minimal-node:
|
worldchain-sepolia-op-reth-minimal-node:
|
||||||
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 18923:18923
|
- 18923:18923
|
||||||
- 18923:18923/udp
|
- 18923:18923/udp
|
||||||
|
|||||||
189
op/reth/worldchain-sepolia-op-reth-pruned-trace--kona.yml
Normal file
189
op/reth/worldchain-sepolia-op-reth-pruned-trace--kona.yml
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
---
|
||||||
|
x-logging-defaults: &logging-defaults
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: "512m"
|
||||||
|
max-file: "2"
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# mkdir rpc && cd rpc
|
||||||
|
#
|
||||||
|
# git init
|
||||||
|
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||||
|
# git fetch origin vibe
|
||||||
|
# git checkout origin/vibe
|
||||||
|
#
|
||||||
|
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||||
|
#
|
||||||
|
# env
|
||||||
|
# ...
|
||||||
|
# IP=$(curl ipinfo.io/ip)
|
||||||
|
# DOMAIN=${IP}.traefik.me
|
||||||
|
# COMPOSE_FILE=base.yml:rpc.yml:op/reth/worldchain-sepolia-op-reth-pruned-trace--kona.yml
|
||||||
|
#
|
||||||
|
# docker compose up -d
|
||||||
|
#
|
||||||
|
# curl -X POST https://${IP}.traefik.me/worldchain-sepolia-op-reth-pruned \
|
||||||
|
# -H "Content-Type: application/json" \
|
||||||
|
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||||
|
|
||||||
|
services:
|
||||||
|
worldchain-sepolia-op-reth-pruned:
|
||||||
|
image: ${WORLDCHAIN_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${WORLDCHAIN_SEPOLIA_RETH_VERSION:-v2.4.3}
|
||||||
|
sysctls:
|
||||||
|
# TCP Performance
|
||||||
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
|
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||||
|
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||||
|
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||||
|
net.core.somaxconn: 32768 # Higher connection queue
|
||||||
|
# Memory/Connection Management
|
||||||
|
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||||
|
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||||
|
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||||
|
ulimits:
|
||||||
|
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||||
|
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- 10736:10736
|
||||||
|
- 10736:10736/udp
|
||||||
|
expose:
|
||||||
|
- 8545
|
||||||
|
- 9001
|
||||||
|
- 8551
|
||||||
|
entrypoint: [op-reth, node]
|
||||||
|
command:
|
||||||
|
- --chain=worldchain-sepolia
|
||||||
|
- --datadir=/root/.local/share/reth
|
||||||
|
- --discovery.addr=0.0.0.0
|
||||||
|
- --discovery.port=10736
|
||||||
|
- --discovery.v5.addr=0.0.0.0
|
||||||
|
- --discovery.v5.port=10736
|
||||||
|
- --engine.cross-block-cache-size=${WORLDCHAIN_SEPOLIA_RETH_STATE_CACHE:-4096}
|
||||||
|
- --full
|
||||||
|
- --max-inbound-peers=50
|
||||||
|
- --max-outbound-peers=50
|
||||||
|
- --metrics=0.0.0.0:9001
|
||||||
|
- --nat=extip:${IP}
|
||||||
|
- --port=10736
|
||||||
|
- --rollup.sequencer-http=https://worldchain-sepolia.g.alchemy.com/public
|
||||||
|
- --rpc-cache.max-blocks=10000
|
||||||
|
- --rpc-cache.max-concurrent-db-requests=2048
|
||||||
|
- --rpc.gascap=600000000
|
||||||
|
- --rpc.max-blocks-per-filter=0
|
||||||
|
- --rpc.max-connections=50000
|
||||||
|
- --rpc.max-logs-per-response=0
|
||||||
|
- --rpc.max-trace-filter-blocks=10000
|
||||||
|
- --http
|
||||||
|
- --http.addr=0.0.0.0
|
||||||
|
- --http.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --http.corsdomain=*
|
||||||
|
- --http.port=8545
|
||||||
|
- --ws
|
||||||
|
- --ws.addr=0.0.0.0
|
||||||
|
- --ws.api=admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,mev
|
||||||
|
- --ws.origins=*
|
||||||
|
- --ws.port=8545
|
||||||
|
- --authrpc.addr=0.0.0.0
|
||||||
|
- --authrpc.jwtsecret=/jwtsecret
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 5m
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- ${WORLDCHAIN_SEPOLIA_OP_RETH_PRUNED_TRACE_DATA:-worldchain-sepolia-op-reth-pruned-trace}:/root/.local/share/reth
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
- /slowdisk:/slowdisk
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=9001
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.worldchain-sepolia-op-reth-pruned-trace-stripprefix.stripprefix.prefixes=/worldchain-sepolia-op-reth-pruned
|
||||||
|
- traefik.http.services.worldchain-sepolia-op-reth-pruned-trace.loadbalancer.server.port=8545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/worldchain-sepolia-op-reth-pruned`) || Path(`/worldchain-sepolia-op-reth-pruned/`))}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace.rule=Path(`/worldchain-sepolia-op-reth-pruned`) || Path(`/worldchain-sepolia-op-reth-pruned/`)}
|
||||||
|
- traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace.middlewares=worldchain-sepolia-op-reth-pruned-trace-stripprefix, ipallowlist
|
||||||
|
shm_size: 2gb
|
||||||
|
|
||||||
|
worldchain-sepolia-op-reth-pruned-node:
|
||||||
|
image: ${WORLDCHAIN_KONA_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/kona-node}:${WORLDCHAIN_SEPOLIA_KONA_VERSION:-v1.6.2}
|
||||||
|
ports:
|
||||||
|
- 15736:15736
|
||||||
|
- 15736:15736/udp
|
||||||
|
environment:
|
||||||
|
- KONA_METRICS_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||||
|
- KONA_NODE_L1_ETH_RPC=${WORLDCHAIN_SEPOLIA_L1_EXECUTION_RPC:-${ETHEREUM_SEPOLIA_EXECUTION_RPC}}
|
||||||
|
- KONA_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||||
|
- KONA_NODE_L2_CHAIN_ID=4801
|
||||||
|
- KONA_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||||
|
- KONA_NODE_L2_ENGINE_RPC=http://worldchain-sepolia-op-reth-pruned:8551
|
||||||
|
- KONA_NODE_L2_ENGINE_TIMEOUT=120000
|
||||||
|
- KONA_NODE_L2_TRUST_RPC=true
|
||||||
|
- KONA_NODE_METRICS_PORT=7300
|
||||||
|
- KONA_NODE_MODE=Validator
|
||||||
|
- KONA_NODE_OVERRIDE_PECTRA_BLOB_SCHEDULE=1742486400
|
||||||
|
- KONA_NODE_P2P_ADVERTISE_IP=${IP}
|
||||||
|
- KONA_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||||
|
- KONA_NODE_P2P_LISTEN_TCP_PORT=15736
|
||||||
|
- KONA_NODE_P2P_LISTEN_UDP_PORT=15736
|
||||||
|
- KONA_NODE_RPC_ADDR=0.0.0.0
|
||||||
|
- KONA_NODE_RPC_PORT=9545
|
||||||
|
- OP_NODE_SYNCMODE=execution-layer
|
||||||
|
entrypoint: [kona-node, node]
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
worldchain-sepolia-op-reth-pruned:
|
||||||
|
condition: service_started
|
||||||
|
restart: true
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
volumes:
|
||||||
|
- .jwtsecret:/jwtsecret:ro
|
||||||
|
logging: *logging-defaults
|
||||||
|
labels:
|
||||||
|
- prometheus-scrape.enabled=true
|
||||||
|
- prometheus-scrape.port=7300
|
||||||
|
- prometheus-scrape.path=/metrics
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.middlewares.worldchain-sepolia-op-reth-pruned-trace-node-stripprefix.stripprefix.prefixes=/worldchain-sepolia-op-reth-pruned/node
|
||||||
|
- traefik.http.services.worldchain-sepolia-op-reth-pruned-trace-node.loadbalancer.server.port=9545
|
||||||
|
- ${NO_SSL:-traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace-node.entrypoints=websecure}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace-node.tls.certresolver=myresolver}
|
||||||
|
- ${NO_SSL:-traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-sepolia-op-reth-pruned/node`)}
|
||||||
|
- ${NO_SSL:+traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace-node.rule=PathPrefix(`/worldchain-sepolia-op-reth-pruned/node`)}
|
||||||
|
- traefik.http.routers.worldchain-sepolia-op-reth-pruned-trace-node.middlewares=worldchain-sepolia-op-reth-pruned-trace-node-stripprefix, ipallowlist
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
worldchain-sepolia-op-reth-pruned-trace:
|
||||||
|
|
||||||
|
x-upstreams:
|
||||||
|
- id: $${ID}
|
||||||
|
labels:
|
||||||
|
provider: $${PROVIDER}
|
||||||
|
connection:
|
||||||
|
generic:
|
||||||
|
rpc:
|
||||||
|
url: $${RPC_URL}
|
||||||
|
ws:
|
||||||
|
frameSize: 20Mb
|
||||||
|
msgSize: 50Mb
|
||||||
|
url: $${WS_URL}
|
||||||
|
chain: worldchain-sepolia
|
||||||
|
method-groups:
|
||||||
|
enabled:
|
||||||
|
- debug
|
||||||
|
- filter
|
||||||
|
- trace
|
||||||
|
methods:
|
||||||
|
disabled:
|
||||||
|
- name: eth_maxPriorityFeePerGas
|
||||||
|
enabled:
|
||||||
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
|
...
|
||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
worldchain-sepolia-op-reth-pruned:
|
worldchain-sepolia-op-reth-pruned:
|
||||||
image: ${WORLDCHAIN_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${WORLDCHAIN_SEPOLIA_RETH_VERSION:-v2.3.3}
|
image: ${WORLDCHAIN_RETH_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth}:${WORLDCHAIN_SEPOLIA_RETH_VERSION:-v2.4.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
|
||||||
@@ -112,7 +112,7 @@ services:
|
|||||||
shm_size: 2gb
|
shm_size: 2gb
|
||||||
|
|
||||||
worldchain-sepolia-op-reth-pruned-node:
|
worldchain-sepolia-op-reth-pruned-node:
|
||||||
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.2}
|
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.19.6}
|
||||||
ports:
|
ports:
|
||||||
- 15736:15736
|
- 15736:15736
|
||||||
- 15736:15736/udp
|
- 15736:15736/udp
|
||||||
|
|||||||
@@ -215,6 +215,9 @@ x-upstreams:
|
|||||||
methods:
|
methods:
|
||||||
disabled:
|
disabled:
|
||||||
- name: eth_maxPriorityFeePerGas
|
- name: eth_maxPriorityFeePerGas
|
||||||
|
# xlayer-reth fork answers "rpc method is not whitelisted" (2026-09-11, 488 errors/day on dRPC);
|
||||||
|
# debug_traceCall / debug_traceBlockByNumber / trace_block do work.
|
||||||
|
- name: debug_traceTransaction
|
||||||
enabled:
|
enabled:
|
||||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
...
|
...
|
||||||
@@ -217,6 +217,9 @@ x-upstreams:
|
|||||||
methods:
|
methods:
|
||||||
disabled:
|
disabled:
|
||||||
- name: eth_maxPriorityFeePerGas
|
- name: eth_maxPriorityFeePerGas
|
||||||
|
# xlayer-reth fork answers "rpc method is not whitelisted" (2026-09-11, 488 errors/day on dRPC);
|
||||||
|
# debug_traceCall / debug_traceBlockByNumber / trace_block do work.
|
||||||
|
- name: debug_traceTransaction
|
||||||
enabled:
|
enabled:
|
||||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
...
|
...
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"holoceneTime": 1732633200,
|
"holoceneTime": 1732633200,
|
||||||
"isthmusTime": 1744905600,
|
"isthmusTime": 1744905600,
|
||||||
"jovianTime": 1768978801,
|
"jovianTime": 1768978801,
|
||||||
"karstTime": 1781712000,
|
"karstTime": 1787068801,
|
||||||
"terminalTotalDifficulty": 0,
|
"terminalTotalDifficulty": 0,
|
||||||
"terminalTotalDifficultyPassed": true,
|
"terminalTotalDifficultyPassed": true,
|
||||||
"optimism": {
|
"optimism": {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
"holocene_time": 1732633200,
|
"holocene_time": 1732633200,
|
||||||
"isthmus_time": 1744905600,
|
"isthmus_time": 1744905600,
|
||||||
"jovian_time": 1768978801,
|
"jovian_time": 1768978801,
|
||||||
"karst_time": 1781712000,
|
"karst_time": 1787068801,
|
||||||
"pectra_blob_schedule_time": 1742486400,
|
"pectra_blob_schedule_time": 1742486400,
|
||||||
"batch_inbox_address": "0x3a81f59e6bf4238d1ed202f3b06389454de3f204",
|
"batch_inbox_address": "0x3a81f59e6bf4238d1ed202f3b06389454de3f204",
|
||||||
"deposit_contract_address": "0x7a0db8c51432d2c3eb4e8f360a2eeb26ff2809fb",
|
"deposit_contract_address": "0x7a0db8c51432d2c3eb4e8f360a2eeb26ff2809fb",
|
||||||
|
|||||||
@@ -34,12 +34,6 @@ services:
|
|||||||
entrypoint: [/bin/sh, -c]
|
entrypoint: [/bin/sh, -c]
|
||||||
command:
|
command:
|
||||||
- |
|
- |
|
||||||
if [ ! -f /jwt/jwt.hex ]; then
|
|
||||||
echo 'INFO Generating jwt secret'
|
|
||||||
openssl rand -hex 32 | tr -d '\n' > /jwt/jwt.hex
|
|
||||||
else
|
|
||||||
echo 'INFO JWT secret already exists'
|
|
||||||
fi
|
|
||||||
if [ ! -f /consensus/ec-secp256k1-non-validator.pem ]; then
|
if [ ! -f /consensus/ec-secp256k1-non-validator.pem ]; then
|
||||||
echo 'INFO Generating secp256k1 keypair for non-validator'
|
echo 'INFO Generating secp256k1 keypair for non-validator'
|
||||||
openssl ecparam -name secp256k1 -genkey -noout -out /consensus/ec-secp256k1-non-validator.pem
|
openssl ecparam -name secp256k1 -genkey -noout -out /consensus/ec-secp256k1-non-validator.pem
|
||||||
@@ -53,7 +47,6 @@ services:
|
|||||||
- chains
|
- chains
|
||||||
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-reth-pruned-trace-jwt:/jwt:rw
|
|
||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
plasma-mainnet-initialize-consensus:
|
plasma-mainnet-initialize-consensus:
|
||||||
@@ -87,7 +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-reth-pruned-trace-jwt:/jwt:ro
|
- .jwtsecret:/jwt/jwt.hex:ro
|
||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
plasma-mainnet-initialize-execution:
|
plasma-mainnet-initialize-execution:
|
||||||
@@ -115,7 +108,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ${PLASMA_MAINNET_RETH_PRUNED_TRACE_EXECUTION_DATA:-plasma-mainnet-reth-pruned-trace-execution}:/execution:rw
|
- ${PLASMA_MAINNET_RETH_PRUNED_TRACE_EXECUTION_DATA:-plasma-mainnet-reth-pruned-trace-execution}:/execution:rw
|
||||||
- ./plasma/mainnet/genesis.json:/node/genesis.json:ro
|
- ./plasma/mainnet/genesis.json:/node/genesis.json:ro
|
||||||
- plasma-mainnet-reth-pruned-trace-jwt:/jwt:ro
|
- .jwtsecret:/jwt/jwt.hex:ro
|
||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
plasma-mainnet:
|
plasma-mainnet:
|
||||||
@@ -174,8 +167,8 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ${PLASMA_MAINNET_RETH_PRUNED_TRACE_EXECUTION_DATA:-plasma-mainnet-reth-pruned-trace-execution}:/execution:rw
|
- ${PLASMA_MAINNET_RETH_PRUNED_TRACE_EXECUTION_DATA:-plasma-mainnet-reth-pruned-trace-execution}:/execution:rw
|
||||||
- ./plasma/mainnet/genesis.json:/node/genesis.json:ro
|
- ./plasma/mainnet/genesis.json:/node/genesis.json:ro
|
||||||
|
- .jwtsecret:/jwt/jwt.hex:ro
|
||||||
- /slowdisk:/slowdisk
|
- /slowdisk:/slowdisk
|
||||||
- plasma-mainnet-reth-pruned-trace-jwt:/jwt:ro
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: [CMD, bash, -c, exec 6<> /dev/tcp/localhost/8545 && exec 6<> /dev/tcp/localhost/8551]
|
test: [CMD, bash, -c, exec 6<> /dev/tcp/localhost/8545 && exec 6<> /dev/tcp/localhost/8551]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
@@ -207,7 +200,13 @@ services:
|
|||||||
entrypoint: [/bin/bash, -c]
|
entrypoint: [/bin/bash, -c]
|
||||||
command:
|
command:
|
||||||
- |
|
- |
|
||||||
sed 's|http://plasma-mainnet:8551|http://plasma-mainnet:8551|g' /config/non-validator.toml > /tmp/non-validator.toml
|
# The fleet .jwtsecret is 0x-prefixed (geth/reth accept that); plasma-cli insists on a
|
||||||
|
# bare 64-char hex string, so hand it a stripped copy (2026-09-11).
|
||||||
|
tr -d '\n\r ' < /jwt/jwt.hex | sed 's/^0x//' > /tmp/jwt.hex
|
||||||
|
# Rewrite engine_api_url to this compose service (mainnet/testnet tomls ship chain-specific hosts)
|
||||||
|
# and point authrpc_jwtsecret at the stripped copy.
|
||||||
|
sed -E -e 's|http://[^[:space:]/"]+:8551|http://plasma-mainnet:8551|g' \
|
||||||
|
-e 's|^(authrpc_jwtsecret *= *).*$|\1"/tmp/jwt.hex"|' /config/non-validator.toml > /tmp/non-validator.toml
|
||||||
exec plasma-cli observer \
|
exec plasma-cli observer \
|
||||||
--config-path /tmp/non-validator.toml \
|
--config-path /tmp/non-validator.toml \
|
||||||
--no-color \
|
--no-color \
|
||||||
@@ -232,7 +231,7 @@ services:
|
|||||||
- ./plasma/mainnet/identities:/node/identities:ro
|
- ./plasma/mainnet/identities:/node/identities:ro
|
||||||
- ./plasma/mainnet/keys:/node/keys:ro
|
- ./plasma/mainnet/keys:/node/keys:ro
|
||||||
- ./plasma/mainnet/non-validator.toml:/config/non-validator.toml:ro
|
- ./plasma/mainnet/non-validator.toml:/config/non-validator.toml:ro
|
||||||
- plasma-mainnet-reth-pruned-trace-jwt:/jwt:ro
|
- .jwtsecret:/jwt/jwt.hex:ro
|
||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
labels:
|
labels:
|
||||||
- prometheus-scrape.enabled=true
|
- prometheus-scrape.enabled=true
|
||||||
@@ -241,7 +240,6 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
plasma-mainnet-reth-pruned-trace-consensus:
|
plasma-mainnet-reth-pruned-trace-consensus:
|
||||||
plasma-mainnet-reth-pruned-trace-execution:
|
plasma-mainnet-reth-pruned-trace-execution:
|
||||||
plasma-mainnet-reth-pruned-trace-jwt:
|
|
||||||
|
|
||||||
x-upstreams:
|
x-upstreams:
|
||||||
- id: $${ID}
|
- id: $${ID}
|
||||||
|
|||||||
@@ -34,12 +34,6 @@ services:
|
|||||||
entrypoint: [/bin/sh, -c]
|
entrypoint: [/bin/sh, -c]
|
||||||
command:
|
command:
|
||||||
- |
|
- |
|
||||||
if [ ! -f /jwt/jwt.hex ]; then
|
|
||||||
echo 'INFO Generating jwt secret'
|
|
||||||
openssl rand -hex 32 | tr -d '\n' > /jwt/jwt.hex
|
|
||||||
else
|
|
||||||
echo 'INFO JWT secret already exists'
|
|
||||||
fi
|
|
||||||
if [ ! -f /consensus/ec-secp256k1-non-validator.pem ]; then
|
if [ ! -f /consensus/ec-secp256k1-non-validator.pem ]; then
|
||||||
echo 'INFO Generating secp256k1 keypair for non-validator'
|
echo 'INFO Generating secp256k1 keypair for non-validator'
|
||||||
openssl ecparam -name secp256k1 -genkey -noout -out /consensus/ec-secp256k1-non-validator.pem
|
openssl ecparam -name secp256k1 -genkey -noout -out /consensus/ec-secp256k1-non-validator.pem
|
||||||
@@ -53,7 +47,6 @@ services:
|
|||||||
- chains
|
- chains
|
||||||
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-reth-pruned-trace-jwt:/jwt:rw
|
|
||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
plasma-testnet-initialize-consensus:
|
plasma-testnet-initialize-consensus:
|
||||||
@@ -87,7 +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-reth-pruned-trace-jwt:/jwt:ro
|
- .jwtsecret:/jwt/jwt.hex:ro
|
||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
plasma-testnet-initialize-execution:
|
plasma-testnet-initialize-execution:
|
||||||
@@ -115,7 +108,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ${PLASMA_TESTNET_RETH_PRUNED_TRACE_EXECUTION_DATA:-plasma-testnet-reth-pruned-trace-execution}:/execution:rw
|
- ${PLASMA_TESTNET_RETH_PRUNED_TRACE_EXECUTION_DATA:-plasma-testnet-reth-pruned-trace-execution}:/execution:rw
|
||||||
- ./plasma/testnet/genesis.json:/node/genesis.json:ro
|
- ./plasma/testnet/genesis.json:/node/genesis.json:ro
|
||||||
- plasma-testnet-reth-pruned-trace-jwt:/jwt:ro
|
- .jwtsecret:/jwt/jwt.hex:ro
|
||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
plasma-testnet:
|
plasma-testnet:
|
||||||
@@ -174,8 +167,8 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ${PLASMA_TESTNET_RETH_PRUNED_TRACE_EXECUTION_DATA:-plasma-testnet-reth-pruned-trace-execution}:/execution:rw
|
- ${PLASMA_TESTNET_RETH_PRUNED_TRACE_EXECUTION_DATA:-plasma-testnet-reth-pruned-trace-execution}:/execution:rw
|
||||||
- ./plasma/testnet/genesis.json:/node/genesis.json:ro
|
- ./plasma/testnet/genesis.json:/node/genesis.json:ro
|
||||||
|
- .jwtsecret:/jwt/jwt.hex:ro
|
||||||
- /slowdisk:/slowdisk
|
- /slowdisk:/slowdisk
|
||||||
- plasma-testnet-reth-pruned-trace-jwt:/jwt:ro
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: [CMD, bash, -c, exec 6<> /dev/tcp/localhost/8545 && exec 6<> /dev/tcp/localhost/8551]
|
test: [CMD, bash, -c, exec 6<> /dev/tcp/localhost/8545 && exec 6<> /dev/tcp/localhost/8551]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
@@ -207,8 +200,13 @@ services:
|
|||||||
entrypoint: [/bin/bash, -c]
|
entrypoint: [/bin/bash, -c]
|
||||||
command:
|
command:
|
||||||
- |
|
- |
|
||||||
# Rewrite engine_api_url to this compose service (mainnet/testnet tomls ship chain-specific hosts).
|
# The fleet .jwtsecret is 0x-prefixed (geth/reth accept that); plasma-cli insists on a
|
||||||
sed -E 's|http://[^[:space:]/"]+:8551|http://plasma-testnet:8551|g' /config/non-validator.toml > /tmp/non-validator.toml
|
# bare 64-char hex string, so hand it a stripped copy (2026-09-11).
|
||||||
|
tr -d '\n\r ' < /jwt/jwt.hex | sed 's/^0x//' > /tmp/jwt.hex
|
||||||
|
# Rewrite engine_api_url to this compose service (mainnet/testnet tomls ship chain-specific hosts)
|
||||||
|
# and point authrpc_jwtsecret at the stripped copy.
|
||||||
|
sed -E -e 's|http://[^[:space:]/"]+:8551|http://plasma-testnet:8551|g' \
|
||||||
|
-e 's|^(authrpc_jwtsecret *= *).*$|\1"/tmp/jwt.hex"|' /config/non-validator.toml > /tmp/non-validator.toml
|
||||||
exec plasma-cli observer \
|
exec plasma-cli observer \
|
||||||
--config-path /tmp/non-validator.toml \
|
--config-path /tmp/non-validator.toml \
|
||||||
--no-color \
|
--no-color \
|
||||||
@@ -233,7 +231,7 @@ services:
|
|||||||
- ./plasma/testnet/identities:/node/identities:ro
|
- ./plasma/testnet/identities:/node/identities:ro
|
||||||
- ./plasma/testnet/keys:/node/keys:ro
|
- ./plasma/testnet/keys:/node/keys:ro
|
||||||
- ./plasma/testnet/non-validator.toml:/config/non-validator.toml:ro
|
- ./plasma/testnet/non-validator.toml:/config/non-validator.toml:ro
|
||||||
- plasma-testnet-reth-pruned-trace-jwt:/jwt:ro
|
- .jwtsecret:/jwt/jwt.hex:ro
|
||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
labels:
|
labels:
|
||||||
- prometheus-scrape.enabled=true
|
- prometheus-scrape.enabled=true
|
||||||
@@ -242,7 +240,6 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
plasma-testnet-reth-pruned-trace-consensus:
|
plasma-testnet-reth-pruned-trace-consensus:
|
||||||
plasma-testnet-reth-pruned-trace-execution:
|
plasma-testnet-reth-pruned-trace-execution:
|
||||||
plasma-testnet-reth-pruned-trace-jwt:
|
|
||||||
|
|
||||||
x-upstreams:
|
x-upstreams:
|
||||||
- id: $${ID}
|
- id: $${ID}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
"https://rpc.mevblocker.io/fullprivacy",
|
"https://rpc.mevblocker.io/fullprivacy",
|
||||||
"https://eth.drpc.org",
|
"https://eth.drpc.org",
|
||||||
"https://api.securerpc.com/v1",
|
"https://api.securerpc.com/v1",
|
||||||
|
"https://xrpc.cl/eth",
|
||||||
"https://ethereum.drpc.org"
|
"https://ethereum.drpc.org"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -53,7 +54,8 @@
|
|||||||
"https://sepolia.gateway.tenderly.co",
|
"https://sepolia.gateway.tenderly.co",
|
||||||
"https://ethereum-sepolia-rpc.publicnode.com",
|
"https://ethereum-sepolia-rpc.publicnode.com",
|
||||||
"https://sepolia.drpc.org",
|
"https://sepolia.drpc.org",
|
||||||
"https://eth-sepolia.g.alchemy.com/v2/WddzdzI2o9S3COdT73d5w6AIogbKq4X-"
|
"https://eth-sepolia.g.alchemy.com/v2/WddzdzI2o9S3COdT73d5w6AIogbKq4X-",
|
||||||
|
"https://xrpc.cl/sepolia"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"holesky": {
|
"holesky": {
|
||||||
@@ -131,7 +133,8 @@
|
|||||||
"https://polygon-bor-rpc.publicnode.com",
|
"https://polygon-bor-rpc.publicnode.com",
|
||||||
"https://polygon.gateway.tenderly.co",
|
"https://polygon.gateway.tenderly.co",
|
||||||
"https://rpc.satelink.network/rpc/polygon",
|
"https://rpc.satelink.network/rpc/polygon",
|
||||||
"https://rpcfree.com/polygon-rpc"
|
"https://rpcfree.com/polygon-rpc",
|
||||||
|
"https://xrpc.cl/polygon"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"polygon-amoy": {
|
"polygon-amoy": {
|
||||||
@@ -159,6 +162,7 @@
|
|||||||
"https://arbitrum-one-rpc.publicnode.com",
|
"https://arbitrum-one-rpc.publicnode.com",
|
||||||
"https://rpcfree.com/arbitrum-rpc",
|
"https://rpcfree.com/arbitrum-rpc",
|
||||||
"https://rpc.satelink.network/rpc/arbitrum",
|
"https://rpc.satelink.network/rpc/arbitrum",
|
||||||
|
"https://xrpc.cl/arbitrum",
|
||||||
"https://arbitrum.drpc.org"
|
"https://arbitrum.drpc.org"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -184,7 +188,8 @@
|
|||||||
"https://mainnet.optimism.io",
|
"https://mainnet.optimism.io",
|
||||||
"https://optimism-rpc.publicnode.com",
|
"https://optimism-rpc.publicnode.com",
|
||||||
"https://optimism.gateway.tenderly.co",
|
"https://optimism.gateway.tenderly.co",
|
||||||
"https://optimism.drpc.org"
|
"https://optimism.drpc.org",
|
||||||
|
"https://xrpc.cl/optimism"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"optimism-sepolia": {
|
"optimism-sepolia": {
|
||||||
@@ -219,6 +224,7 @@
|
|||||||
"https://bsc-dataseed4.ninicoin.io",
|
"https://bsc-dataseed4.ninicoin.io",
|
||||||
"https://bsc-rpc.publicnode.com",
|
"https://bsc-rpc.publicnode.com",
|
||||||
"https://bsc-rpc-public.chainpulse.cc",
|
"https://bsc-rpc-public.chainpulse.cc",
|
||||||
|
"https://xrpc.cl/bsc",
|
||||||
"https://bsc.drpc.org"
|
"https://bsc.drpc.org"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -310,6 +316,7 @@
|
|||||||
"https://rpcfree.com/base-rpc",
|
"https://rpcfree.com/base-rpc",
|
||||||
"https://rpc.baseazul.dev",
|
"https://rpc.baseazul.dev",
|
||||||
"https://rpc.satelink.network/rpc/base",
|
"https://rpc.satelink.network/rpc/base",
|
||||||
|
"https://xrpc.cl/base",
|
||||||
"https://base.drpc.org"
|
"https://base.drpc.org"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -391,6 +398,7 @@
|
|||||||
"urls": [
|
"urls": [
|
||||||
"https://api.avax.network/ext/bc/C/rpc",
|
"https://api.avax.network/ext/bc/C/rpc",
|
||||||
"https://avalanche-c-chain-rpc.publicnode.com",
|
"https://avalanche-c-chain-rpc.publicnode.com",
|
||||||
|
"https://xrpc.cl/avalanche",
|
||||||
"https://avalanche.drpc.org"
|
"https://avalanche.drpc.org"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1627,8 +1635,7 @@
|
|||||||
"lagging_lag": 5,
|
"lagging_lag": 5,
|
||||||
"syncing_lag": 10,
|
"syncing_lag": 10,
|
||||||
"urls": [
|
"urls": [
|
||||||
"https://garfield-testnet.zircuit.com/",
|
"https://rpc.garfield-testnet.zircuit.com"
|
||||||
"https://zircuit-garfield-testnet.drpc.org"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"avail": {
|
"avail": {
|
||||||
@@ -3890,6 +3897,27 @@
|
|||||||
"https://sui-testnet.drpc.org"
|
"https://sui-testnet.drpc.org"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"gravity": {
|
||||||
|
"protocol": "eth",
|
||||||
|
"id": 127001,
|
||||||
|
"block_time_ms": 200,
|
||||||
|
"lagging_lag": 30,
|
||||||
|
"syncing_lag": 100,
|
||||||
|
"urls": [
|
||||||
|
"https://mainnet-rpc.gravity.xyz",
|
||||||
|
"https://gravity.drpc.org"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"gravity-testnet": {
|
||||||
|
"protocol": "eth",
|
||||||
|
"id": 7771625,
|
||||||
|
"block_time_ms": 200,
|
||||||
|
"lagging_lag": 30,
|
||||||
|
"syncing_lag": 100,
|
||||||
|
"urls": [
|
||||||
|
"https://gravity-testnet.drpc.org"
|
||||||
|
]
|
||||||
|
},
|
||||||
"core-pigeon": {
|
"core-pigeon": {
|
||||||
"id": 1114,
|
"id": 1114,
|
||||||
"urls": [
|
"urls": [
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ services:
|
|||||||
- 8545
|
- 8545
|
||||||
- 8546
|
- 8546
|
||||||
environment:
|
environment:
|
||||||
|
DEFAULT_JVM_OPTS: -Xms4G -Xmx8G
|
||||||
DOMAIN: ${DOMAIN}
|
DOMAIN: ${DOMAIN}
|
||||||
RSKJ_SYS_PROPS: -Drpc.providers.web.http.bind_address=0.0.0.0
|
RSKJ_SYS_PROPS: -Drpc.providers.web.http.bind_address=0.0.0.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -131,4 +132,6 @@ x-upstreams:
|
|||||||
disabled:
|
disabled:
|
||||||
enabled:
|
enabled:
|
||||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
|
options:
|
||||||
|
validate-syncing: false
|
||||||
...
|
...
|
||||||
@@ -52,6 +52,7 @@ services:
|
|||||||
- 8545
|
- 8545
|
||||||
- 8546
|
- 8546
|
||||||
environment:
|
environment:
|
||||||
|
DEFAULT_JVM_OPTS: -Xms4G -Xmx8G
|
||||||
DOMAIN: ${DOMAIN}
|
DOMAIN: ${DOMAIN}
|
||||||
RSKJ_SYS_PROPS: -Drpc.providers.web.http.bind_address=0.0.0.0
|
RSKJ_SYS_PROPS: -Drpc.providers.web.http.bind_address=0.0.0.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -131,4 +132,6 @@ x-upstreams:
|
|||||||
disabled:
|
disabled:
|
||||||
enabled:
|
enabled:
|
||||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||||
|
options:
|
||||||
|
validate-syncing: false
|
||||||
...
|
...
|
||||||
@@ -68,11 +68,28 @@ ct_merge_seeds() {
|
|||||||
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
_seeds=$(ct_valid_peers "$_seeds")
|
||||||
if [ -n "$_seeds" ]; then
|
if [ -n "$_seeds" ]; then
|
||||||
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ct_valid_peers LIST
|
||||||
|
# Keep only well-formed CometBFT peer entries (<40-hex node id>@<host>:<port>), drop and
|
||||||
|
# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes
|
||||||
|
# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31.
|
||||||
|
ct_valid_peers() {
|
||||||
|
_in="$1"; _out=""
|
||||||
|
for _p in $(echo "$_in" | tr ',' ' '); do
|
||||||
|
if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then
|
||||||
|
_out="${_out:+$_out,}$_p"
|
||||||
|
else
|
||||||
|
ct_log "dropping malformed peer entry: $_p"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "$_out"
|
||||||
|
}
|
||||||
|
|
||||||
# ct_set_persistent_peers CONFIG_TOML PEERS
|
# ct_set_persistent_peers CONFIG_TOML PEERS
|
||||||
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
||||||
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
||||||
@@ -80,6 +97,8 @@ ct_set_persistent_peers() {
|
|||||||
_cfg="$1"; _peers="$2"
|
_cfg="$1"; _peers="$2"
|
||||||
[ -f "$_cfg" ] || return 0
|
[ -f "$_cfg" ] || return 0
|
||||||
[ -n "$_peers" ] || return 0
|
[ -n "$_peers" ] || return 0
|
||||||
|
_peers=$(ct_valid_peers "$_peers")
|
||||||
|
[ -n "$_peers" ] || return 0
|
||||||
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
||||||
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -68,11 +68,28 @@ ct_merge_seeds() {
|
|||||||
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
_seeds=$(ct_valid_peers "$_seeds")
|
||||||
if [ -n "$_seeds" ]; then
|
if [ -n "$_seeds" ]; then
|
||||||
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ct_valid_peers LIST
|
||||||
|
# Keep only well-formed CometBFT peer entries (<40-hex node id>@<host>:<port>), drop and
|
||||||
|
# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes
|
||||||
|
# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31.
|
||||||
|
ct_valid_peers() {
|
||||||
|
_in="$1"; _out=""
|
||||||
|
for _p in $(echo "$_in" | tr ',' ' '); do
|
||||||
|
if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then
|
||||||
|
_out="${_out:+$_out,}$_p"
|
||||||
|
else
|
||||||
|
ct_log "dropping malformed peer entry: $_p"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "$_out"
|
||||||
|
}
|
||||||
|
|
||||||
# ct_set_persistent_peers CONFIG_TOML PEERS
|
# ct_set_persistent_peers CONFIG_TOML PEERS
|
||||||
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
||||||
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
||||||
@@ -80,6 +97,8 @@ ct_set_persistent_peers() {
|
|||||||
_cfg="$1"; _peers="$2"
|
_cfg="$1"; _peers="$2"
|
||||||
[ -f "$_cfg" ] || return 0
|
[ -f "$_cfg" ] || return 0
|
||||||
[ -n "$_peers" ] || return 0
|
[ -n "$_peers" ] || return 0
|
||||||
|
_peers=$(ct_valid_peers "$_peers")
|
||||||
|
[ -n "$_peers" ] || return 0
|
||||||
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
||||||
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@sophon-mainnet-archive-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@sophon-mainnet-archive-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_CONSENSUS_CONFIG_PATH=/config/consensus_config.yaml
|
- EN_CONSENSUS_CONFIG_PATH=/config/consensus_config.yaml
|
||||||
- EN_DA_API_NODE_URL=wss://mainnet.avail-rpc.com/
|
- EN_DA_API_NODE_URL=wss://mainnet.avail-rpc.com/
|
||||||
- EN_DA_APP_ID=102
|
- EN_DA_APP_ID=102
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@sophon-mainnet-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@sophon-mainnet-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_CONSENSUS_CONFIG_PATH=/config/consensus_config.yaml
|
- EN_CONSENSUS_CONFIG_PATH=/config/consensus_config.yaml
|
||||||
- EN_DA_API_NODE_URL=wss://mainnet.avail-rpc.com/
|
- EN_DA_API_NODE_URL=wss://mainnet.avail-rpc.com/
|
||||||
- EN_DA_APP_ID=102
|
- EN_DA_APP_ID=102
|
||||||
|
|||||||
@@ -68,11 +68,28 @@ ct_merge_seeds() {
|
|||||||
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
ct_log "no official seeds fetched from $_url (continuing with configured)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
_seeds=$(ct_valid_peers "$_seeds")
|
||||||
if [ -n "$_seeds" ]; then
|
if [ -n "$_seeds" ]; then
|
||||||
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
sed -i "s/^seeds = \".*\"/seeds = \"${_seeds}\"/" "$_cfg"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ct_valid_peers LIST
|
||||||
|
# Keep only well-formed CometBFT peer entries (<40-hex node id>@<host>:<port>), drop and
|
||||||
|
# log the rest. A truncated id such as 7c153a83@peer.haqq.mainnet.dteam.tech:28656 makes
|
||||||
|
# haqqd refuse to start ("invalid node ID"), 2026-09-07 rpc-de-31.
|
||||||
|
ct_valid_peers() {
|
||||||
|
_in="$1"; _out=""
|
||||||
|
for _p in $(echo "$_in" | tr ',' ' '); do
|
||||||
|
if echo "$_p" | grep -Eqi '^[0-9a-f]{40}@[^@,:]+:[0-9]+$'; then
|
||||||
|
_out="${_out:+$_out,}$_p"
|
||||||
|
else
|
||||||
|
ct_log "dropping malformed peer entry: $_p"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "$_out"
|
||||||
|
}
|
||||||
|
|
||||||
# ct_set_persistent_peers CONFIG_TOML PEERS
|
# ct_set_persistent_peers CONFIG_TOML PEERS
|
||||||
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
# Handles both cometbft-classic `persistent_peers` (underscore) and forks that use
|
||||||
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
# `persistent-peers` (hyphen, e.g. sei) — patches whichever key is present.
|
||||||
@@ -80,6 +97,8 @@ ct_set_persistent_peers() {
|
|||||||
_cfg="$1"; _peers="$2"
|
_cfg="$1"; _peers="$2"
|
||||||
[ -f "$_cfg" ] || return 0
|
[ -f "$_cfg" ] || return 0
|
||||||
[ -n "$_peers" ] || return 0
|
[ -n "$_peers" ] || return 0
|
||||||
|
_peers=$(ct_valid_peers "$_peers")
|
||||||
|
[ -n "$_peers" ] || return 0
|
||||||
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent_peers = \".*\"/persistent_peers = \"${_peers}\"/" "$_cfg"
|
||||||
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
sed -i "s/^persistent-peers = \".*\"/persistent-peers = \"${_peers}\"/" "$_cfg"
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
tempo-mainnet-reth-init:
|
tempo-mainnet-reth-init:
|
||||||
image: ${TEMPO_RETH_IMAGE:-ghcr.io/tempoxyz/tempo}:${TEMPO_CONSENSUS_KEYGEN_VERSION:-1.12.0}
|
image: ${TEMPO_RETH_IMAGE:-ghcr.io/tempoxyz/tempo}:${TEMPO_CONSENSUS_KEYGEN_VERSION:-1.14.0}
|
||||||
entrypoint: [/bin/sh, -c]
|
entrypoint: [/bin/sh, -c]
|
||||||
command:
|
command:
|
||||||
- if [ ! -f /secrets/validator_key.json ]; then tempo consensus generate-signing-key --output /secrets/validator_key.json; fi
|
- if [ ! -f /secrets/validator_key.json ]; then tempo consensus generate-signing-key --output /secrets/validator_key.json; fi
|
||||||
@@ -44,7 +44,7 @@ services:
|
|||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
tempo-mainnet-reth:
|
tempo-mainnet-reth:
|
||||||
image: ${TEMPO_RETH_IMAGE:-ghcr.io/tempoxyz/tempo}:${TEMPO_MAINNET_RETH_VERSION:-1.12.0}
|
image: ${TEMPO_RETH_IMAGE:-ghcr.io/tempoxyz/tempo}:${TEMPO_MAINNET_RETH_VERSION:-1.14.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
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
tempo-mainnet-reth-pruned-init:
|
tempo-mainnet-reth-pruned-init:
|
||||||
image: ${TEMPO_RETH_IMAGE:-ghcr.io/tempoxyz/tempo}:${TEMPO_CONSENSUS_KEYGEN_VERSION:-1.12.0}
|
image: ${TEMPO_RETH_IMAGE:-ghcr.io/tempoxyz/tempo}:${TEMPO_CONSENSUS_KEYGEN_VERSION:-1.14.0}
|
||||||
entrypoint: [/bin/sh, -c]
|
entrypoint: [/bin/sh, -c]
|
||||||
command:
|
command:
|
||||||
- if [ ! -f /secrets/validator_key.json ]; then tempo consensus generate-signing-key --output /secrets/validator_key.json; fi
|
- if [ ! -f /secrets/validator_key.json ]; then tempo consensus generate-signing-key --output /secrets/validator_key.json; fi
|
||||||
@@ -44,7 +44,7 @@ services:
|
|||||||
logging: *logging-defaults
|
logging: *logging-defaults
|
||||||
|
|
||||||
tempo-mainnet-reth-pruned:
|
tempo-mainnet-reth-pruned:
|
||||||
image: ${TEMPO_RETH_IMAGE:-ghcr.io/tempoxyz/tempo}:${TEMPO_MAINNET_RETH_VERSION:-1.12.0}
|
image: ${TEMPO_RETH_IMAGE:-ghcr.io/tempoxyz/tempo}:${TEMPO_MAINNET_RETH_VERSION:-1.14.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
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@zksync-era-boojnet-archive-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@zksync-era-boojnet-archive-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@zksync-era-boojnet-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@zksync-era-boojnet-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@zksync-era-mainnet-archive-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@zksync-era-mainnet-archive-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- DATABASE_POOL_SIZE=50
|
- DATABASE_POOL_SIZE=50
|
||||||
- DATABASE_URL=postgres://postgres:notsecurepassword@zksync-era-mainnet-db:5430/zksync_local_ext_node
|
- DATABASE_URL=postgres://postgres:notsecurepassword@zksync-era-mainnet-db:5430/zksync_local_ext_node
|
||||||
- EN_API_NAMESAPCES=eth,net,web3,debug,pubsub,debug,zks
|
- EN_API_NAMESPACES=eth,net,web3,debug,pubsub,debug,zks
|
||||||
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
- EN_ETH_CLIENT_URL=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||||
- EN_HEALTHCHECK_PORT=3081
|
- EN_HEALTHCHECK_PORT=3081
|
||||||
- EN_HTTP_PORT=8545
|
- EN_HTTP_PORT=8545
|
||||||
|
|||||||
Reference in New Issue
Block a user