This commit is contained in:
Brain🧠
2025-03-26 11:45:28 +02:00
143 changed files with 7864 additions and 1055 deletions

1
base-mainnet.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/base-mainnet-op-geth-pruned-pebble-path.yml

View File

@@ -2,7 +2,7 @@ version: '3.1'
services:
base-fullnode: # this is Optimism's geth client
image: ghcr.io/paradigmxyz/op-reth:${RETH_VERSION:-v1.1.5}
image: ghcr.io/paradigmxyz/op-reth:${RETH_VERSION:-v1.3.2}
expose:
- 9551
- 8545 # RPC / Websocket

View File

@@ -1,102 +0,0 @@
version: '3.1'
services:
base-sepolia: # this is Optimism's geth client
build: ./base
expose:
- 8545 # RPC / Websocket
- 30765 # P2P TCP (currently unused)
- 30765/udp # P2P UDP (currently unused)
- 6060 # metrics
- 855
ports:
- "30765:30765"
- "30765:30765/udp"
#command: [ "sh", "./geth-entrypoint" ]
restart: always
stop_grace_period: 3m
entrypoint: ./geth
command: --datadir=/data --verbosity=3 --http --http.corsdomain=* --http.vhosts=* --http.addr=0.0.0.0 --http.port=8545 --http.api=web3,debug,eth,net,engine --authrpc.addr=0.0.0.0 --authrpc.port=8551 --authrpc.vhosts=* --authrpc.jwtsecret=/jwtsecret --ws --ws.addr=0.0.0.0 --ws.port=8545 --ws.origins=* --ws.api=debug,eth,net,engine --metrics --metrics.addr=0.0.0.0 --metrics.port=6060 --syncmode=snap --gcmode=full --state.scheme=path --db.engine=pebble --discovery.port=30765 --maxpeers=100 --op-network=base-sepolia --rollup.halt=major --rollup.sequencerhttp=https://sepolia-sequencer.base.org --port=30765 --nat=extip:${IP} --bootnodes="enode://548f715f3fc388a7c917ba644a2f16270f1ede48a5d88a4d14ea287cc916068363f3092e39936f1a3e7885198bef0e5af951f1d7b1041ce8ba4010917777e71f@18.210.176.114:30301,enode://6f10052847a966a725c9f4adf6716f9141155b99a0fb487fea3f51498f4c2a2cb8d534e680ee678f9447db85b93ff7c74562762c3714783a7233ac448603b25f@107.21.251.55:30301"
volumes:
- base-sepolia:/data
- .jwtsecret:/jwtsecret
environment:
- "OP_GETH_GENESIS_FILE_PATH=sepolia/genesis-l2.json"
- "OP_GETH_SEQUENCER_HTTP=https://sepolia-sequencer.base.org"
- "OP_GETH_GCMODE=full"
- "OP_GETH_SYNCMODE=snap"
- "GETH_SYNCMODE=snap"
- "GETH_BOOTNODES=enode://548f715f3fc388a7c917ba644a2f16270f1ede48a5d88a4d14ea287cc916068363f3092e39936f1a3e7885198bef0e5af951f1d7b1041ce8ba4010917777e71f@18.210.176.114:30301,enode://6f10052847a966a725c9f4adf6716f9141155b99a0fb487fea3f51498f4c2a2cb8d534e680ee678f9447db85b93ff7c74562762c3714783a7233ac448603b25f@107.21.251.55:30301"
- "OP_GETH_STATE_SCHEME=path"
- "GETH_STATE_SCHEME=path"
- "OP_GETH_DB_ENGINE=pebble"
- "OP_GETH_P2P_PORT=30765"
- "GETH_DISCOVERY_PORT=30765"
- "GETH_DB_ENGINE=pebble"
- "P2P_PORT=30765"
- "WS_PORT=8545"
- "IP=${IP}"
- "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}"
- "OP_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.base-sepolia-stripprefix.stripprefix.prefixes=/base-sepolia"
- "traefik.http.services.base-sepolia.loadbalancer.server.port=8545"
- "traefik.http.routers.base-sepolia.entrypoints=websecure"
- "traefik.http.routers.base-sepolia.tls.certresolver=myresolver"
- "traefik.http.routers.base-sepolia.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia`)"
- "traefik.http.routers.base-sepolia.middlewares=base-sepolia-stripprefix, ipwhitelist"
networks:
- chains
base-sepolia-node:
build: ./base
depends_on:
- base-sepolia
volumes:
- .jwtsecret:/jwtsecret
expose:
- 8545 # RPC
- 54844 # P2P TCP
- 54844/udp # P2P UDP
- 7300 # metrics
- 6060 # pprof
ports:
- "54844:54844"
- "54844:54844/udp"
#command: [ "sh", "./op-node-entrypoint" ]
entrypoint: ./op-node
restart: always
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=base-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${BASE_SEPOLIA_ENDPOINT}"
- "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://base-sepolia:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_AGENT=base"
- "OP_NODE_P2P_BOOTNODES=enr:-J64QBwRIWAco7lv6jImSOjPU_W266lHXzpAS5YOh7WmgTyBZkgLgOwo_mxKJq3wz2XRbsoBItbv1dCyjIoNq67mFguGAYrTxM42gmlkgnY0gmlwhBLSsHKHb3BzdGFja4S0lAUAiXNlY3AyNTZrMaEDmoWSi8hcsRpQf2eJsNUx-sqv6fH4btmo2HsAzZFAKnKDdGNwgiQGg3VkcIIkBg,enr:-J64QFa3qMsONLGphfjEkeYyF6Jkil_jCuJmm7_a42ckZeUQGLVzrzstZNb1dgBp1GGx9bzImq5VxJLP-BaptZThGiWGAYrTytOvgmlkgnY0gmlwhGsV-zeHb3BzdGFja4S0lAUAiXNlY3AyNTZrMaEDahfSECTIS_cXyZ8IyNf4leANlZnrsMEWTkEYxf4GMCmDdGNwgiQGg3VkcIIkBg"
- "OP_NODE_BETA_EXTRA_NETWORKS=true"
- "OP_NODE_ROLLUP_LOAD_PROTOCOL_VERSIONS=true"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=54844"
- "OP_NODE_P2P_LISTEN_UDP_PORT=54844"
- "OP_NODE_ROLLUP_CONFIG=sepolia/rollup.json"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${BASE_SEPOLIA_ENDPOINT_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${BASE_SEPOLIA_ENDPOINT_TRUST:-false}"
- "OP_NODE_L1_BEACON=${BASE_SEPOLIA_ENDPOINT_BEACON}"
networks:
- chains
volumes:
base-sepolia:

1
base-sepolia.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/base-sepolia-op-geth-pruned-pebble-path.yml

21
berachain-bepolia.cfg Normal file
View File

@@ -0,0 +1,21 @@
- id: ${ID}
chain: ${CHAIN}
labels:
provider: ${PROVIDER}
method-groups:
enabled:
- debug
- filter
methods:
enabled:
- name: txpool_content
options:
validate-peers: false
connection:
generic:
rpc:
url: "${RPC_URL}"
ws:
frameSize: 20Mb
msgSize: 50Mb
url: "${WS_URL}"

View File

@@ -5,7 +5,7 @@ services:
build:
context: besu
args:
UPSTREAM_VERSION: 24.10.0
UPSTREAM_VERSION: ${BESU_VERSION:-24.10.0}
expose:
- 8545
- 8551
@@ -51,7 +51,7 @@ services:
lighthouse-mainnet:
image: sigp/lighthouse:v5.1.3-modern
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v5.1.3}-modern
restart: unless-stopped
networks:
- chains

2
blast-io/mainnet/genesis.json Executable file → Normal file
View File

@@ -19,6 +19,8 @@
"bedrockBlock": 0,
"regolithTime": 0,
"canyonTime": 0,
"cancunTime": 1716843599,
"ecotoneTime": 1716843599,
"terminalTotalDifficulty": 0,
"terminalTotalDifficultyPassed": true,
"optimism": {

View File

@@ -1,16 +1,16 @@
{
"genesis": {
"l1": {
"hash": "0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437",
"number": 5044255
"hash": "0xfcfb8d586bdae763f1189988789211c69eb893a895e7ba48be3ca6289f0941b7",
"number": 19300102
},
"l2": {
"hash": "0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906",
"hash": "0xb689b35ef29d0bec5816938e0e52683c7257d2e325420ea69b739a2be4754b89",
"number": 0
},
"l2_time": 1704686688,
"l2_time": 1708809815,
"system_config": {
"batcherAddr": "0xba26fee2fa917443e05e65de8d4350bcd2f59222",
"batcherAddr": "0x415c8893d514f9bc5211d36eeda4183226b84aa7",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
@@ -20,14 +20,14 @@
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 11155111,
"l2_chain_id": 168587773,
"l1_chain_id": 1,
"l2_chain_id": 81457,
"regolith_time": 0,
"canyon_time": 0,
"delta_time": 1713999600,
"ecotone_time": 1713999600,
"batch_inbox_address": "0x1c3b85a2108784eab6a4bf56cdd6f722e415b331",
"deposit_contract_address": "0x2757e4430e694f27b73ec9c02257cab3a498c8c5",
"l1_system_config_address": "0x329faf078c364a316e08bf6a17b7eee6ae75a613",
"delta_time": 1716843599,
"ecotone_time": 1716843599,
"batch_inbox_address": "0xff00000000000000000000000000000000081457",
"deposit_contract_address": "0x0ec68c5b10f21effb74f2a5c61dfe6b08c0db6cb",
"l1_system_config_address": "0x5531dcff39ec1ec727c4c5d2fc49835368f805a9",
"protocol_versions_address": "0x0000000000000000000000000000000000000000"
}

1
bob-mainnet.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/bob-mainnet-op-geth-pruned-pebble-path.yml

View File

@@ -3,7 +3,7 @@ version: '3.1'
services:
bsc-testnet:
image: ghcr.io/bnb-chain/bsc:${BSC_VERSION:-1.5.5}
image: ghcr.io/bnb-chain/bsc:${BSC_VERSION:-1.5.7}
user: root
ports:
- "17474:17474"

View File

@@ -3,14 +3,13 @@ version: '3.1'
services:
bsc:
image: ghcr.io/bnb-chain/bsc:${BSC_VERSION:-1.5.5}
image: ghcr.io/bnb-chain/bsc:${BSC_VERSION:-1.5.7}
user: root
ports:
- "29061:29061"
- "29061:29061/udp"
expose:
- "8545"
- "8546"
- "29061"
volumes:
- bsc:/bsc/.ethereum

View File

@@ -0,0 +1,115 @@
services:
celo-mainnet:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth:celo-v2.0.0
volumes:
- "celo-mainnet-op-geth-pruned-leveldb-hash:/datadir"
- ".jwtsecret:/jwtsecret"
- "./celo/mainnet/:/chainconfig"
ports:
- "10955:10955"
- "10955:10955/udp"
expose:
- 8545
- 8546
- 8551
networks:
- chains
restart: always
stop_grace_period: 5m
environment:
- NETWORK_NAME=mainnet
#- GETH_BOOTNODES=enode://ac0f42fa46f8cc10bd02a103894d71d495537465133e7c442bc02dc76721a5f41761cc2d8c69e7ba1b33e14e28f516436864d3e0836e2dcdaf032387f72447dd@34.83.164.192:30303,enode://596002969b8b269a4fa34b4709b9600b64201e7d02e2f5f1350affd021b0cbda6ce2b913ebe24f0fb1edcf66b6c730a8a3b02cd940f4de995f73d3b290a0fc92@34.82.177.77:30303,enode://3619455064ef1ce667171bba1df80cfd4c097f018cf0205aaad496f0d509611b7c40396893d9e490ee390cd098888279e177a4d9bb09c58387bb0a6031d237f1@34.19.90.27:30303,enode://e3c54db6004a92d4ee87504f073f3234a25759b485274cc224037e3e5ee792f3b482c3f4fffcb764af6e1859a1aea9710b71e1991e32c1dee7f40352124bb182@35.233.249.87:30303,enode://674410b34fd54c8406a4f945292b96111688d4bab49aecdc34b4f1b346891f4673dcb03ed44c38ab467ef7bec0b20f6031ad88aa1d35ce1333b343d00fa19fb1@34.168.43.76:30303
command: >
--datadir=/datadir
--http
--http.corsdomain="*"
--http.vhosts="*"
--http.addr=0.0.0.0
--http.port=8545
--http.api=web3,debug,eth,txpool,net,engine
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.origins="*"
--ws.api=debug,eth,txpool,net,engine,web3
--syncmode="full"
--gcmode="full"
--authrpc.vhosts="*"
--authrpc.addr=0.0.0.0
--authrpc.port=8551
--authrpc.jwtsecret=/jwtsecret
--rollup.sequencerhttp=https://sequencer.forno.celo.org
--rollup.disabletxpoolgossip=true
--port="10955"
--discovery.port="10955"
--snapshot=true
--verbosity=3
--history.transactions=0
--rollup.historicalrpc=${OP_GETH_HISTORICAL_RPC:-https://sequencer.alfajores.celo-testnet.org}
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.op-celo-alfajores-stripprefix.stripprefix.prefixes=/op-celo-alfajores"
- "traefik.http.services.op-celo-alfajores.loadbalancer.server.port=8545"
- "traefik.http.routers.op-celo-alfajores.entrypoints=websecure"
- "traefik.http.routers.op-celo-alfajores.tls.certresolver=myresolver"
- "traefik.http.routers.op-celo-alfajores.rule=Host(`$DOMAIN`) && PathPrefix(`/op-celo-alfajores`)"
- "traefik.http.routers.op-celo-alfajores.middlewares=op-celo-alfajores-stripprefix, ipwhitelist"
celo-mainnet-node:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:celo-v2.0.0
depends_on:
- celo-mainnet
expose:
- 8545 # RPC
- 63509 # P2P TCP
- 63509/udp # P2P UDP
- 7300 # metrics
- 6060 # pprof
networks:
- chains
ports:
- "63509:63509"
- "63509:63509/udp"
environment:
- HEALTHCHECK__REFERENCE_RPC_PROVIDER=https://forno.celo.org
- OP_NODE_P2P_LISTEN_TCP_PORT=63509
- OP_NODE_P2P_LISTEN_UDP_PORT=63509
#- OP_NODE_P2P_STATIC=/ip4/35.197.25.52/tcp/9222/p2p/16Uiu2HAmQEdyLRSAVZDr5SqbJ1RnKmNDhtQJcEKmemrVxe4FxKwR,/ip4/34.105.22.4/tcp/9222/p2p/16Uiu2HAm1SZBDSugT5MMu7vBY8auDgfZFNhoDeXPLc9Me5FsAxwT,/ip4/34.83.209.168/tcp/9222/p2p/16Uiu2HAmGJAiUX6HLSo4nLh8T984qxzokwL23cVsYuNZy2SrK7C6,/ip4/34.83.214.149/tcp/9222/p2p/16Uiu2HAmAko2Kr3eAjM7tnshtEhYrxQYfKUvN2kwiygeFoBAoi8S,/ip4/34.169.5.52/tcp/9222/p2p/16Uiu2HAmKc6YKHzYgsjBDaj36uAufxpgZFgrzDqVBt6zTPwdhhJD
- OP_NODE_ALTDA_ENABLED=true
- OP_NODE_ALTDA_DA_SERVICE=true
- OP_NODE_ALTDA_VERIFY_ON_READ=false
- OP_NODE_ALTDA_DA_SERVER=https://eigenda-proxy.forno.celo.org
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
command: >
op-node
--l1="${OP_CELO_ETHEREUM_MAINNET_RPC:-https://eth.llamarpc.com}"
--l2=http://celo-mainnet:8551
--rpc.addr=0.0.0.0
--rpc.port=9545
--l1.trustrpc
--l1.rpckind=basic
--l1.beacon="${OP_CELO_ALFAJORES_HOLESKY_BEACON_REST:-https://ethereum-mainnet-beacon-api.publicnode.com}"
--syncmode=execution-layer
--p2p.priv.path=/chainconfigs/p2p_node_key_txt
--rollup.config=/chainconfigs/rollup.json
--rollup.load-protocol-versions=true
--rollup.halt=major
restart: always
volumes:
- .jwtsecret:/jwtsecret
- ./celo/alfajores/:/chainconfigs/
stop_grace_period: 30s
op-celo-alfajores-key-generator:
image: ghcr.io/foundry-rs/foundry
volumes:
- "./celo/mainnet:/config"
entrypoint: sh
command: "[ -f /config/p2p_node_key_txt ] && exit 0 || cast w n | grep -i 'Private Key' | awk -F ': ' '{print $2}' | sed 's/0x//' > /config/p2p_node_key_txt"
volumes:
celo-mainnet-op-geth-pruned-leveldb-hash::

View File

@@ -1,8 +1,6 @@
version: '3.1'
services:
celo:
image: us.gcr.io/celo-org/geth:1.8
celo-mainnet-geth:
image: us.gcr.io/celo-org/geth:1.8.9
restart: unless-stopped
stop_grace_period: 3m
command: |
@@ -22,21 +20,17 @@ services:
--datadir /root/.celo
expose:
- 8545
- 8546
ports:
- '20748:20748/tcp' # p2p
- '20748:20748/udp' # p2p
volumes:
- celo:/root/.celo
networks:
- chains
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.celo-stripprefix.stripprefix.prefixes=/celo"
- "traefik.http.middlewares.celo-stripprefix.stripprefix.prefixes=/celo-mainnet-geth"
- "traefik.http.services.celo.loadbalancer.server.port=8545"
- "traefik.http.routers.celo.entrypoints=websecure"
- "traefik.http.routers.celo.tls.certresolver=myresolver"
- "traefik.http.routers.celo.rule=Host(`$DOMAIN`) && PathPrefix(`/celo`)"
- "traefik.http.routers.celo.rule=Host(`$DOMAIN`) && PathPrefix(`/celo-mainnet-geth`)"
- "traefik.http.routers.celo.middlewares=celo-stripprefix, ipwhitelist"

View File

@@ -24,7 +24,7 @@ services:
- '58395:58395/tcp' # p2p
- '58395:58395/udp' # p2p
volumes:
- ${CELO_MAINNET_GETH_ARCHIVE_DATA:-celo-archive}:/root/.celo
- ${CELO_MAINNET_GETH_ARCHIVE_DATA:-celo-mainnet-geth-archive}:/root/.celo
networks:
- chains
labels:

View File

@@ -0,0 +1 @@
celo/op-geth/celo-mainnet-op-geth-archive-leveldb-hash.yml

View File

@@ -0,0 +1,140 @@
services:
celo-mainnet:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth:celo-v2.0.0
volumes:
- "celo-mainnet-op-geth-pruned-leveldb-hash:/datadir"
- ".jwtsecret:/shared/jwt.txt"
- "./celo/mainnet/:/chainconfig"
- "./celo/scripts/:/scripts"
ports:
- "10955:10955"
- "10955:10955/udp"
expose:
- 8545
- 8546
- 8551
networks:
- chains
restart: always
stop_grace_period: 5m
entrypoint: /scripts/start-op-geth.sh
environment:
- NETWORK_NAME=mainnet
- GETH_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
- BEDROCK_DATADIR=/datadir
- OP_GETH__SYNCMODE=full
- NODE_TYPE=full
- BEDROCK_SEQUENCER_HTTP=https://sequencer.forno.celo.org
- PORT__OP_GETH_P2P=10955
- IS_CUSTOM_CHAIN=true
- OP_GETH__HISTORICAL_RPC=http://celo-mainnet-geth:8545
# command: >
# --datadir=/datadir
# --http
# --http.corsdomain="*"
# --http.vhosts="*"
# --http.addr=0.0.0.0
# --http.port=8545
# --http.api=web3,debug,eth,txpool,net,engine
# --ws
# --ws.addr=0.0.0.0
# --ws.port=8545
# --ws.origins="*"
# --ws.api=debug,eth,txpool,net,engine,web3
# --syncmode="full"
# --gcmode="full"
# --authrpc.vhosts="*"
# --authrpc.addr=0.0.0.0
# --authrpc.port=8551
# --authrpc.jwtsecret=/jwtsecret
# --rollup.sequencerhttp=https://sequencer.forno.celo.org
# --rollup.disabletxpoolgossip=true
# --port="10955"
# --discovery.port="10955"
# --snapshot=true
# --verbosity=3
# --history.transactions=0
# --rollup.historicalrpc=${CELO_HISTORICAL_MAINNET_RPC:-http://celo-mainnet-geth:8545}
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.celo-mainnet-op-geth-pruned-leveldb-hash-stripprefix.stripprefix.prefixes=/celo-mainnet"
- "traefik.http.services.celo-mainnet-op-geth-pruned-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.celo-mainnet-op-geth-pruned-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.celo-mainnet-op-geth-pruned-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.celo-mainnet-op-geth-pruned-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/celo-mainnet`)"
- "traefik.http.routers.celo-mainnet-op-geth-pruned-leveldb-hash.middlewares=celo-mainnet-op-geth-pruned-leveldb-hash-stripprefix, ipwhitelist"
celo-mainnet-node:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:celo-v2.0.0
depends_on:
- celo-mainnet
expose:
- 8545 # RPC
- 63509 # P2P TCP
- 63509/udp # P2P UDP
- 7300 # metrics
- 6060 # pprof
networks:
- chains
ports:
- "63509:63509"
- "63509:63509/udp"
environment:
- HEALTHCHECK__REFERENCE_RPC_PROVIDER=https://forno.celo.org
- OP_NODE_ALTDA_DA_SERVER="http://celo-mainnet-eigenda-proxy:4242"
- OP_NODE_P2P_LISTEN_TCP_PORT=63509
- OP_NODE_P2P_LISTEN_UDP_PORT=63509
- OP_NODE_P2P_STATIC=/ip4/34.83.180.111/tcp/9222/p2p/16Uiu2HAkxBYxPd4eDFJzwm84XPzymkXud847vu65eju4UCDRpDSM,/ip4/34.169.135.64/tcp/9222/p2p/16Uiu2HAm6oVW1YeKheAuhnJSySnVvbXZ5gXL4g36XrWb1imF9K3m,/ip4/34.169.201.36/tcp/9222/p2p/16Uiu2HAmCqAFUoq72tjGJfCkkzHoNbjTjshjEED4kWtRKMSxcMgb,/ip4/34.83.127.51/tcp/9222/p2p/16Uiu2HAmBqKBoxkk95CsZiXQmQHv9WMiHXU4Di6wzFuYEKo1i7dg,/ip4/35.227.175.30/tcp/9222/p2p/16Uiu2HAmTNVkin4vogHsqwJwShUkHtx48aDoxygGwgp9Tv5zQWTM,/ip4/34.82.198.98/tcp/9222/p2p/16Uiu2HAmS6CeFPUXMztLf4VDh9NLbauuXLSYx9YkXfyiscqoxsKt,/ip4/34.38.181.223/tcp/9222/p2p/16Uiu2HAmH3xfYGjaJDw6sxa8ds3bVwMYLZRpPzpTtTrYq7G4nZs3,/ip4/34.76.38.6/tcp/9222/p2p/16Uiu2HAm6yXZ9oRTSJfZzXe8wXJ165X3pfzAKdLB9sa27eRZgTwD,/ip4/35.187.106.54/tcp/9222/p2p/16Uiu2HAmPFucuARxzAqtXcD3evFoutKh7tSmfQCxwPKUXfkoyaqY,/ip4/34.76.16.183/tcp/9222/p2p/16Uiu2HAmS8NybNYedzHf4nuFfqyCDH9xiMpgMWxctMtau8dTUxeP,/ip4/104.199.39.59/tcp/9222/p2p/16Uiu2HAmGfwjf1XPikWYDN4NFpTBuuvs6C7eF2iyyKvvjK2MGrVM,/ip4/34.140.117.79/tcp/9222/p2p/16Uiu2HAkwSVN7WHohhoE1sh932y2q3Pv7AFiSugM8K6iFZLALq66
- OP_NODE_ALTDA_ENABLED=true
- OP_NODE_ALTDA_DA_SERVICE=true
- OP_NODE_ALTDA_VERIFY_ON_READ=false
- OP_NODE_ALTDA_DA_SERVER=https://eigenda-proxy.forno.celo.org
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
command: >
op-node
--l1="${CELO_L1_ETHEREUM_MAINNET_EXECUTION_RPC:-https://ethereum-rpc.publicnode.com}"
--l2=http://celo-mainnet:8551
--rpc.addr=0.0.0.0
--rpc.port=9545
--l1.trustrpc
--l1.rpckind=basic
--l1.beacon="${CELO_L1_ETHEREUM_MAINNET_BEACON_REST:-https://ethereum-beacon-api.publicnode.com}"
--syncmode=execution-layer
--p2p.priv.path=/chainconfigs/p2p_node_key_txt
--rollup.config=/chainconfigs/rollup.json
--rollup.load-protocol-versions=true
--rollup.halt=major
restart: always
volumes:
- .jwtsecret:/jwtsecret
- ./celo/mainnet/:/chainconfigs/
stop_grace_period: 30s
celo-mainnet-eigenda-proxy:
platform: linux/amd64
image: ghcr.io/layr-labs/eigenda-proxy:v1.6.4
restart: unless-stopped
stop_grace_period: 5m
entrypoint: /scripts/start-eigenda-proxy.sh
environment:
- EIGENDA_LOCAL_DISPERSER_RPC=disperser.eigenda.xyz:443
- EIGENDA_LOCAL_SVC_MANAGER_ADDR=0x870679e138bcdf293b7ff14dd44b70fc97e12fc0
- OP_NODE__RPC_ENDPOINT=${CELO_L1_ETHEREUM_MAINNET_EXECUTION_RPC:-https://ethereum-rpc.publicnode.com}
volumes:
- celo-mainnet-op-geth-pruned-leveldb-hash_eigenda:/data
- ./celo/scripts:/scripts
celo-mainnet-key-generator:
image: ghcr.io/foundry-rs/foundry
volumes:
- "./celo/mainnet:/config"
entrypoint: sh
command: "[ -f /config/p2p_node_key_txt ] && exit 0 || cast w n | grep -i 'Private Key' | awk -F ': ' '{print $2}' | sed 's/0x//' > /config/p2p_node_key_txt"
volumes:
celo-mainnet-op-geth-pruned-leveldb-hash:
celo-mainnet-op-geth-pruned-leveldb-hash_eigenda:

1
celo-mainnet.yml Symbolic link
View File

@@ -0,0 +1 @@
celo/op-geth/celo-mainnet-op-geth-archive-pebble-path.yml

148
celo/mainnet/genesis.json Normal file

File diff suppressed because one or more lines are too long

49
celo/mainnet/rollup.json Normal file
View File

@@ -0,0 +1,49 @@
{
"genesis": {
"l1": {
"hash": "0xe499ec12e12fc2c94e6714a94f2640dbc748ff6c26fd3f420b25264a3d90066f",
"number": 22128103
},
"l2": {
"hash": "0x7586014e20c69b3fa7c9070baf1a7edd95833db57853126f32593b455da2e5c5",
"number": 31056500
},
"l2_time": 1742957258,
"system_config": {
"batcherAddr": "0x0cd08c7f7a96aa9635f761b49216b9ea74c5ca60",
"overhead": "0x0000000000000000000000000000000000000000000000000000000000000000",
"scalar": "0x0100000000000000000000000000000000000000000000000000000000000000",
"gasLimit": 30000000,
"eip1559Params": "0x0000000000000000"
}
},
"block_time": 1,
"max_sequencer_drift": 2892,
"seq_window_size": 7200,
"channel_timeout": 50,
"l1_chain_id": 1,
"l2_chain_id": 42220,
"regolith_time": 0,
"cel2_time": 0,
"canyon_time": 0,
"delta_time": 0,
"ecotone_time": 0,
"fjord_time": 0,
"granite_time": 0,
"batch_inbox_address": "0xff00000000000000000000000000000000042220",
"deposit_contract_address": "0xc5c5d157928bdbd2acf6d0777626b6c75a9eaedc",
"l1_system_config_address": "0x89e31965d844a309231b1f17759ccaf1b7c09861",
"protocol_versions_address": "0x1b6deb2197418075ab314ac4d52ca1d104a8f663",
"alt_da": {
"da_challenge_contract_address": "0x0000000000000000000000000000000000000000",
"da_commitment_type": "GenericCommitment",
"da_challenge_window": 1,
"da_resolve_window": 1
},
"chain_op_config": {
"eip1559Elasticity": 5,
"eip1559Denominator": 400,
"eip1559DenominatorCanyon": 400
}
}

View File

@@ -0,0 +1,113 @@
services:
celo-alfajores-archive:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth:${CELO_L2_VERSION:-celo-v2.0.0}
volumes:
- "celo-alfajores-op-geth-archive-leveldb-hash:/datadir"
- ".jwtsecret:/shared/jwt.txt"
- "./celo/alfajores/:/chainconfig"
- "./celo/scripts/:/scripts"
ports:
- "10895:10895"
- "10895:10895/udp"
expose:
- 8545
- 8551
networks:
- chains
restart: always
stop_grace_period: 5m
entrypoint: /scripts/start-op-geth.sh
environment:
- NETWORK_NAME=alfajores
- GETH_BOOTNODES=enode://ac0f42fa46f8cc10bd02a103894d71d495537465133e7c442bc02dc76721a5f41761cc2d8c69e7ba1b33e14e28f516436864d3e0836e2dcdaf032387f72447dd@34.83.164.192:30303,enode://596002969b8b269a4fa34b4709b9600b64201e7d02e2f5f1350affd021b0cbda6ce2b913ebe24f0fb1edcf66b6c730a8a3b02cd940f4de995f73d3b290a0fc92@34.82.177.77:30303,enode://3619455064ef1ce667171bba1df80cfd4c097f018cf0205aaad496f0d509611b7c40396893d9e490ee390cd098888279e177a4d9bb09c58387bb0a6031d237f1@34.19.90.27:30303,enode://e3c54db6004a92d4ee87504f073f3234a25759b485274cc224037e3e5ee792f3b482c3f4fffcb764af6e1859a1aea9710b71e1991e32c1dee7f40352124bb182@35.233.249.87:30303,enode://674410b34fd54c8406a4f945292b96111688d4bab49aecdc34b4f1b346891f4673dcb03ed44c38ab467ef7bec0b20f6031ad88aa1d35ce1333b343d00fa19fb1@34.168.43.76:30303
- BEDROCK_DATADIR=/datadir
- OP_GETH__SYNCMODE=full
- GETH_STATE_SCHEME=hash
- GETH_DB_ENGINE=leveldb
- GETH_NAT=extip:${IP}
- NODE_TYPE=archive
- BEDROCK_SEQUENCER_HTTP=https://sequencer.alfajores.celo-testnet.org
- PORT__OP_GETH_P2P=10895
- IS_CUSTOM_CHAIN=true
- OP_GETH__HISTORICAL_RPC=${CELO_ALFAJORES_ARCHIVE_GETH:-celo-alfajores-archive-geth:8545}
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.celo-alfajores-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/celo-alfajores-archive"
- "traefik.http.services.celo-alfajores-op-geth-archive-leveldb-hash-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.celo-alfajores-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.celo-alfajores-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.celo-alfajores-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/celo-alfajores-archive`)"
- "traefik.http.routers.celo-alfajores-op-geth-archive-leveldb-hash.middlewares=celo-alfajores-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
celo-alfajores-archive-node:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:${CELO_L2_VERSION:-celo-v2.0.0}
depends_on:
- celo-alfajores-archive
expose:
- 9545 # RPC
- 7300 # metrics
- 6060 # pprof
networks:
- chains
ports:
- "15895:15895"
- "15895:15895/udp"
environment:
- HEALTHCHECK__REFERENCE_RPC_PROVIDER=https://forno.celo.org
- OP_NODE_ALTDA_DA_SERVER="http://celo-alfajores-archive-eigenda-proxy:4242"
- OP_NODE_P2P_LISTEN_TCP_PORT=15895
- OP_NODE_P2P_LISTEN_UDP_PORT=15895
- OP_NODE_P2P_STATIC=/ip4/35.197.25.52/tcp/9222/p2p/16Uiu2HAmQEdyLRSAVZDr5SqbJ1RnKmNDhtQJcEKmemrVxe4FxKwR,/ip4/34.105.22.4/tcp/9222/p2p/16Uiu2HAm1SZBDSugT5MMu7vBY8auDgfZFNhoDeXPLc9Me5FsAxwT,/ip4/34.83.209.168/tcp/9222/p2p/16Uiu2HAmGJAiUX6HLSo4nLh8T984qxzokwL23cVsYuNZy2SrK7C6,/ip4/34.83.214.149/tcp/9222/p2p/16Uiu2HAmAko2Kr3eAjM7tnshtEhYrxQYfKUvN2kwiygeFoBAoi8S,/ip4/34.169.5.52/tcp/9222/p2p/16Uiu2HAmKc6YKHzYgsjBDaj36uAufxpgZFgrzDqVBt6zTPwdhhJD
- OP_NODE_ALTDA_ENABLED=true
- OP_NODE_ALTDA_DA_SERVICE=true
- OP_NODE_ALTDA_VERIFY_ON_READ=false
- OP_NODE_ALTDA_DA_SERVER=http://celo-alfajores-archive-eigenda-proxy:4242
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
command: >
op-node
--l1="${ETHEREUM_HOLESKY_EXECUTION_RPC}"
--l2=http://celo-alfajores-archive:8551
--rpc.addr=0.0.0.0
--rpc.port=9545
--l1.trustrpc
--l1.rpckind=basic
--l1.beacon="${ETHEREUM_HOLESKY_BEACON_REST}"
--syncmode=execution-layer
--p2p.priv.path=/chainconfigs/p2p_node_key_txt
--rollup.config=/chainconfigs/rollup.json
--rollup.load-protocol-versions=true
--rollup.halt=major
restart: always
volumes:
- .jwtsecret:/jwtsecret
- ./celo/alfajores/:/chainconfigs/
stop_grace_period: 30s
celo-alfajores-archive-eigenda-proxy:
platform: linux/amd64
image: ghcr.io/layr-labs/eigenda-proxy:v1.6.4
restart: unless-stopped
stop_grace_period: 5m
entrypoint: /scripts/start-eigenda-proxy.sh
environment:
- EIGENDA_LOCAL_DISPERSER_RPC=disperser-holesky.eigenda.xyz:443
- EIGENDA_LOCAL_SVC_MANAGER_ADDR=0xD4A7E1Bd8015057293f0D0A557088c286942e84b
- OP_NODE__RPC_ENDPOINT=${ETHEREUM_HOLESKY_EXECUTION_RPC}
volumes:
- celo-alfajores-op-geth-archive-leveldb-hash_eigenda:/data
- ./celo/scripts:/scripts
celo-alfajores-archive-key-generator:
image: ghcr.io/foundry-rs/foundry
volumes:
- "./celo/alfajores:/config"
entrypoint: sh
command: "[ -f /config/p2p_node_key_txt ] && exit 0 || cast w n | grep -i 'Private Key' | awk -F ': ' '{print $2}' | sed 's/0x//' > /config/p2p_node_key_txt"
volumes:
celo-alfajores-op-geth-archive-leveldb-hash:
celo-alfajores-op-geth-archive-leveldb-hash_eigenda:

View File

@@ -0,0 +1,113 @@
services:
celo-alfajores:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth:${CELO_L2_VERSION:-celo-v2.0.0}
volumes:
- "celo-alfajores-op-geth-pruned-pebble-path:/datadir"
- ".jwtsecret:/shared/jwt.txt"
- "./celo/alfajores/:/chainconfig"
- "./celo/scripts/:/scripts"
ports:
- "10457:10457"
- "10457:10457/udp"
expose:
- 8545
- 8551
networks:
- chains
restart: always
stop_grace_period: 5m
entrypoint: /scripts/start-op-geth.sh
environment:
- NETWORK_NAME=alfajores
- GETH_BOOTNODES=enode://ac0f42fa46f8cc10bd02a103894d71d495537465133e7c442bc02dc76721a5f41761cc2d8c69e7ba1b33e14e28f516436864d3e0836e2dcdaf032387f72447dd@34.83.164.192:30303,enode://596002969b8b269a4fa34b4709b9600b64201e7d02e2f5f1350affd021b0cbda6ce2b913ebe24f0fb1edcf66b6c730a8a3b02cd940f4de995f73d3b290a0fc92@34.82.177.77:30303,enode://3619455064ef1ce667171bba1df80cfd4c097f018cf0205aaad496f0d509611b7c40396893d9e490ee390cd098888279e177a4d9bb09c58387bb0a6031d237f1@34.19.90.27:30303,enode://e3c54db6004a92d4ee87504f073f3234a25759b485274cc224037e3e5ee792f3b482c3f4fffcb764af6e1859a1aea9710b71e1991e32c1dee7f40352124bb182@35.233.249.87:30303,enode://674410b34fd54c8406a4f945292b96111688d4bab49aecdc34b4f1b346891f4673dcb03ed44c38ab467ef7bec0b20f6031ad88aa1d35ce1333b343d00fa19fb1@34.168.43.76:30303
- BEDROCK_DATADIR=/datadir
- OP_GETH__SYNCMODE=snap
- GETH_STATE_SCHEME=path
- GETH_DB_ENGINE=pebble
- GETH_NAT=extip:${IP}
- NODE_TYPE=full
- BEDROCK_SEQUENCER_HTTP=https://sequencer.alfajores.celo-testnet.org
- PORT__OP_GETH_P2P=10457
- IS_CUSTOM_CHAIN=true
- OP_GETH__HISTORICAL_RPC=${CELO_ALFAJORES_GETH:-celo-alfajores-geth:8545}
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.celo-alfajores-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/celo-alfajores"
- "traefik.http.services.celo-alfajores-op-geth-pruned-pebble-path-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.celo-alfajores-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.celo-alfajores-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.celo-alfajores-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/celo-alfajores`)"
- "traefik.http.routers.celo-alfajores-op-geth-pruned-pebble-path.middlewares=celo-alfajores-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
celo-alfajores-node:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:${CELO_L2_VERSION:-celo-v2.0.0}
depends_on:
- celo-alfajores
expose:
- 9545 # RPC
- 7300 # metrics
- 6060 # pprof
networks:
- chains
ports:
- "15457:15457"
- "15457:15457/udp"
environment:
- HEALTHCHECK__REFERENCE_RPC_PROVIDER=https://forno.celo.org
- OP_NODE_ALTDA_DA_SERVER="http://celo-alfajores-eigenda-proxy:4242"
- OP_NODE_P2P_LISTEN_TCP_PORT=15457
- OP_NODE_P2P_LISTEN_UDP_PORT=15457
- OP_NODE_P2P_STATIC=/ip4/35.197.25.52/tcp/9222/p2p/16Uiu2HAmQEdyLRSAVZDr5SqbJ1RnKmNDhtQJcEKmemrVxe4FxKwR,/ip4/34.105.22.4/tcp/9222/p2p/16Uiu2HAm1SZBDSugT5MMu7vBY8auDgfZFNhoDeXPLc9Me5FsAxwT,/ip4/34.83.209.168/tcp/9222/p2p/16Uiu2HAmGJAiUX6HLSo4nLh8T984qxzokwL23cVsYuNZy2SrK7C6,/ip4/34.83.214.149/tcp/9222/p2p/16Uiu2HAmAko2Kr3eAjM7tnshtEhYrxQYfKUvN2kwiygeFoBAoi8S,/ip4/34.169.5.52/tcp/9222/p2p/16Uiu2HAmKc6YKHzYgsjBDaj36uAufxpgZFgrzDqVBt6zTPwdhhJD
- OP_NODE_ALTDA_ENABLED=true
- OP_NODE_ALTDA_DA_SERVICE=true
- OP_NODE_ALTDA_VERIFY_ON_READ=false
- OP_NODE_ALTDA_DA_SERVER=http://celo-alfajores-eigenda-proxy:4242
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
command: >
op-node
--l1="${ETHEREUM_HOLESKY_EXECUTION_RPC}"
--l2=http://celo-alfajores:8551
--rpc.addr=0.0.0.0
--rpc.port=9545
--l1.trustrpc
--l1.rpckind=basic
--l1.beacon="${ETHEREUM_HOLESKY_BEACON_REST}"
--syncmode=execution-layer
--p2p.priv.path=/chainconfigs/p2p_node_key_txt
--rollup.config=/chainconfigs/rollup.json
--rollup.load-protocol-versions=true
--rollup.halt=major
restart: always
volumes:
- .jwtsecret:/jwtsecret
- ./celo/alfajores/:/chainconfigs/
stop_grace_period: 30s
celo-alfajores-eigenda-proxy:
platform: linux/amd64
image: ghcr.io/layr-labs/eigenda-proxy:v1.6.4
restart: unless-stopped
stop_grace_period: 5m
entrypoint: /scripts/start-eigenda-proxy.sh
environment:
- EIGENDA_LOCAL_DISPERSER_RPC=disperser-holesky.eigenda.xyz:443
- EIGENDA_LOCAL_SVC_MANAGER_ADDR=0xD4A7E1Bd8015057293f0D0A557088c286942e84b
- OP_NODE__RPC_ENDPOINT=${ETHEREUM_HOLESKY_EXECUTION_RPC}
volumes:
- celo-alfajores-op-geth-pruned-pebble-path_eigenda:/data
- ./celo/scripts:/scripts
celo-alfajores-key-generator:
image: ghcr.io/foundry-rs/foundry
volumes:
- "./celo/alfajores:/config"
entrypoint: sh
command: "[ -f /config/p2p_node_key_txt ] && exit 0 || cast w n | grep -i 'Private Key' | awk -F ': ' '{print $2}' | sed 's/0x//' > /config/p2p_node_key_txt"
volumes:
celo-alfajores-op-geth-pruned-pebble-path:
celo-alfajores-op-geth-pruned-pebble-path_eigenda:

View File

@@ -0,0 +1,113 @@
services:
celo-mainnet-archive:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth:${CELO_L2_VERSION:-celo-v2.0.0}
volumes:
- "${CELO_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH_DATA:-celo-mainnet-op-geth-archive-leveldb-hash}:/datadir"
- ".jwtsecret:/shared/jwt.txt"
- "./celo/mainnet/:/chainconfig"
- "./celo/scripts/:/scripts"
ports:
- "10111:10111"
- "10111:10111/udp"
expose:
- 8545
- 8551
networks:
- chains
restart: always
stop_grace_period: 5m
entrypoint: /scripts/start-op-geth.sh
environment:
- NETWORK_NAME=mainnet
- GETH_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
- BEDROCK_DATADIR=/datadir
- OP_GETH__SYNCMODE=full
- GETH_STATE_SCHEME=hash
- GETH_DB_ENGINE=leveldb
- GETH_NAT=extip:${IP}
- NODE_TYPE=archive
- BEDROCK_SEQUENCER_HTTP=https://cel2-sequencer.celo.org
- PORT__OP_GETH_P2P=10111
- IS_CUSTOM_CHAIN=true
- OP_GETH__HISTORICAL_RPC=${CELO_MAINNET_ARCHIVE_GETH:-celo-mainnet-archive-geth:8545}
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.celo-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/celo-mainnet-archive"
- "traefik.http.services.celo-mainnet-op-geth-archive-leveldb-hash-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.celo-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.celo-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.celo-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/celo-mainnet-archive`)"
- "traefik.http.routers.celo-mainnet-op-geth-archive-leveldb-hash.middlewares=celo-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
celo-mainnet-archive-node:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:${CELO_L2_VERSION:-celo-v2.0.0}
depends_on:
- celo-mainnet-archive
expose:
- 9545 # RPC
- 7300 # metrics
- 6060 # pprof
networks:
- chains
ports:
- "15111:15111"
- "15111:15111/udp"
environment:
- HEALTHCHECK__REFERENCE_RPC_PROVIDER=https://forno.celo.org
- OP_NODE_ALTDA_DA_SERVER="http://celo-mainnet-archive-eigenda-proxy:4242"
- OP_NODE_P2P_LISTEN_TCP_PORT=15111
- OP_NODE_P2P_LISTEN_UDP_PORT=15111
- OP_NODE_P2P_STATIC=/ip4/34.83.180.111/tcp/9222/p2p/16Uiu2HAkxBYxPd4eDFJzwm84XPzymkXud847vu65eju4UCDRpDSM,/ip4/34.169.135.64/tcp/9222/p2p/16Uiu2HAm6oVW1YeKheAuhnJSySnVvbXZ5gXL4g36XrWb1imF9K3m,/ip4/34.169.201.36/tcp/9222/p2p/16Uiu2HAmCqAFUoq72tjGJfCkkzHoNbjTjshjEED4kWtRKMSxcMgb,/ip4/34.83.127.51/tcp/9222/p2p/16Uiu2HAmBqKBoxkk95CsZiXQmQHv9WMiHXU4Di6wzFuYEKo1i7dg,/ip4/35.227.175.30/tcp/9222/p2p/16Uiu2HAmTNVkin4vogHsqwJwShUkHtx48aDoxygGwgp9Tv5zQWTM,/ip4/34.82.198.98/tcp/9222/p2p/16Uiu2HAmS6CeFPUXMztLf4VDh9NLbauuXLSYx9YkXfyiscqoxsKt,/ip4/34.38.181.223/tcp/9222/p2p/16Uiu2HAmH3xfYGjaJDw6sxa8ds3bVwMYLZRpPzpTtTrYq7G4nZs3,/ip4/34.76.38.6/tcp/9222/p2p/16Uiu2HAm6yXZ9oRTSJfZzXe8wXJ165X3pfzAKdLB9sa27eRZgTwD,/ip4/35.187.106.54/tcp/9222/p2p/16Uiu2HAmPFucuARxzAqtXcD3evFoutKh7tSmfQCxwPKUXfkoyaqY,/ip4/34.76.16.183/tcp/9222/p2p/16Uiu2HAmS8NybNYedzHf4nuFfqyCDH9xiMpgMWxctMtau8dTUxeP,/ip4/104.199.39.59/tcp/9222/p2p/16Uiu2HAmGfwjf1XPikWYDN4NFpTBuuvs6C7eF2iyyKvvjK2MGrVM,/ip4/34.140.117.79/tcp/9222/p2p/16Uiu2HAkwSVN7WHohhoE1sh932y2q3Pv7AFiSugM8K6iFZLALq66
- OP_NODE_ALTDA_ENABLED=true
- OP_NODE_ALTDA_DA_SERVICE=true
- OP_NODE_ALTDA_VERIFY_ON_READ=false
- OP_NODE_ALTDA_DA_SERVER=http://celo-mainnet-archive-eigenda-proxy:4242
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
command: >
op-node
--l1="${ETHEREUM_MAINNET_EXECUTION_RPC}"
--l2=http://celo-mainnet-archive:8551
--rpc.addr=0.0.0.0
--rpc.port=9545
--l1.trustrpc
--l1.rpckind=basic
--l1.beacon="${ETHEREUM_MAINNET_BEACON_REST}"
--syncmode=execution-layer
--p2p.priv.path=/chainconfigs/p2p_node_key_txt
--rollup.config=/chainconfigs/rollup.json
--rollup.load-protocol-versions=true
--rollup.halt=major
restart: always
volumes:
- .jwtsecret:/jwtsecret
- ./celo/mainnet/:/chainconfigs/
stop_grace_period: 30s
celo-mainnet-archive-eigenda-proxy:
platform: linux/amd64
image: ghcr.io/layr-labs/eigenda-proxy:v1.6.4
restart: unless-stopped
stop_grace_period: 5m
entrypoint: /scripts/start-eigenda-proxy.sh
environment:
- EIGENDA_LOCAL_DISPERSER_RPC=disperser.eigenda.xyz:443
- EIGENDA_LOCAL_SVC_MANAGER_ADDR=0x870679e138bcdf293b7ff14dd44b70fc97e12fc0
- OP_NODE__RPC_ENDPOINT=${ETHEREUM_MAINNET_EXECUTION_RPC}
volumes:
- ${CELO_MAINNET_OP_GETH_ARCHIVE_LEVELDB_HASH__EIGENDA_DATA:-celo-mainnet-op-geth-archive-leveldb-hash_eigenda}:/data
- ./celo/scripts:/scripts
celo-mainnet-archive-key-generator:
image: ghcr.io/foundry-rs/foundry
volumes:
- "./celo/mainnet:/config"
entrypoint: sh
command: "[ -f /config/p2p_node_key_txt ] && exit 0 || cast w n | grep -i 'Private Key' | awk -F ': ' '{print $2}' | sed 's/0x//' > /config/p2p_node_key_txt"
volumes:
celo-mainnet-op-geth-archive-leveldb-hash:
celo-mainnet-op-geth-archive-leveldb-hash_eigenda:

View File

@@ -0,0 +1,113 @@
services:
celo-mainnet:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth:${CELO_L2_VERSION:-celo-v2.0.0}
volumes:
- "celo-mainnet-op-geth-pruned-pebble-path:/datadir"
- ".jwtsecret:/shared/jwt.txt"
- "./celo/mainnet/:/chainconfig"
- "./celo/scripts/:/scripts"
ports:
- "10993:10993"
- "10993:10993/udp"
expose:
- 8545
- 8551
networks:
- chains
restart: always
stop_grace_period: 5m
entrypoint: /scripts/start-op-geth.sh
environment:
- NETWORK_NAME=mainnet
- GETH_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
- BEDROCK_DATADIR=/datadir
- OP_GETH__SYNCMODE=snap
- GETH_STATE_SCHEME=path
- GETH_DB_ENGINE=pebble
- GETH_NAT=extip:${IP}
- NODE_TYPE=full
- BEDROCK_SEQUENCER_HTTP=https://cel2-sequencer.celo.org
- PORT__OP_GETH_P2P=10993
- IS_CUSTOM_CHAIN=true
- OP_GETH__HISTORICAL_RPC=${CELO_MAINNET_GETH:-celo-mainnet-geth:8545}
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.celo-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/celo-mainnet"
- "traefik.http.services.celo-mainnet-op-geth-pruned-pebble-path-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.celo-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.celo-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.celo-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/celo-mainnet`)"
- "traefik.http.routers.celo-mainnet-op-geth-pruned-pebble-path.middlewares=celo-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
celo-mainnet-node:
image: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:${CELO_L2_VERSION:-celo-v2.0.0}
depends_on:
- celo-mainnet
expose:
- 9545 # RPC
- 7300 # metrics
- 6060 # pprof
networks:
- chains
ports:
- "15993:15993"
- "15993:15993/udp"
environment:
- HEALTHCHECK__REFERENCE_RPC_PROVIDER=https://forno.celo.org
- OP_NODE_ALTDA_DA_SERVER="http://celo-mainnet-eigenda-proxy:4242"
- OP_NODE_P2P_LISTEN_TCP_PORT=15993
- OP_NODE_P2P_LISTEN_UDP_PORT=15993
- OP_NODE_P2P_STATIC=/ip4/34.83.180.111/tcp/9222/p2p/16Uiu2HAkxBYxPd4eDFJzwm84XPzymkXud847vu65eju4UCDRpDSM,/ip4/34.169.135.64/tcp/9222/p2p/16Uiu2HAm6oVW1YeKheAuhnJSySnVvbXZ5gXL4g36XrWb1imF9K3m,/ip4/34.169.201.36/tcp/9222/p2p/16Uiu2HAmCqAFUoq72tjGJfCkkzHoNbjTjshjEED4kWtRKMSxcMgb,/ip4/34.83.127.51/tcp/9222/p2p/16Uiu2HAmBqKBoxkk95CsZiXQmQHv9WMiHXU4Di6wzFuYEKo1i7dg,/ip4/35.227.175.30/tcp/9222/p2p/16Uiu2HAmTNVkin4vogHsqwJwShUkHtx48aDoxygGwgp9Tv5zQWTM,/ip4/34.82.198.98/tcp/9222/p2p/16Uiu2HAmS6CeFPUXMztLf4VDh9NLbauuXLSYx9YkXfyiscqoxsKt,/ip4/34.38.181.223/tcp/9222/p2p/16Uiu2HAmH3xfYGjaJDw6sxa8ds3bVwMYLZRpPzpTtTrYq7G4nZs3,/ip4/34.76.38.6/tcp/9222/p2p/16Uiu2HAm6yXZ9oRTSJfZzXe8wXJ165X3pfzAKdLB9sa27eRZgTwD,/ip4/35.187.106.54/tcp/9222/p2p/16Uiu2HAmPFucuARxzAqtXcD3evFoutKh7tSmfQCxwPKUXfkoyaqY,/ip4/34.76.16.183/tcp/9222/p2p/16Uiu2HAmS8NybNYedzHf4nuFfqyCDH9xiMpgMWxctMtau8dTUxeP,/ip4/104.199.39.59/tcp/9222/p2p/16Uiu2HAmGfwjf1XPikWYDN4NFpTBuuvs6C7eF2iyyKvvjK2MGrVM,/ip4/34.140.117.79/tcp/9222/p2p/16Uiu2HAkwSVN7WHohhoE1sh932y2q3Pv7AFiSugM8K6iFZLALq66
- OP_NODE_ALTDA_ENABLED=true
- OP_NODE_ALTDA_DA_SERVICE=true
- OP_NODE_ALTDA_VERIFY_ON_READ=false
- OP_NODE_ALTDA_DA_SERVER=http://celo-mainnet-eigenda-proxy:4242
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
command: >
op-node
--l1="${ETHEREUM_MAINNET_EXECUTION_RPC}"
--l2=http://celo-mainnet:8551
--rpc.addr=0.0.0.0
--rpc.port=9545
--l1.trustrpc
--l1.rpckind=basic
--l1.beacon="${ETHEREUM_MAINNET_BEACON_REST}"
--syncmode=execution-layer
--p2p.priv.path=/chainconfigs/p2p_node_key_txt
--rollup.config=/chainconfigs/rollup.json
--rollup.load-protocol-versions=true
--rollup.halt=major
restart: always
volumes:
- .jwtsecret:/jwtsecret
- ./celo/mainnet/:/chainconfigs/
stop_grace_period: 30s
celo-mainnet-eigenda-proxy:
platform: linux/amd64
image: ghcr.io/layr-labs/eigenda-proxy:v1.6.4
restart: unless-stopped
stop_grace_period: 5m
entrypoint: /scripts/start-eigenda-proxy.sh
environment:
- EIGENDA_LOCAL_DISPERSER_RPC=disperser.eigenda.xyz:443
- EIGENDA_LOCAL_SVC_MANAGER_ADDR=0x870679e138bcdf293b7ff14dd44b70fc97e12fc0
- OP_NODE__RPC_ENDPOINT=${ETHEREUM_MAINNET_EXECUTION_RPC}
volumes:
- celo-mainnet-op-geth-pruned-pebble-path_eigenda:/data
- ./celo/scripts:/scripts
celo-mainnet-key-generator:
image: ghcr.io/foundry-rs/foundry
volumes:
- "./celo/mainnet:/config"
entrypoint: sh
command: "[ -f /config/p2p_node_key_txt ] && exit 0 || cast w n | grep -i 'Private Key' | awk -F ': ' '{print $2}' | sed 's/0x//' > /config/p2p_node_key_txt"
volumes:
celo-mainnet-op-geth-pruned-pebble-path:
celo-mainnet-op-geth-pruned-pebble-path_eigenda:

View File

@@ -0,0 +1,25 @@
#!/bin/sh
set -e
# Archive blobs configuration
if [ -n "$EIGENDA_LOCAL_ARCHIVE_BLOBS" ]; then
export EXTENDED_EIGENDA_PARAMETERS="${EXTENDED_EIGENDA_PARAMETERS:-} --s3.credential-type=$EIGENDA_LOCAL_S3_CREDENTIAL_TYPE \
--s3.access-key-id=$EIGENDA_LOCAL_S3_ACCESS_KEY_ID \
--s3.access-key-secret=$EIGENDA_LOCAL_S3_ACCESS_KEY_SECRET \
--s3.bucket=$EIGENDA_LOCAL_S3_BUCKET \
--s3.path=$EIGENDA_LOCAL_S3_PATH \
--s3.endpoint=$EIGENDA_LOCAL_S3_ENDPOINT \
--storage.fallback-targets=s3"
fi
exec ./eigenda-proxy --addr=0.0.0.0 \
--port=4242 \
--eigenda.disperser-rpc="$EIGENDA_LOCAL_DISPERSER_RPC" \
--eigenda.eth-rpc="$OP_NODE__RPC_ENDPOINT" \
--eigenda.signer-private-key-hex=$(head -c 32 /dev/urandom | xxd -p -c 32) \
--eigenda.svc-manager-addr="$EIGENDA_LOCAL_SVC_MANAGER_ADDR" \
--eigenda.status-query-timeout="45m" \
--eigenda.disable-tls=false \
--eigenda.confirmation-depth=1 \
--eigenda.max-blob-length="32MiB" \
$EXTENDED_EIGENDA_PARAMETERS

76
celo/scripts/start-op-geth.sh Executable file
View File

@@ -0,0 +1,76 @@
#!/bin/sh
set -e
# Create JWT if it doesn't exist
if [ ! -f "/shared/jwt.txt" ]; then
echo "Creating JWT..."
mkdir -p /shared
dd bs=1 count=32 if=/dev/urandom of=/dev/stdout | xxd -p -c 32 > /shared/jwt.txt
fi
# Check if either OP_GETH__HISTORICAL_RPC or HISTORICAL_RPC_DATADIR_PATH is set and if so set the historical rpc option.
if [ -n "$OP_GETH__HISTORICAL_RPC" ] || [ -n "$HISTORICAL_RPC_DATADIR_PATH" ] ; then
export EXTENDED_ARG="${EXTENDED_ARG:-} --rollup.historicalrpc=${OP_GETH__HISTORICAL_RPC:-http://historical-rpc-node:8545}"
fi
if [ -n "$IPC_PATH" ]; then
export EXTENDED_ARG="${EXTENDED_ARG:-} --ipcpath=$IPC_PATH"
fi
# Init genesis if it's a custom chain and the datadir is empty
if [ -n "${IS_CUSTOM_CHAIN}" ] && [ -z "$(ls -A "$BEDROCK_DATADIR")" ]; then
echo "Initializing custom chain genesis..."
if [ ! -f /chainconfig/genesis.json ]; then
echo "Missing genesis.json file: Either update the repo to pull the published genesis.json or migrate your Celo L1 datadir to generate genesis.json."
exit
fi
geth init --datadir="$BEDROCK_DATADIR" /chainconfig/genesis.json
fi
# Determine syncmode based on NODE_TYPE
if [ -z "$OP_GETH__SYNCMODE" ]; then
if [ "$NODE_TYPE" = "full" ]; then
export OP_GETH__SYNCMODE="snap"
else
export OP_GETH__SYNCMODE="full"
fi
fi
METRICS_ARGS="--metrics"
if [ "$MONITORING_ENABLED" = "true" ]; then
METRICS_ARGS="$METRICS_ARGS \
--metrics.influxdb \
--metrics.influxdb.endpoint=http://influxdb:8086 \
--metrics.influxdb.database=opgeth"
fi
# Start op-geth.
exec geth \
--datadir="$BEDROCK_DATADIR" \
--http \
--http.corsdomain="*" \
--http.vhosts="*" \
--http.addr=0.0.0.0 \
--http.port=8545 \
--http.api=web3,debug,eth,txpool,net,engine \
--ws \
--ws.addr=0.0.0.0 \
--ws.port=8545 \
--ws.origins="*" \
--ws.api=debug,eth,txpool,net,engine,web3 \
$METRICS_ARGS \
--syncmode="$OP_GETH__SYNCMODE" \
--gcmode="$NODE_TYPE" \
--authrpc.vhosts="*" \
--authrpc.addr=0.0.0.0 \
--authrpc.port=8551 \
--authrpc.jwtsecret=/shared/jwt.txt \
--rollup.sequencerhttp="$BEDROCK_SEQUENCER_HTTP" \
--rollup.disabletxpoolgossip=true \
--port="${PORT__OP_GETH_P2P:-39393}" \
--discovery.port="${PORT__OP_GETH_P2P:-39393}" \
--snapshot=true \
--verbosity=3 \
--history.transactions=0 \
$EXTENDED_ARG $@

View File

@@ -1,9 +1,25 @@
#!/bin/bash
RPC_URL="$1"
ref="$2"
BASEPATH="$(dirname "$0")"
timeout=5 # seconds
if [ $# -lt 2 ]; then
echo "Error: At least two parameters are required."
exit 1
fi
RPC_URL=$1
REF=""
for url in "${@:2}"; do
REF+="--url $url "
done
# Optional: You can remove the trailing space if needed
ref=${REF% }
# echo "ref: $ref"
timeout=3 # seconds
response_file=$(mktemp)
@@ -26,7 +42,7 @@ if [ $? -eq 0 ]; then
sleep 3 # to give the reference node more time to import the block if it is very current
http_status_code2=$(curl --ipv4 -m $timeout -s -X POST -w "%{http_code}" -o "$response_file2" -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"$latest_block_number\", false],\"id\":1}" $ref)
http_status_code2=$($BASEPATH/multicurl.sh --ipv4 -m $timeout -s -X POST -w "%{http_code}" -o "$response_file2" -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"$latest_block_number\", false],\"id\":1}" $ref)
curl_code2=$?
@@ -41,7 +57,7 @@ if [ $? -eq 0 ]; then
response_file3=$(mktemp)
status_file3=$(mktemp)
{
curl --ipv4 -m $timeout -s -X POST -w "%{http_code} %{time_total}" -o "$response_file3" -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"latest\", false],\"id\":1}" $ref > "$status_file3"
$BASEPATH/multicurl.sh --ipv4 -m $timeout -s -X POST -w "%{http_code} %{time_total}" -o "$response_file3" -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"latest\", false],\"id\":1}" $ref > "$status_file3"
} &
pid3=$!
@@ -66,6 +82,7 @@ if [ $? -eq 0 ]; then
rm "$status_file4"
# echo "lets check"
if [ $curl_code3 -eq 0 ]; then
if [[ $http_status_code3 -eq 200 ]]; then
response3=$(cat "$response_file3")

View File

@@ -17,6 +17,8 @@ services:
- erigon-holesky:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret
environment:
- "IP=${IP}"
networks:
- chains
command: >
@@ -26,7 +28,7 @@ services:
--private.api.addr=0.0.0.0:9090
--torrent.upload.rate="1250mb"
--torrent.download.rate="1250mb"
--nat=stun
--nat=extip:${IP}
--pprof
--pprof.addr=0.0.0.0
--pprof.port=6061

View File

@@ -1,6 +1,6 @@
services:
erigon-sepolia-minimal:
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-beta1}
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-beta2}
user: root
expose:
- "16630"

1
ethereum-holesky.yml Symbolic link
View File

@@ -0,0 +1 @@
ethereum/geth/ethereum-holesky-geth-pruned-pebble-path.yml

View File

@@ -0,0 +1,76 @@
services:
ethereum-holesky:
image: ethereum/client-go:${GETH_VERSION:-v1.15.5}
expose:
- 8545
- 8551
ports:
- "10993:10993"
- "10993:10993/udp"
environment:
- "GETH_DATADIR=/data"
- "GETH_HOLESKY=true"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
networks:
- chains
volumes:
- "ethereum-holesky-geth-pruned-pebble-path:/data"
- ".jwtsecret:/jwtsecret"
restart: unless-stopped
stop_grace_period: 1m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ethereum-holesky-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-holesky"
- "traefik.http.services.ethereum-holesky-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky`)"
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.middlewares=ethereum-holesky-geth-pruned-pebble-path-stripprefix, ipwhitelist"
ethereum-holesky-node:
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
ports:
- "15993:15993"
- "15993:15993/udp"
command:
[
"--holesky",
"--datadir=/data",
"--jwt-secret=/jwtsecret",
"--rpc-host=0.0.0.0",
"--grpc-gateway-host=0.0.0.0",
"--monitoring-host=0.0.0.0",
"--p2p-tcp-port=15993",
"--p2p-udp-port=15993",
"--checkpoint-sync-url=https://holesky.beaconstate.info",
"--execution-endpoint=http://ethereum-holesky:8551",
"--enable-historical-state-representation=false",
"--beacon-db-pruning",
"--accept-terms-of-use"
]
networks:
- chains
volumes:
- "ethereum-holesky-geth-pruned-pebble-path_prysm:/data"
- ".jwtsecret:/jwtsecret"
restart: unless-stopped
volumes:
ethereum-holesky-geth-pruned-pebble-path:
ethereum-holesky-geth-pruned-pebble-path_prysm:

View File

@@ -0,0 +1,76 @@
services:
ethereum-mainnet:
image: ethereum/client-go:${GETH_VERSION:-v1.15.5}
expose:
- 8545
- 8551
ports:
- "10023:10023"
- "10023:10023/udp"
environment:
- "GETH_DATADIR=/data"
- "GETH_MAINNET=true"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
networks:
- chains
volumes:
- "ethereum-mainnet-geth-pruned-pebble-path:/data"
- ".jwtsecret:/jwtsecret"
restart: unless-stopped
stop_grace_period: 1m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ethereum-mainnet-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-mainnet"
- "traefik.http.services.ethereum-mainnet-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet`)"
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipwhitelist"
ethereum-mainnet-node:
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
ports:
- "15023:15023"
- "15023:15023/udp"
command:
[
"--mainnet",
"--datadir=/data",
"--jwt-secret=/jwtsecret",
"--rpc-host=0.0.0.0",
"--grpc-gateway-host=0.0.0.0",
"--monitoring-host=0.0.0.0",
"--p2p-tcp-port=15023",
"--p2p-udp-port=15023",
"--checkpoint-sync-url=https://sync-mainnet.beaconcha.in",
"--execution-endpoint=http://ethereum-mainnet:8551",
"--enable-historical-state-representation=false",
"--beacon-db-pruning",
"--accept-terms-of-use"
]
networks:
- chains
volumes:
- "ethereum-mainnet-geth-pruned-pebble-path_prysm:/data"
- ".jwtsecret:/jwtsecret"
restart: unless-stopped
volumes:
ethereum-mainnet-geth-pruned-pebble-path:
ethereum-mainnet-geth-pruned-pebble-path_prysm:

View File

@@ -0,0 +1,76 @@
services:
ethereum-sepolia:
image: ethereum/client-go:${GETH_VERSION:-v1.15.5}
expose:
- 8545
- 8551
ports:
- "10710:10710"
- "10710:10710/udp"
environment:
- "GETH_DATADIR=/data"
- "GETH_SEPOLIA=true"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
networks:
- chains
volumes:
- "ethereum-sepolia-geth-pruned-pebble-path:/data"
- ".jwtsecret:/jwtsecret"
restart: unless-stopped
stop_grace_period: 1m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ethereum-sepolia-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-sepolia"
- "traefik.http.services.ethereum-sepolia-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia`)"
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.middlewares=ethereum-sepolia-geth-pruned-pebble-path-stripprefix, ipwhitelist"
ethereum-sepolia-node:
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
ports:
- "15710:15710"
- "15710:15710/udp"
command:
[
"--sepolia",
"--datadir=/data",
"--jwt-secret=/jwtsecret",
"--rpc-host=0.0.0.0",
"--grpc-gateway-host=0.0.0.0",
"--monitoring-host=0.0.0.0",
"--p2p-tcp-port=15710",
"--p2p-udp-port=15710",
"--checkpoint-sync-url=https://sepolia.beaconstate.info",
"--execution-endpoint=http://ethereum-sepolia:8551",
"--enable-historical-state-representation=false",
"--beacon-db-pruning",
"--accept-terms-of-use"
]
networks:
- chains
volumes:
- "ethereum-sepolia-geth-pruned-pebble-path_prysm:/data"
- ".jwtsecret:/jwtsecret"
restart: unless-stopped
volumes:
ethereum-sepolia-geth-pruned-pebble-path:
ethereum-sepolia-geth-pruned-pebble-path_prysm:

View File

@@ -1,30 +0,0 @@
version: "3.1"
services:
fantom-archive:
build:
args:
VERSION: release/txtracing/1.1.2-rc.6
context: ./fantom
dockerfile: Dockerfile
environment:
- SNAPSHOT_URL_DISABLED=https://download.fantom.network/opera_5may22.tgz
- CACHE_SIZE=${FANTOM_CACHE_SIZE}
volumes:
- "fantom-archive:/datadir"
expose:
- "18544"
- "5050"
networks:
- chains
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-archive-stripprefix.stripprefix.prefixes=/fantom-archive"
- "traefik.http.services.fantom-archive.loadbalancer.server.port=18544"
- "traefik.http.routers.fantom-archive.entrypoints=websecure"
- "traefik.http.routers.fantom-archive.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-archive`)"
- "traefik.http.routers.fantom-archive.middlewares=fantom-archive-stripprefix, ipwhitelist"
volumes:
fantom-archive:

1
fantom-archive.yml Symbolic link
View File

@@ -0,0 +1 @@
fantom/opera/fantom-mainnet-opera-archive-trace.yml

View File

@@ -1,34 +0,0 @@
services:
fantom-archive-trace:
build:
args:
VERSION: release/txtracing/1.1.3-rc.5
context: ./fantom
stop_grace_period: 3m
environment:
- CACHE_SIZE=${FANTOM_ARCHIVE_TRACE_CACHE_SIZE:-16000}
- IP=${IP}
volumes:
- "${FANTOM_MAINNET_OPERA_ARCHIVE_TRACE_DATA:-fantom-mainnet-opera-archive-trace}:/datadir"
- "./fantom/config:/config"
expose:
- "18544"
- "19921"
ports:
- "19921:19921"
- "19921:19921/udp"
networks:
- chains
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-mainnet-opera-archive-trace-stripprefix.stripprefix.prefixes=/fantom-archive-trace"
- "traefik.http.services.fantom-mainnet-opera-archive-trace.loadbalancer.server.port=18544"
- "${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-archive-trace`)}"
- "${NO_SSL:+traefik.http.routers.fantom-mainnet-opera-archive-trace.rule=PathPrefix(`/fantom-archive-trace`)}"
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.middlewares=fantom-mainnet-opera-archive-trace-stripprefix, ipwhitelist"
volumes:
fantom-mainnet-opera-archive-trace:

View File

@@ -0,0 +1 @@
fantom/opera/fantom-mainnet-opera-archive-trace.yml

1
fantom-testnet-archive.yml Symbolic link
View File

@@ -0,0 +1 @@
fantom/sonic/fantom-testnet-sonic-archive.yml

View File

@@ -1,33 +0,0 @@
version: "3.1"
services:
fantom-testnet:
build:
args:
VERSION: release/1.1.3-rc.5
context: ./fantom
dockerfile: Dockerfile-testnet
stop_grace_period: 3m
environment:
- CACHE_SIZE=${FANTOM_CACHE_SIZE:-16000}
volumes:
- "fantom-testnet:/datadir"
expose:
- "18544"
- "44629"
ports:
- "44629:44629"
- "44629:44629/udp"
networks:
- chains
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-testnet-stripprefix.stripprefix.prefixes=/fantom-testnet"
- "traefik.http.services.fantom-testnet.loadbalancer.server.port=18544"
- "traefik.http.routers.fantom-testnet.entrypoints=websecure"
- "traefik.http.routers.fantom-testnet.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-testnet.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet`)"
- "traefik.http.routers.fantom-testnet.middlewares=fantom-testnet-stripprefix, ipwhitelist"
volumes:
fantom-testnet:

1
fantom-testnet.yml Symbolic link
View File

@@ -0,0 +1 @@
fantom/opera/fantom-testnet-opera-pruned-traces.yml

30
fantom/Dockerfile.opera Normal file
View File

@@ -0,0 +1,30 @@
# Build Fantom in a stock Go builder container
FROM golang:1.19-alpine as builder
# Install packages we need
RUN apk add --no-cache make gcc musl-dev linux-headers git
# Make a folder to work in
RUN mkdir /fantom
# Grab VERSION from Build Args
ARG VERSION
ARG REPO
# Clone the repo to that folder
RUN git clone --branch ${VERSION} ${REPO:-https://github.com/Fantom-foundation/go-opera.git} /fantom
# Build Fantom
RUN cd /fantom && make
# Pull Fantom into a second stage deploy alpine container
FROM alpine:latest
RUN apk add --no-cache ca-certificates wget tzdata
COPY --from=builder /fantom/build/opera /usr/local/bin/
VOLUME /datadir
COPY ./scripts/entrypoint.opera.sh /usr/local/bin/entrypoint.sh
RUN chmod u+x /usr/local/bin/entrypoint.sh
ENTRYPOINT [ "/usr/local/bin/entrypoint.sh" ]

26
fantom/Dockerfile.sonic Normal file
View File

@@ -0,0 +1,26 @@
FROM golang:1.22 as builder
ARG VERSION
ARG REPO
RUN apt-get update && apt-get install -y git musl-dev make
RUN cd /go && git clone ${REPO:-https://github.com/Fantom-foundation/sonic.git} sonic && cd sonic && git fetch --tags && git checkout -b ${VERSION} tags/${VERSION}
WORKDIR /go/sonic
ARG GOPROXY
RUN go mod download
RUN make all
FROM golang:1.22
COPY --from=builder /go/sonic/build/sonicd /usr/local/bin/
COPY --from=builder /go/sonic/build/sonictool /usr/local/bin/
COPY ./scripts/entrypoint.sonic.sh /usr/local/bin/entrypoint.sh
VOLUME /var/sonic
RUN chmod u+x /usr/local/bin/entrypoint.sh
ENTRYPOINT [ "/usr/local/bin/entrypoint.sh" ]

View File

@@ -0,0 +1,55 @@
services:
fantom-mainnet-archive:
build:
context: ./fantom
dockerfile: Dockerfile.opera
args:
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}"
REPO: "https://github.com/Fantom-foundation/go-opera.git"
stop_grace_period: 3m
volumes:
- "fantom-mainnet-opera-archive-trace:/datadir"
expose:
- "8545"
ports:
- "10897:10897"
- "10897:10897/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g"
restart: unless-stopped
command: >
--port=10897
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--ws.origins="*"
--rpc.gascap=600000000
--db.migration.mode reformat
--db.preset pbl-1
--syncmode=full
--cache=${FANTOM_MAINNET_OPERA_ARCHIVE_TRACE_CACHE_MB:-16000}
--tracenode
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-mainnet-opera-archive-trace-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive"
- "traefik.http.services.fantom-mainnet-opera-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.entrypoints=websecure"
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)"
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.middlewares=fantom-mainnet-opera-archive-trace-stripprefix, ipwhitelist"
volumes:
fantom-mainnet-opera-archive-trace:

View File

@@ -0,0 +1,55 @@
services:
fantom-mainnet-archive:
build:
context: ./fantom
dockerfile: Dockerfile.opera
args:
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}"
REPO: "https://github.com/Fantom-foundation/go-opera.git"
stop_grace_period: 3m
volumes:
- "fantom-mainnet-opera-archive:/datadir"
expose:
- "8545"
ports:
- "10723:10723"
- "10723:10723/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g"
restart: unless-stopped
command: >
--port=10723
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--ws.origins="*"
--rpc.gascap=600000000
--db.migration.mode reformat
--db.preset pbl-1
--syncmode=full
--cache=${FANTOM_MAINNET_OPERA_ARCHIVE_CACHE_MB:-16000}
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-mainnet-opera-archive-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive"
- "traefik.http.services.fantom-mainnet-opera-archive.loadbalancer.server.port=8545"
- "traefik.http.routers.fantom-mainnet-opera-archive.entrypoints=websecure"
- "traefik.http.routers.fantom-mainnet-opera-archive.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-mainnet-opera-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)"
- "traefik.http.routers.fantom-mainnet-opera-archive.middlewares=fantom-mainnet-opera-archive-stripprefix, ipwhitelist"
volumes:
fantom-mainnet-opera-archive:

View File

@@ -0,0 +1,55 @@
services:
fantom-mainnet:
build:
context: ./fantom
dockerfile: Dockerfile.opera
args:
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}"
REPO: "https://github.com/Fantom-foundation/go-opera.git"
stop_grace_period: 3m
volumes:
- "fantom-mainnet-opera-pruned-trace:/datadir"
expose:
- "8545"
ports:
- "10916:10916"
- "10916:10916/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-109331-no-history.g"
restart: unless-stopped
command: >
--port=10916
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--ws.origins="*"
--rpc.gascap=600000000
--db.migration.mode reformat
--db.preset pbl-1
--syncmode=snap
--cache=${FANTOM_MAINNET_OPERA_PRUNED_TRACE_CACHE_MB:-16000}
--tracenode
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-mainnet-opera-pruned-trace-stripprefix.stripprefix.prefixes=/fantom-mainnet"
- "traefik.http.services.fantom-mainnet-opera-pruned-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.entrypoints=websecure"
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet`)"
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.middlewares=fantom-mainnet-opera-pruned-trace-stripprefix, ipwhitelist"
volumes:
fantom-mainnet-opera-pruned-trace:

View File

@@ -0,0 +1,55 @@
services:
fantom-mainnet:
build:
context: ./fantom
dockerfile: Dockerfile.opera
args:
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}"
REPO: "https://github.com/Fantom-foundation/go-opera.git"
stop_grace_period: 3m
volumes:
- "fantom-mainnet-opera-pruned:/datadir"
expose:
- "8545"
ports:
- "10439:10439"
- "10439:10439/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-109331-no-history.g"
restart: unless-stopped
command: >
--port=10439
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--ws.origins="*"
--rpc.gascap=600000000
--db.migration.mode reformat
--db.preset pbl-1
--syncmode=snap
--cache=${FANTOM_MAINNET_OPERA_PRUNED_CACHE_MB:-16000}
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-mainnet-opera-pruned-stripprefix.stripprefix.prefixes=/fantom-mainnet"
- "traefik.http.services.fantom-mainnet-opera-pruned.loadbalancer.server.port=8545"
- "traefik.http.routers.fantom-mainnet-opera-pruned.entrypoints=websecure"
- "traefik.http.routers.fantom-mainnet-opera-pruned.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-mainnet-opera-pruned.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet`)"
- "traefik.http.routers.fantom-mainnet-opera-pruned.middlewares=fantom-mainnet-opera-pruned-stripprefix, ipwhitelist"
volumes:
fantom-mainnet-opera-pruned:

View File

@@ -0,0 +1,55 @@
services:
fantom-testnet-archive:
build:
context: ./fantom
dockerfile: Dockerfile.opera
args:
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}"
REPO: "https://github.com/Fantom-foundation/go-opera.git"
stop_grace_period: 3m
volumes:
- "fantom-testnet-opera-archive-trace:/datadir"
expose:
- "8545"
ports:
- "10196:10196"
- "10196:10196/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-2458-full-mpt.g"
restart: unless-stopped
command: >
--port=10196
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--ws.origins="*"
--rpc.gascap=600000000
--db.migration.mode reformat
--db.preset pbl-1
--syncmode=full
--cache=${FANTOM_TESTNET_OPERA_ARCHIVE_TRACE_CACHE_MB:-16000}
--tracenode
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-testnet-opera-archive-trace-stripprefix.stripprefix.prefixes=/fantom-testnet-archive"
- "traefik.http.services.fantom-testnet-opera-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.fantom-testnet-opera-archive-trace.entrypoints=websecure"
- "traefik.http.routers.fantom-testnet-opera-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-testnet-opera-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)"
- "traefik.http.routers.fantom-testnet-opera-archive-trace.middlewares=fantom-testnet-opera-archive-trace-stripprefix, ipwhitelist"
volumes:
fantom-testnet-opera-archive-trace:

View File

@@ -0,0 +1,55 @@
services:
fantom-testnet-archive:
build:
context: ./fantom
dockerfile: Dockerfile.opera
args:
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}"
REPO: "https://github.com/Fantom-foundation/go-opera.git"
stop_grace_period: 3m
volumes:
- "fantom-testnet-opera-archive:/datadir"
expose:
- "8545"
ports:
- "10055:10055"
- "10055:10055/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-2458-full-mpt.g"
restart: unless-stopped
command: >
--port=10055
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--ws.origins="*"
--rpc.gascap=600000000
--db.migration.mode reformat
--db.preset pbl-1
--syncmode=full
--cache=${FANTOM_TESTNET_OPERA_ARCHIVE_CACHE_MB:-16000}
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-testnet-opera-archive-stripprefix.stripprefix.prefixes=/fantom-testnet-archive"
- "traefik.http.services.fantom-testnet-opera-archive.loadbalancer.server.port=8545"
- "traefik.http.routers.fantom-testnet-opera-archive.entrypoints=websecure"
- "traefik.http.routers.fantom-testnet-opera-archive.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-testnet-opera-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)"
- "traefik.http.routers.fantom-testnet-opera-archive.middlewares=fantom-testnet-opera-archive-stripprefix, ipwhitelist"
volumes:
fantom-testnet-opera-archive:

View File

@@ -0,0 +1,55 @@
services:
fantom-testnet:
build:
context: ./fantom
dockerfile: Dockerfile.opera
args:
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}"
REPO: "https://github.com/Fantom-foundation/go-opera.git"
stop_grace_period: 3m
volumes:
- "fantom-testnet-opera-pruned-trace:/datadir"
expose:
- "8545"
ports:
- "10037:10037"
- "10037:10037/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-6226-no-history.g"
restart: unless-stopped
command: >
--port=10037
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--ws.origins="*"
--rpc.gascap=600000000
--db.migration.mode reformat
--db.preset pbl-1
--syncmode=snap
--cache=${FANTOM_TESTNET_OPERA_PRUNED_TRACE_CACHE_MB:-16000}
--tracenode
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-testnet-opera-pruned-trace-stripprefix.stripprefix.prefixes=/fantom-testnet"
- "traefik.http.services.fantom-testnet-opera-pruned-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.entrypoints=websecure"
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet`)"
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.middlewares=fantom-testnet-opera-pruned-trace-stripprefix, ipwhitelist"
volumes:
fantom-testnet-opera-pruned-trace:

View File

@@ -0,0 +1,55 @@
services:
fantom-testnet:
build:
context: ./fantom
dockerfile: Dockerfile.opera
args:
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}"
REPO: "https://github.com/Fantom-foundation/go-opera.git"
stop_grace_period: 3m
volumes:
- "fantom-testnet-opera-pruned:/datadir"
expose:
- "8545"
ports:
- "10846:10846"
- "10846:10846/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-6226-no-history.g"
restart: unless-stopped
command: >
--port=10846
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
--ws.origins="*"
--rpc.gascap=600000000
--db.migration.mode reformat
--db.preset pbl-1
--syncmode=snap
--cache=${FANTOM_TESTNET_OPERA_PRUNED_CACHE_MB:-16000}
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-testnet-opera-pruned-stripprefix.stripprefix.prefixes=/fantom-testnet"
- "traefik.http.services.fantom-testnet-opera-pruned.loadbalancer.server.port=8545"
- "traefik.http.routers.fantom-testnet-opera-pruned.entrypoints=websecure"
- "traefik.http.routers.fantom-testnet-opera-pruned.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-testnet-opera-pruned.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet`)"
- "traefik.http.routers.fantom-testnet-opera-pruned.middlewares=fantom-testnet-opera-pruned-stripprefix, ipwhitelist"
volumes:
fantom-testnet-opera-pruned:

View File

@@ -16,7 +16,7 @@ fi
# uncomment the next line and do docker-compose build in case you have to try to fix the db after unclean shutdown etc.
# opera --db.preset pbl-1 --datadir=$FANTOM_HOME db heal --experimental
opera \
exec opera \
--genesis=$FANTOM_HOME/testnet-16200-pruned-mpt.g \
--port=44629 \
--maxpeers=200 \
@@ -24,14 +24,15 @@ opera \
--http \
--http.addr=0.0.0.0 \
--http.port=18544 \
--http.api=ftm,eth,debug,admin,web3,personal,net,txpool,sfc,trace \
--http.api=ftm,eth,debug,admin,web3,personal,net,txpool \
--http.corsdomain="*" \
--http.vhosts="*" \
--ws \
--ws.addr=0.0.0.0 \
--ws.port=18544 \
--ws.api=ftm,eth,debug,admin,web3,personal,net,txpool,sfc \
--ws.api=ftm,eth,debug,admin,web3,personal,net,txpool \
--ws.origins="*" \
--nat=extip:${IP} \
--nousb \
--db.migration.mode reformat \
--db.preset pbl-1 \

View File

@@ -0,0 +1,34 @@
#!/bin/sh
# exit script on any error
set -e
datadir=/datadir
FANTOM_HOME="$datadir"
url="${GENESIS:-https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g}"
filename=$(basename "$url")
if [ ! -f "$datadir/bootstrapped" ]; then
echo "Initializing Opera..."
if [ ! -f "$datadir/$filename" ]; then
wget -P "$datadir" "$url"
fi
touch "$datadir/bootstrapped"
echo "Initialization complete."
else
echo "Opera is already initialized."
fi
# uncomment the next line and do docker-compose build in case you have to try to fix the db after unclean shutdown etc.
# opera --db.preset pbl-1 --datadir=$datadir db heal --experimental
# always make a new nodekey
echo "Generating new Geth node key..."
openssl rand 32 | xxd -p -c 32 | tr -d '\n' > "$datadir/nodekey"
exec opera --nodekey="$datadir/nodekey" --genesis="$datadir/$filename" --datadir="$datadir" "$@"

View File

@@ -0,0 +1,26 @@
#!/bin/bash
datadir=/var/sonic
if [ ! -f "$datadir/initialized" ]; then
echo "Initializing Sonic..."
url="${GENESIS:-https://download.fantom.network/opera/mainnet/mainnet-5577-archive.g}"
filename=$(basename "$url")
wget -P "$datadir" "$url"
GOMEMLIMIT="${CACHE_GB}GiB" sonictool --datadir "$datadir" --cache "${CACHE_GB}000" genesis "$datadir/$filename"
rm "$datadir/$filename"
touch "$datadir/initialized"
echo "Initialization complete."
else
echo "Sonic is already initialized."
fi
echo "Generating new Geth node key..."
openssl rand 32 | xxd -p -c 32 | tr -d '\n' > "$datadir/nodekey"
exec sonicd --nodekey "$datadir/nodekey" --cache "${CACHE_GB}000" --datadir "$datadir" "$@"

View File

@@ -0,0 +1,51 @@
services:
fantom-mainnet-archive:
build:
context: ./fantom
dockerfile: Dockerfile.sonic
args:
VERSION: "${FANTOM_SONIC_VERSION:-v1.2.1-h}"
REPO: "https://github.com/Fantom-foundation/sonic.git"
stop_grace_period: 3m
volumes:
- "fantom-mainnet-sonic-archive:/var/sonic"
expose:
- "8545"
ports:
- "10335:10335"
- "10335:10335/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/mainnet-latest-archive.g"
- "CACHE_GB=${FANTOM_MAINNET_SONIC_CACHE_GB:-28}"
restart: unless-stopped
command: >
--port=10335
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm
--ws.origins="*"
--rpc.gascap=600000000
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-mainnet-sonic-archive-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive"
- "traefik.http.services.fantom-mainnet-sonic-archive.loadbalancer.server.port=18544"
- "traefik.http.routers.fantom-mainnet-sonic-archive.entrypoints=websecure"
- "traefik.http.routers.fantom-mainnet-sonic-archive.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-mainnet-sonic-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)"
- "traefik.http.routers.fantom-mainnet-sonic-archive.middlewares=fantom-mainnet-sonic-archive-stripprefix, ipwhitelist"
volumes:
fantom-mainnet-sonic-archive:

View File

@@ -0,0 +1,51 @@
services:
fantom-testnet-archive:
build:
context: ./fantom
dockerfile: Dockerfile.sonic
args:
VERSION: "${FANTOM_SONIC_VERSION:-v1.2.1-h}"
REPO: "https://github.com/Fantom-foundation/sonic.git"
stop_grace_period: 3m
volumes:
- "fantom-testnet-sonic-archive:/var/sonic"
expose:
- "8545"
ports:
- "10652:10652"
- "10652:10652/udp"
networks:
- chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-26650-rpc.g"
- "CACHE_GB=${FANTOM_TESTNET_SONIC_CACHE_GB:-28}"
restart: unless-stopped
command: >
--port=10652
--nat=extip:${IP}
--maxpeers=200
--http
--http.addr=0.0.0.0
--http.port=8545
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm
--http.corsdomain="*"
--http.vhosts="*"
--ws
--ws.addr=0.0.0.0
--ws.port=8545
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm
--ws.origins="*"
--rpc.gascap=600000000
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.fantom-testnet-sonic-archive-stripprefix.stripprefix.prefixes=/fantom-testnet-archive"
- "traefik.http.services.fantom-testnet-sonic-archive.loadbalancer.server.port=18544"
- "traefik.http.routers.fantom-testnet-sonic-archive.entrypoints=websecure"
- "traefik.http.routers.fantom-testnet-sonic-archive.tls.certresolver=myresolver"
- "traefik.http.routers.fantom-testnet-sonic-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)"
- "traefik.http.routers.fantom-testnet-sonic-archive.middlewares=fantom-testnet-sonic-archive-stripprefix, ipwhitelist"
volumes:
fantom-testnet-sonic-archive:

18
get-block.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
is_decimal() {
[[ $1 =~ ^[0-9]+$ ]]
}
block_input=${2:-latest}
if is_decimal "$block_input"; then
# Convert decimal to hexadecimal
block_input="0x$(printf "%x" "$block_input")"
fi
request="{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"${block_input}\", false],\"id\":1}"
echo "${request}"
curl -s -X POST "${1}" -H "Content-Type: application/json" --data "${request}" | jq -r '.result.number, .result.hash' | gawk '{if (NR==1) print "Block Number:", strtonum($0); else print "Block Hash:", $0}'

View File

@@ -20,11 +20,14 @@ services:
"--ws",
"--ws.port=8545",
"--ws.addr=0.0.0.0",
"--ws.origins=*",
"--ws.api=debug,eth,net,web3,txpool",
# Enable the HTTP-RPC server
"--http",
"--http.port=8545",
"--http.addr=0.0.0.0",
"--http.vhosts=*",
"--http.api=admin,debug,eth,net,web3,txpool",
# Enable GraphQL on the HTTP-RPC server. Note that GraphQL can only be started if an HTTP server is started as well.
"--graphql",
"--graphql.vhosts=*",

View File

@@ -16,17 +16,18 @@ services:
"--state.scheme=path",
"--db.engine=pebble",
"--port=49545",
"--discovery.port=49545",
# Megabytes of memory allocated to internal caching
"--cache=8192",
# Enable the WS-RPC server
"--ws",
"--ws.api=eth,net,web3,personal,txpool",
"--ws.api=eth,net,debug,web3,personal,txpool",
"--ws.port=8545",
"--ws.addr=0.0.0.0",
"--ws.origins=*",
# Enable the HTTP-RPC server
"--http",
"--http.api=eth,net,web3,personal,txpool",
"--http.api=eth,net,debug,admin,web3,personal,txpool",
"--http.port=8545",
"--http.addr=0.0.0.0",
"--http.vhosts=*",

View File

@@ -1,7 +1,7 @@
services:
goat-mainnet:
image: ghcr.io/goatnetwork/goat-geth:v0.2.2
image: ghcr.io/goatnetwork/goat-geth:v0.3.0
stop_grace_period: 5m
restart: unless-stopped
#healthcheck:
@@ -47,7 +47,7 @@ services:
- chains
goat-mainnet-node:
image: ghcr.io/goatnetwork/goat:v0.2.2
image: ghcr.io/goatnetwork/goat:v0.2.3
stop_grace_period: 30s
restart: unless-stopped
entrypoint: /entrypoint.sh

View File

@@ -2,7 +2,7 @@ services:
goat-testnet:
image: ghcr.io/goatnetwork/goat-geth:v0.1.6
image: ghcr.io/goatnetwork/goat-geth:v0.1.7
stop_grace_period: 5m
restart: unless-stopped
healthcheck:
@@ -50,7 +50,7 @@ services:
- chains
goat-testnet-node:
image: ghcr.io/goatnetwork/goat:v0.2.2
image: ghcr.io/goatnetwork/goat:v0.2.3
stop_grace_period: 30s
restart: unless-stopped
entrypoint: /entrypoint.sh

View File

@@ -1,8 +1,8 @@
#!/bin/sh
if [ ! -d "/root/.ethereum/geth/chaindata" ]; then
exec geth init /genesis/geth.json
else
echo "Chain already initialized."
fi
# if [ ! -d "/root/.ethereum/geth/chaindata" ]; then
# exec geth init /genesis/geth.json
# else
# echo "Chain already initialized."
# fi
exec geth --goat=mainnet

View File

@@ -4,14 +4,14 @@
echo "Starting initialization steps..."
# Check if the genesis.json file exists; if not, initialize and copy it
if [ ! -f /goat/config/genesis.json ]; then
echo "Initializing goatd..."
exec goatd init --home /goat mainnet
echo "Copying genesis file..."
cp /genesis/goat.json /goat/config/genesis.json
else
echo "Genesis file already exists; skipping initialization."
fi
# if [ ! -f /goat/config/genesis.json ]; then
# echo "Initializing goatd..."
# exec goatd init --home /goat mainnet
# echo "Copying genesis file..."
# cp /genesis/goat.json /goat/config/genesis.json
# else
# echo "Genesis file already exists; skipping initialization."
# fi
# Pass control to the final command specified in docker-compose.yml
exec goatd start --home /goat --chain-id=goat-mainnet --goat.geth /geth/geth.ipc --api.enable --api.address=tcp://0.0.0.0:1317 --p2p.external-address $IP:40258 --p2p.laddr 0.0.0.0:40258

1
hashkeychain-mainnet.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/hashkeychain-mainnet-op-geth-pruned-pebble-path.yml

1
ink-mainnet.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/ink-mainnet-op-geth-pruned-pebble-path.yml

1
ink-sepolia.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/ink-sepolia-op-geth-pruned-pebble-path.yml

1
lisk-mainnet.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/lisk-mainnet-op-geth-pruned-pebble-path.yml

1
lisk-sepolia.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/lisk-sepolia-op-geth-pruned-pebble-path.yml

1
metal-mainnet.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/metal-mainnet-op-geth-pruned-pebble-path.yml

1
metal-sepolia.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/metal-sepolia-op-geth-pruned-pebble-path.yml

1
mode-mainnet.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/mode-mainnet-op-geth-pruned-pebble-path.yml

1
mode-sepolia.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/mode-sepolia-op-geth-pruned-pebble-path.yml

69
multicurl.sh Executable file
View File

@@ -0,0 +1,69 @@
#!/bin/bash
# echo "$@"
urls=()
options=()
while [[ $# -gt 0 ]]; do
case "$1" in
--url)
urls+=("$2")
shift 2
;;
*)
options+=("$1")
shift 1
;;
esac
done
if [[ ${#urls[@]} -eq 0 ]]; then
echo "No URLs provided"
exit 1
fi
original_output=""
temp_file=""
for i in "${!options[@]}"; do
if [[ "${options[i]}" == "-o" ]]; then
output_file="${options[i+1]}"
temp_file=$(mktemp)
options[i+1]="$temp_file"
original_output="$output_file"
break
fi
done
output=""
for url in "${urls[@]}"; do
#echo "curl -s ${options[@]} $url"
output=$(eval "curl -s ${options[@]@Q} '$url' --fail")
if [[ $? -eq 0 ]]; then
if cat "$temp_file" | jq -e 'has("error")' > /dev/null 2>&1; then
continue # Try the next URL
fi
if [ -n "$original_output" ]; then
#echo "$(cat $temp_file)"
cat "$temp_file" > "$original_output"
fi
echo "$output"
exit 0
else
continue
fi
done
# Write the final output to the original output file if specified
if [ -n "$original_output" ]; then
cat "$temp_file" > "$original_output"
fi
# Print the output to stdout
echo "$output"
exit 1

1
op-mainnet.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/op-mainnet-op-geth-pruned-pebble-path.yml

1
op-sepolia.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/op-sepolia-op-geth-pruned-pebble-path.yml

View File

@@ -1,107 +0,0 @@
version: '3.1'
services:
op-zora-archive: # this is Optimism's geth client
#image: stakesquid/op-zora-mainnet:v0.1
build:
context: ./op
expose:
- 8545 # RPC / Websocket
- 18322 # P2P TCP (currently unused)
- 18322/udp # P2P UDP (currently unused)
- 6060 # metrics
ports:
- "18322:18322"
- "18322:18322/udp"
command: [ "sh", "./geth-entrypoint" ]
restart: always
stop_grace_period: 3m
volumes:
- zora-archive:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_GENESIS_FILE_PATH=/app/mainnet/zora/genesis.json"
- "GETH_ROLLUP_SEQUENCERHTTP=https://rpc-zora-mainnet-0.t.conduit.xyz"
- "GETH_GCMODE=archive"
- "GETH_NODISCOVER=true"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "IP=${IP}"
- "P2P_PORT=18322"
- "WS_PORT=8545"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "HOST_IP=${IP}"
- "GETH_OVERRIDE_CANYON=1704992401"
- "GETH_OVERRIDE_DELTA=1708560000"
- "GETH_OVERRIDE_ECOTONE=1710374401"
- "GETH_OVERRIDE_FJORD=1720627201"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.zora-stripprefix.stripprefix.prefixes=/zora-archive"
- "traefik.http.services.zora.loadbalancer.server.port=8545"
- "traefik.http.routers.zora.entrypoints=websecure"
- "traefik.http.routers.zora.tls.certresolver=myresolver"
- "traefik.http.routers.zora.rule=Host(`$DOMAIN`) && PathPrefix(`/zora-archive`)"
- "traefik.http.routers.zora.middlewares=zora-stripprefix, ipwhitelist"
networks:
- chains
op-zora-archive-node:
#image: stakesquid/op-zora-mainnet:v0.1
build:
context: ./op
depends_on:
- op-zora-archive
expose:
- 8545 # RPC
- 11398 # P2P TCP
- 11398/udp # P2P UDP
- 7300 # metrics
- 6060 # pprof
ports:
- "11398:11398"
- "11398:11398/udp"
command: [ "sh", "./op-node-entrypoint" ]
restart: always
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
#- "OP_NODE_NETWORK=zora-mainnet-0"
- "OP_NODE_L1_ETH_RPC=${ZORA_MAINNET_L1_ENDPOINT}"
- "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://op-zora-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
#- "OP_NODE_P2P_AGENT=zora-mainnet"
- "OP_NODE_P2P_BOOTNODES=enode://9d221b41d61cb40162ae573b5ba7063c9535b5088ddc06f87099c461e7969068a54d93cdbd3ab119885481c7aec68f81500b400f36ac1bfef11efa116c1a2c1b@35.227.155.250: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_STATIC=/ip4/35.227.155.250/tcp/9222/p2p/16Uiu2HAmPENXJ1a1SFj7tSrwuvTM2dXAAKsKjPobXmjds9U76XUB"
- "OP_NODE_P2P_AGENT=conduit"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=11398"
- "OP_NODE_P2P_LISTEN_UDP_PORT=11398"
- "OP_NODE_ROLLUP_CONFIG=/app/mainnet/zora/rollup.json"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_MAX_BATCH_SIZE=${ZORA_MAINNET_L1_BATCH_SIZE:-20}"
- "OP_NODE_L1_RPC_RATE_LIMIT=${ZORA_MAINNET_L1_RATE_LIMIT:-30}"
- "OP_NODE_L1_RPC_KIND=${ZORA_MAINNET_L1_ENDPOINT_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ZORA_MAINNET_L1_ENDPOINT_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ZORA_MAINNET_L1_BEACON_URL}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ZORA_MAINNET_L1_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_CANYON=1704992401"
- "OP_NODE_OVERRIDE_DELTA=1708560000"
- "OP_NODE_OVERRIDE_ECOTONE=1710374401"
- "OP_NODE_OVERRIDE_FJORD=1720627201"
networks:
- chains
volumes:
zora-archive:

1
op-zora-archive.yml Symbolic link
View File

@@ -0,0 +1 @@
op/geth/zora-mainnet-op-geth-archive-leveldb-hash.yml

View File

@@ -1,110 +0,0 @@
services:
op-zora-sepolia: # this is Optimism's geth client
#image: stakesquid/op-zora-mainnet:v0.1
build:
context: ./op
expose:
- 8545 # RPC / Websocket
- 19809 # P2P TCP (currently unused)
- 19809/udp # P2P UDP (currently unused)
- 6060 # metrics
ports:
- "19809:19809"
- "19809:19809/udp"
command: [ "sh", "./geth-entrypoint" ]
restart: always
stop_grace_period: 3m
volumes:
- zora-sepolia:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_GENESIS_FILE_PATH=/app/sepolia/zora/genesis.json"
- "GETH_ROLLUP_SEQUENCERHTTP=https://rpc-zora-sepolia-0thyhxtf5e.t.conduit.xyz"
- "GETH_CHAINID=999999999"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_BOOTNODES=enode://cbabcbbc7211399990a1cf7178f3a9efebde7a7a1637f90d293c454ef5f40c367ffd1149733e5e7497657f73043a31eaad67af04737b2112d86202ea01896ee5@35.230.102.175: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"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "IP=${IP}"
- "P2P_PORT=19809"
- "WS_PORT=8545"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "HOST_IP=${IP}"
- "GETH_OVERRIDE_CANYON=0"
- "GETH_OVERRIDE_DELTA=0"
- "GETH_OVERRIDE_ECOTONE=1708534800"
- "GETH_OVERRIDE_FJORD=1716998400"
- "GETH_OVERRIDE_GRANITE=1723478400"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.zora-stripprefix.stripprefix.prefixes=/zora-sepolia"
- "traefik.http.services.zora.loadbalancer.server.port=8545"
- "traefik.http.routers.zora.entrypoints=websecure"
- "traefik.http.routers.zora.tls.certresolver=myresolver"
- "traefik.http.routers.zora.rule=Host(`$DOMAIN`) && PathPrefix(`/zora-sepolia`)"
- "traefik.http.routers.zora.middlewares=zora-stripprefix, ipwhitelist"
networks:
- chains
op-zora-sepolia-node:
#image: stakesquid/op-zora-mainnet:v0.1
build:
context: ./op
depends_on:
- op-zora-sepolia
expose:
- 8545 # RPC
- 3306 # P2P TCP
- 3306/udp # P2P UDP
- 7300 # metrics
- 6060 # pprof
ports:
- "3306:3306"
- "3306:3306/udp"
command: [ "sh", "./op-node-entrypoint" ]
restart: always
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
#- "OP_NODE_NETWORK=zora-sepolia-0thyhxtf5e"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ZORA_SEPOLIA_L1_ENDPOINT}"
- "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://op-zora-sepolia:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
#- "OP_NODE_P2P_AGENT=zora-sepolia"
#- "OP_NODE_P2P_BOOTNODES=enode://cbabcbbc7211399990a1cf7178f3a9efebde7a7a1637f90d293c454ef5f40c367ffd1149733e5e7497657f73043a31eaad67af04737b2112d86202ea01896ee5@35.230.102.175: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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd"
- "OP_NODE_P2P_AGENT=conduit"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=3306"
- "OP_NODE_P2P_LISTEN_UDP_PORT=3306"
- "OP_NODE_ROLLUP_CONFIG=/app/sepolia/zora/rollup.json"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_MAX_BATCH_SIZE=${ZORA_SEPOLIA_L1_BATCH_SIZE:-20}"
- "OP_NODE_L1_RPC_RATE_LIMIT=${ZORA_SEPOLIA_L1_RATE_LIMIT:-30}"
- "OP_NODE_L1_RPC_KIND=${ZORA_SEPOLIA_L1_ENDPOINT_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ZORA_SEPOLIA_L1_ENDPOINT_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ZORA_SEPOLIA_L1_BEACON_URL}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ZORA_SEPOLIA_L1_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_DELTA=0"
- "OP_NODE_OVERRIDE_CANYON=0"
- "OP_NODE_OVERRIDE_ECOTONE=1708534800"
- "OP_NODE_OVERRIDE_FJORD=1716998400"
- "OP_NODE_OVERRIDE_GRANITE=1723478400"
networks:
- chains
volumes:
zora-sepolia:

1
op-zora-sepolia-pbss.yml Symbolic link
View File

@@ -0,0 +1 @@
zora-sepolia-op-geth-pruned-pebble-path.yml

1
op/.dockerignore Normal file
View File

@@ -0,0 +1 @@
geth

View File

@@ -0,0 +1,99 @@
services:
base-mainnet-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10596:10596"
- "10596:10596/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- base-mainnet-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=base-mainnet"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.base-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/base-mainnet-archive"
- "traefik.http.services.base-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-archive`)"
- "traefik.http.routers.base-mainnet-op-geth-archive-leveldb-hash.middlewares=base-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
base-mainnet-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15596:15596"
- "15596:15596/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=base-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://base-mainnet-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15596"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15596"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
base-mainnet-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
base-mainnet:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10422:10422"
- "10422:10422/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- base-mainnet-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=base-mainnet"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.base-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/base-mainnet"
- "traefik.http.services.base-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet`)"
- "traefik.http.routers.base-mainnet-op-geth-pruned-pebble-path.middlewares=base-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
base-mainnet-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15422:15422"
- "15422:15422/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=base-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://base-mainnet:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15422"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15422"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
base-mainnet-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
base-sepolia-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10910:10910"
- "10910:10910/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- base-sepolia-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=base-sepolia"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.base-sepolia-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/base-sepolia-archive"
- "traefik.http.services.base-sepolia-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-archive`)"
- "traefik.http.routers.base-sepolia-op-geth-archive-leveldb-hash.middlewares=base-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
base-sepolia-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15910:15910"
- "15910:15910/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=base-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://base-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15910"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15910"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
base-sepolia-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
base-sepolia:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10022:10022"
- "10022:10022/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- base-sepolia-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=base-sepolia"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.base-sepolia-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/base-sepolia"
- "traefik.http.services.base-sepolia-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia`)"
- "traefik.http.routers.base-sepolia-op-geth-pruned-pebble-path.middlewares=base-sepolia-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
base-sepolia-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15022:15022"
- "15022:15022/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=base-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://base-sepolia:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15022"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15022"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
base-sepolia-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
bob-mainnet-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10046:10046"
- "10046:10046/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- bob-mainnet-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=bob-mainnet"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.bob-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/bob-mainnet-archive"
- "traefik.http.services.bob-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.bob-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.bob-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.bob-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/bob-mainnet-archive`)"
- "traefik.http.routers.bob-mainnet-op-geth-archive-leveldb-hash.middlewares=bob-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
bob-mainnet-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15046:15046"
- "15046:15046/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=bob-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://bob-mainnet-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15046"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15046"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
bob-mainnet-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
bob-mainnet:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10347:10347"
- "10347:10347/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- bob-mainnet-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=bob-mainnet"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.bob-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/bob-mainnet"
- "traefik.http.services.bob-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.bob-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.bob-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.bob-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/bob-mainnet`)"
- "traefik.http.routers.bob-mainnet-op-geth-pruned-pebble-path.middlewares=bob-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
bob-mainnet-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15347:15347"
- "15347:15347/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=bob-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://bob-mainnet:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15347"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15347"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
bob-mainnet-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
hashkeychain-mainnet-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10113:10113"
- "10113:10113/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- hashkeychain-mainnet-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=hashkeychain-mainnet"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.hashkeychain-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/hashkeychain-mainnet-archive"
- "traefik.http.services.hashkeychain-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.hashkeychain-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.hashkeychain-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.hashkeychain-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/hashkeychain-mainnet-archive`)"
- "traefik.http.routers.hashkeychain-mainnet-op-geth-archive-leveldb-hash.middlewares=hashkeychain-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
hashkeychain-mainnet-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15113:15113"
- "15113:15113/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=hashkeychain-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://hashkeychain-mainnet-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15113"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15113"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
hashkeychain-mainnet-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
hashkeychain-mainnet:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10188:10188"
- "10188:10188/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- hashkeychain-mainnet-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=hashkeychain-mainnet"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.hashkeychain-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/hashkeychain-mainnet"
- "traefik.http.services.hashkeychain-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.hashkeychain-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.hashkeychain-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.hashkeychain-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/hashkeychain-mainnet`)"
- "traefik.http.routers.hashkeychain-mainnet-op-geth-pruned-pebble-path.middlewares=hashkeychain-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
hashkeychain-mainnet-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15188:15188"
- "15188:15188/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=hashkeychain-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://hashkeychain-mainnet:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15188"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15188"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
hashkeychain-mainnet-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
ink-mainnet-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10713:10713"
- "10713:10713/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- ink-mainnet-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=ink-mainnet"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ink-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/ink-mainnet-archive"
- "traefik.http.services.ink-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.ink-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.ink-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.ink-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-mainnet-archive`)"
- "traefik.http.routers.ink-mainnet-op-geth-archive-leveldb-hash.middlewares=ink-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
ink-mainnet-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15713:15713"
- "15713:15713/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=ink-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://ink-mainnet-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15713"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15713"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
ink-mainnet-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
ink-mainnet:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10271:10271"
- "10271:10271/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- ink-mainnet-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=ink-mainnet"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ink-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ink-mainnet"
- "traefik.http.services.ink-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.ink-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.ink-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.ink-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-mainnet`)"
- "traefik.http.routers.ink-mainnet-op-geth-pruned-pebble-path.middlewares=ink-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
ink-mainnet-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15271:15271"
- "15271:15271/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=ink-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://ink-mainnet:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15271"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15271"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
ink-mainnet-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
ink-sepolia-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10659:10659"
- "10659:10659/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- ink-sepolia-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=ink-sepolia"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ink-sepolia-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/ink-sepolia-archive"
- "traefik.http.services.ink-sepolia-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.ink-sepolia-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.ink-sepolia-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.ink-sepolia-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-sepolia-archive`)"
- "traefik.http.routers.ink-sepolia-op-geth-archive-leveldb-hash.middlewares=ink-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
ink-sepolia-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15659:15659"
- "15659:15659/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=ink-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://ink-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15659"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15659"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
ink-sepolia-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
ink-sepolia:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10869:10869"
- "10869:10869/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- ink-sepolia-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=ink-sepolia"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ink-sepolia-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ink-sepolia"
- "traefik.http.services.ink-sepolia-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.ink-sepolia-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.ink-sepolia-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.ink-sepolia-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-sepolia`)"
- "traefik.http.routers.ink-sepolia-op-geth-pruned-pebble-path.middlewares=ink-sepolia-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
ink-sepolia-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15869:15869"
- "15869:15869/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=ink-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://ink-sepolia:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15869"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15869"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
ink-sepolia-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
lisk-mainnet-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10157:10157"
- "10157:10157/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- lisk-mainnet-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=lisk-mainnet"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.lisk-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/lisk-mainnet-archive"
- "traefik.http.services.lisk-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.lisk-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.lisk-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.lisk-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/lisk-mainnet-archive`)"
- "traefik.http.routers.lisk-mainnet-op-geth-archive-leveldb-hash.middlewares=lisk-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
lisk-mainnet-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15157:15157"
- "15157:15157/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=lisk-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://lisk-mainnet-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15157"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15157"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
lisk-mainnet-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
lisk-mainnet:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10971:10971"
- "10971:10971/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- lisk-mainnet-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=lisk-mainnet"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.lisk-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/lisk-mainnet"
- "traefik.http.services.lisk-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.lisk-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.lisk-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.lisk-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/lisk-mainnet`)"
- "traefik.http.routers.lisk-mainnet-op-geth-pruned-pebble-path.middlewares=lisk-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
lisk-mainnet-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15971:15971"
- "15971:15971/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=lisk-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://lisk-mainnet:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15971"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15971"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
lisk-mainnet-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
lisk-sepolia-archive:
build:
context: ./op
args:
OP_VERSION: v1.12.1
GETH_VERSION: v1.101503.1
OP_PATCH: sepolia/lisk/op-node.patch
expose:
- 8545
- 6060
ports:
- "10457:10457"
- "10457:10457/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- lisk-sepolia-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=lisk-sepolia"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.lisk-sepolia-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/lisk-sepolia-archive"
- "traefik.http.services.lisk-sepolia-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.lisk-sepolia-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.lisk-sepolia-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.lisk-sepolia-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/lisk-sepolia-archive`)"
- "traefik.http.routers.lisk-sepolia-op-geth-archive-leveldb-hash.middlewares=lisk-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
lisk-sepolia-archive-node:
build:
context: ./op
args:
OP_VERSION: v1.12.1
GETH_VERSION: v1.101503.1
OP_PATCH: sepolia/lisk/op-node.patch
expose:
- 8545
- 7300
- 6060
ports:
- "15457:15457"
- "15457:15457/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=lisk-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://lisk-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15457"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15457"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
lisk-sepolia-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
lisk-sepolia:
build:
context: ./op
args:
OP_VERSION: v1.12.1
GETH_VERSION: v1.101503.1
OP_PATCH: sepolia/lisk/op-node.patch
expose:
- 8545
- 6060
ports:
- "10490:10490"
- "10490:10490/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- lisk-sepolia-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=lisk-sepolia"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.lisk-sepolia-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/lisk-sepolia"
- "traefik.http.services.lisk-sepolia-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.lisk-sepolia-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.lisk-sepolia-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.lisk-sepolia-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/lisk-sepolia`)"
- "traefik.http.routers.lisk-sepolia-op-geth-pruned-pebble-path.middlewares=lisk-sepolia-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
lisk-sepolia-node:
build:
context: ./op
args:
OP_VERSION: v1.12.1
GETH_VERSION: v1.101503.1
OP_PATCH: sepolia/lisk/op-node.patch
expose:
- 8545
- 7300
- 6060
ports:
- "15490:15490"
- "15490:15490/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=lisk-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://lisk-sepolia:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15490"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15490"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
lisk-sepolia-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
metal-mainnet-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10324:10324"
- "10324:10324/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- metal-mainnet-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=metal-mainnet"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.metal-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/metal-mainnet-archive"
- "traefik.http.services.metal-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.metal-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.metal-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.metal-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/metal-mainnet-archive`)"
- "traefik.http.routers.metal-mainnet-op-geth-archive-leveldb-hash.middlewares=metal-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
metal-mainnet-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15324:15324"
- "15324:15324/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=metal-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://metal-mainnet-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15324"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15324"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
metal-mainnet-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
metal-mainnet:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10821:10821"
- "10821:10821/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- metal-mainnet-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=metal-mainnet"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.metal-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/metal-mainnet"
- "traefik.http.services.metal-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.metal-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.metal-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.metal-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/metal-mainnet`)"
- "traefik.http.routers.metal-mainnet-op-geth-pruned-pebble-path.middlewares=metal-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
metal-mainnet-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15821:15821"
- "15821:15821/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=metal-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://metal-mainnet:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15821"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15821"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
metal-mainnet-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
metal-sepolia-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10770:10770"
- "10770:10770/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- metal-sepolia-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=metal-sepolia"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.metal-sepolia-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/metal-sepolia-archive"
- "traefik.http.services.metal-sepolia-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.metal-sepolia-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.metal-sepolia-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.metal-sepolia-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/metal-sepolia-archive`)"
- "traefik.http.routers.metal-sepolia-op-geth-archive-leveldb-hash.middlewares=metal-sepolia-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
metal-sepolia-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15770:15770"
- "15770:15770/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=metal-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://metal-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15770"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15770"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
metal-sepolia-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
metal-sepolia:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10701:10701"
- "10701:10701/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- metal-sepolia-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=metal-sepolia"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.metal-sepolia-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/metal-sepolia"
- "traefik.http.services.metal-sepolia-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.metal-sepolia-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.metal-sepolia-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.metal-sepolia-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/metal-sepolia`)"
- "traefik.http.routers.metal-sepolia-op-geth-pruned-pebble-path.middlewares=metal-sepolia-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
metal-sepolia-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15701:15701"
- "15701:15701/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=metal-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://metal-sepolia:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15701"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15701"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
metal-sepolia-op-geth-pruned-pebble-path:

View File

@@ -0,0 +1,99 @@
services:
mode-mainnet-archive:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10430:10430"
- "10430:10430/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- mode-mainnet-op-geth-archive-leveldb-hash:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=mode-mainnet"
- "GETH_GCMODE=archive"
- "GETH_SYNCMODE=full"
- "GETH_STATE_SCHEME=hash"
- "GETH_DB_ENGINE=leveldb"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.mode-mainnet-op-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/mode-mainnet-archive"
- "traefik.http.services.mode-mainnet-op-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
- "traefik.http.routers.mode-mainnet-op-geth-archive-leveldb-hash.entrypoints=websecure"
- "traefik.http.routers.mode-mainnet-op-geth-archive-leveldb-hash.tls.certresolver=myresolver"
- "traefik.http.routers.mode-mainnet-op-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-mainnet-archive`)"
- "traefik.http.routers.mode-mainnet-op-geth-archive-leveldb-hash.middlewares=mode-mainnet-op-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
networks:
- chains
mode-mainnet-archive-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15430:15430"
- "15430:15430/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=mode-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://mode-mainnet-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15430"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15430"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
mode-mainnet-op-geth-archive-leveldb-hash:

View File

@@ -0,0 +1,99 @@
services:
mode-mainnet:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 6060
ports:
- "10054:10054"
- "10054:10054/udp"
entrypoint: [ "./geth" ]
restart: unless-stopped
stop_grace_period: 3m
volumes:
- mode-mainnet-op-geth-pruned-pebble-path:/data
- .jwtsecret:/jwtsecret
environment:
- "GETH_DATADIR=/data"
- "GETH_OP_NETWORK=mode-mainnet"
- "GETH_GCMODE=full"
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path"
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}"
- "GETH_PORT=19809"
- "GETH_WS_PORT=8545"
- "GETH_HTTP=true"
- "GETH_HTTP_ADDR=0.0.0.0"
- "GETH_HTTP_VHOSTS=*"
- "GETH_WS=true"
- "GETH_WS_ADDR=0.0.0.0"
- "GETH_WS_ORIGINS=*"
- "GETH_HTTP_API=eth,net,debug,admin,web3"
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
- "GETH_AUTHRPC_ADDR=0.0.0.0"
- "GETH_AUTHRPC_VHOSTS=*"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.mode-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/mode-mainnet"
- "traefik.http.services.mode-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545"
- "traefik.http.routers.mode-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure"
- "traefik.http.routers.mode-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver"
- "traefik.http.routers.mode-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-mainnet`)"
- "traefik.http.routers.mode-mainnet-op-geth-pruned-pebble-path.middlewares=mode-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist"
networks:
- chains
mode-mainnet-node:
build:
context: ./op
args:
OP_VERSION: ${OP_NODE_VERSION:-v1.12.2}
GETH_VERSION: ${OP_GETH_VERSION:-v1.101503.1}
expose:
- 8545
- 7300
- 6060
ports:
- "15054:15054"
- "15054:15054/udp"
entrypoint: [ "./op-node" ]
restart: unless-stopped
volumes:
- .jwtsecret:/jwtsecret
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=mode-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://mode-mainnet:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15054"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15054"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
networks:
- chains
volumes:
mode-mainnet-op-geth-pruned-pebble-path:

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