Open
Description
Here's my .env.mainnet
:
RETH_CHAIN=base
RETH_SEQUENCER_HTTP=https://mainnet-sequencer.base.org
OP_GETH_SEQUENCER_HTTP=https://mainnet-sequencer.base.org
OP_SEQUENCER_HTTP=https://mainnet-sequencer.base.org
# [optional] used to enable geth stats:
# OP_GETH_ETH_STATS=nodename:secret@host:port
# OP_NETHERMIND_ETHSTATS_ENABLED=true
# OP_NETHERMIND_ETHSTATS_NODE_NAME=NethermindNode
# OP_NETHERMIND_ETHSTATS_ENDPOINT=ethstats_endpoint
# [required] replace with your preferred L1 (Ethereum, not Base) node RPC URL:
# OP_NODE_L1_ETH_RPC=https://1rpc.io/eth
OP_NODE_L1_ETH_RPC=http://172.17.0.1:10124
# [required] replace with your preferred L1 CL beacon endpoint:
OP_NODE_L1_BEACON=http://172.17.0.1:10125
# auth secret used by op-geth engine API:
OP_NODE_L2_ENGINE_AUTH_RAW=688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a
OP_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt
OP_NODE_L2_ENGINE_RPC=ws://execution:8551
OP_NODE_LOG_LEVEL=info
OP_NODE_METRICS_ADDR=0.0.0.0
OP_NODE_METRICS_ENABLED=true
OP_NODE_METRICS_PORT=7901
OP_NODE_NETWORK=base-mainnet
OP_NODE_P2P_AGENT=base
OP_NODE_P2P_BOOTNODES=enr:-J24QNz9lbrKbN4iSmmjtnr7SjUMk4zB7f1krHZcTZx-JRKZd0kA2gjufUROD6T3sOWDVDnFJRvqBBo62zuF-hYCohOGAYiOoEyEgmlkgnY0gmlwhAPniryHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQKNVFlCxh_B-716tTs-h1vMzZkSs1FTu_OYTNjgufplG4N0Y3CCJAaDdWRwgiQG,enr:-J24QH-f1wt99sfpHy4c0QJM-NfmsIfmlLAMMcgZCUEgKG_BBYFc6FwYgaMJMQN5dsRBJApIok0jFn-9CS842lGpLmqGAYiOoDRAgmlkgnY0gmlwhLhIgb2Hb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJ9FTIv8B9myn1MWaC_2lJ-sMoeCDkusCsk4BYHjjCq04N0Y3CCJAaDdWRwgiQG,enr:-J24QDXyyxvQYsd0yfsN0cRr1lZ1N11zGTplMNlW4xNEc7LkPXh0NAJ9iSOVdRO95GPYAIc6xmyoCCG6_0JxdL3a0zaGAYiOoAjFgmlkgnY0gmlwhAPckbGHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJwoS7tzwxqXSyFL7g0JM-KWVbgvjfB8JA__T7yY_cYboN0Y3CCJAaDdWRwgiQG,enr:-J24QHmGyBwUZXIcsGYMaUqGGSl4CFdx9Tozu-vQCn5bHIQbR7On7dZbU61vYvfrJr30t0iahSqhc64J46MnUO2JvQaGAYiOoCKKgmlkgnY0gmlwhAPnCzSHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQINc4fSijfbNIiGhcgvwjsjxVFJHUstK9L1T8OTKUjgloN0Y3CCJAaDdWRwgiQG,enr:-J24QG3ypT4xSu0gjb5PABCmVxZqBjVw9ca7pvsI8jl4KATYAnxBmfkaIuEqy9sKvDHKuNCsy57WwK9wTt2aQgcaDDyGAYiOoGAXgmlkgnY0gmlwhDbGmZaHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQIeAK_--tcLEiu7HvoUlbV52MspE0uCocsx1f_rYvRenIN0Y3CCJAaDdWRwgiQG
OP_NODE_P2P_LISTEN_IP=0.0.0.0
# Added port configurations
P2P_PORT=49403
RPC_PORT=8945
WS_PORT=8946
AUTHRPC_PORT=8947
METRICS_PORT=7901
# Note: You may uncomment and adjust if you want to enable snap sync or change the syncing mode:
# OP_NODE_SYNCMODE=execution-layer
# OP_GETH_BOOTNODES=enode://87a32fd13bd596b2ffca97020e31aef4ddcc1bbd4b95bb633d16c1329f654f34049ed240a36b449fda5e5225d70fe40bc667f53c304b71f8e68fc9d448690b51@3.231.138.188:30301,...
# OP_NETHERMIND_BOOTNODES=enode://87a32fd13bd596b2ffca97020e31aef4ddcc1bbd4b95bb633d16c1329f654f34049ed240a36b449fda5e5225d70fe40bc667f53c304b71f8e68fc9d448690b51@3.231.138.188:30301,...
# Uncomment below if you're using snap sync
#OP_GETH_SYNCMODE=snap
Here's my docker-compose.yml
:
services:
execution:
network_mode: "host"
build:
context: .
dockerfile: ${CLIENT}/Dockerfile
environment:
- P2P_PORT=49403 # Override the default P2P port
- RPC_PORT=8945 # Ensure no conflict with other services
- WS_PORT=8946
- AUTHRPC_PORT=8947
- METRICS_PORT=7901
ports:
- "8945:8945" # RPC
- "8946:8946" # WebSocket
- "8947:8947" # Auth RPC
- "7901:7901" # Metrics
- "49403:49403" # P2P TCP
- "49403:49403/udp" # P2P UDP
command: [ "bash", "./execution-entrypoint" ]
volumes:
- ${HOST_DATA_DIR}:/data
env_file:
- .env.mainnet
node:
network_mode: "host"
build:
context: .
dockerfile: ${CLIENT}/Dockerfile
depends_on:
- execution
environment:
- RPC_PORT=8948 # Adjust for node-specific ports
- METRICS_PORT=7902
- P2P_PORT=49503
ports:
- "8948:8948" # RPC
- "49503:49503" # P2P TCP
- "49503:49503/udp" # P2P UDP
- "7902:7902" # Metrics
- "6960:6960" # pprof
command: [ "bash", "./op-node-entrypoint" ]
env_file:
- .env.mainnet
And here are the logs:
ocker compose up --build
[+] Building 1.0s (30/30) FINISHED docker:default
=> [execution internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.22kB 0.0s
=> [node internal] load metadata for docker.io/library/ubuntu:22.04 0.9s
=> [node internal] load metadata for docker.io/library/golang:1.22 0.9s
=> [execution internal] load .dockerignore 0.0s
=> => transferring context: 79B 0.0s
=> [node stage-2 1/9] FROM docker.io/library/ubuntu:22.04@sha256:0e5e4a57c2499249aafc3b40fcd541e9a456aab7296681a3994d631587203f97 0.0s
=> [execution internal] load build context 0.0s
=> => transferring context: 140B 0.0s
=> [node geth 1/4] FROM docker.io/library/golang:1.22@sha256:7761eeedd113a5751a7e1c135c89c4656a661ad73065dd09035ed3770b063c19 0.0s
=> CACHED [node stage-2 2/9] RUN apt-get update && apt-get install -y jq curl supervisor && rm -rf /var/lib/apt/lists 0.0s
=> CACHED [node stage-2 3/9] RUN mkdir -p /var/log/supervisor 0.0s
=> CACHED [node stage-2 4/9] WORKDIR /app 0.0s
=> CACHED [node geth 2/4] WORKDIR /app 0.0s
=> CACHED [node op 3/4] RUN git clone https://github.com/ethereum-optimism/optimism.git --branch op-node/v1.10.0 --single-branch . && git switch -c branch-v1.10.0 && bash -c '[ "$(git rev-parse HEAD)" = "$COMMIT" ]' 0.0s
=> CACHED [node op 4/4] RUN cd op-node && make VERSION=v1.10.0 op-node 0.0s
=> CACHED [node stage-2 5/9] COPY --from=op /app/op-node/bin/op-node ./ 0.0s
=> CACHED [node geth 3/4] RUN git clone https://github.com/ethereum-optimism/op-geth.git --branch v1.101411.2 --single-branch . && git switch -c branch-v1.101411.2 && bash -c '[ "$(git rev-parse HEAD)" = "$COMMIT" ]' 0.0s
=> CACHED [node geth 4/4] RUN go run build/ci.go install -static ./cmd/geth 0.0s
=> CACHED [node stage-2 6/9] COPY --from=geth /app/build/bin/geth ./ 0.0s
=> CACHED [execution stage-2 7/9] COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf 0.0s
=> CACHED [execution stage-2 8/9] COPY geth/geth-entrypoint ./execution-entrypoint 0.0s
=> CACHED [execution stage-2 9/9] COPY op-node-entrypoint . 0.0s
=> [execution] exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:b685d9c114374f77d4fa3b5c290f12a1b6d753f0914dc899bf1bf15bf6687106 0.0s
=> => naming to docker.io/library/node-execution 0.0s
=> [execution] resolving provenance for metadata file 0.0s
=> [node internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.22kB 0.0s
=> [node internal] load .dockerignore 0.0s
=> => transferring context: 79B 0.0s
=> [node internal] load build context 0.0s
=> => transferring context: 140B 0.0s
=> CACHED [node stage-2 7/9] COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf 0.0s
=> CACHED [node stage-2 8/9] COPY geth/geth-entrypoint ./execution-entrypoint 0.0s
=> CACHED [node stage-2 9/9] COPY op-node-entrypoint . 0.0s
=> [node] exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:9be056a5a56d434da5e11ba85504142d2f416af90d621a537fabb443df613403 0.0s
=> => naming to docker.io/library/node-node 0.0s
=> [node] resolving provenance for metadata file 0.0s
[+] Running 2/0
✔ Container node-execution-1 Created 0.0s
✔ Container node-node-1 Created 0.0s
Attaching to execution-1, node-1
execution-1 | INFO [12-06|11:28:40.232] Starting geth on an OP network... network=base-mainnet
execution-1 | INFO [12-06|11:28:40.232] Bumping default cache on mainnet provided=1024 updated=4096
execution-1 | INFO [12-06|11:28:40.232] Enabling metrics collection
execution-1 | INFO [12-06|11:28:40.232] Enabling stand-alone metrics HTTP endpoint address=0.0.0.0:7901
execution-1 | INFO [12-06|11:28:40.232] Starting metrics server addr=http://0.0.0.0:7901/debug/metrics
execution-1 | INFO [12-06|11:28:40.233] Maximum peer count ETH=100 total=100
execution-1 | INFO [12-06|11:28:40.234] Smartcard socket not found, disabling err="stat /run/pcscd/pcscd.comm: no such file or directory"
execution-1 | INFO [12-06|11:28:40.237] Set global gas cap cap=50,000,000
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:28:40.437] Initializing the KZG library backend=gokzg
execution-1 | INFO [12-06|11:28:40.455] Allocated trie memory caches clean=614.00MiB dirty=1024.00MiB
execution-1 | INFO [12-06|11:28:40.624] Using pebble as the backing database
execution-1 | INFO [12-06|11:28:40.624] Allocated cache and file handles database=/data/geth/chaindata cache=2.00GiB handles=524,288
execution-1 | INFO [12-06|11:28:43.060] Opened ancient database database=/data/geth/chaindata/ancient/chain readonly=false
execution-1 | INFO [12-06|11:28:43.060] State scheme set to already existing scheme=path
execution-1 | WARN [12-06|11:28:43.061] Sanitizing invalid node buffer size provided=1024.00MiB updated=256.00MiB
execution-1 | INFO [12-06|11:28:44.380] Opened ancient database database=/data/geth/chaindata/ancient/state readonly=false
execution-1 | INFO [12-06|11:28:44.422]
execution-1 | INFO [12-06|11:28:44.422] ---------------------------------------------------------------------------------------------------------------------------------------------------------
execution-1 | INFO [12-06|11:28:44.422] Chain ID: 8453 (Base)
execution-1 | INFO [12-06|11:28:44.422] Consensus: Optimism
execution-1 | INFO [12-06|11:28:44.422]
execution-1 | INFO [12-06|11:28:44.422] Pre-Merge hard forks (block based):
execution-1 | INFO [12-06|11:28:44.422] - Homestead: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/homestead.md)
execution-1 | INFO [12-06|11:28:44.422] - Tangerine Whistle (EIP 150): #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/tangerine-whistle.md)
execution-1 | INFO [12-06|11:28:44.422] - Spurious Dragon/1 (EIP 155): #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/spurious-dragon.md)
execution-1 | INFO [12-06|11:28:44.422] - Spurious Dragon/2 (EIP 158): #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/spurious-dragon.md)
execution-1 | INFO [12-06|11:28:44.422] - Byzantium: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/byzantium.md)
execution-1 | INFO [12-06|11:28:44.422] - Constantinople: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/constantinople.md)
execution-1 | INFO [12-06|11:28:44.422] - Petersburg: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/petersburg.md)
execution-1 | INFO [12-06|11:28:44.422] - Istanbul: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/istanbul.md)
execution-1 | INFO [12-06|11:28:44.422] - Muir Glacier: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/muir-glacier.md)
execution-1 | INFO [12-06|11:28:44.422] - Berlin: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/berlin.md)
execution-1 | INFO [12-06|11:28:44.422] - London: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/london.md)
execution-1 | INFO [12-06|11:28:44.422] - Arrow Glacier: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/arrow-glacier.md)
execution-1 | INFO [12-06|11:28:44.422] - Gray Glacier: #0 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/gray-glacier.md)
execution-1 | INFO [12-06|11:28:44.422]
execution-1 | INFO [12-06|11:28:44.422] Merge configured:
execution-1 | INFO [12-06|11:28:44.422] - Hard-fork specification: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md
execution-1 | INFO [12-06|11:28:44.422] - Network known to be merged: true
execution-1 | INFO [12-06|11:28:44.422] - Total terminal difficulty: 0
execution-1 | INFO [12-06|11:28:44.422] - Merge netsplit block: #0
execution-1 | INFO [12-06|11:28:44.422]
execution-1 | INFO [12-06|11:28:44.422] Post-Merge hard forks (timestamp based):
execution-1 | INFO [12-06|11:28:44.422] - Shanghai: @1704992401 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md)
execution-1 | INFO [12-06|11:28:44.422] - Cancun: @1710374401 (https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md)
execution-1 | INFO [12-06|11:28:44.422] - Regolith: @0
execution-1 | INFO [12-06|11:28:44.422] - Canyon: @1704992401
execution-1 | INFO [12-06|11:28:44.422] - Ecotone: @1710374401
execution-1 | INFO [12-06|11:28:44.422] - Fjord: @1720627201
execution-1 | INFO [12-06|11:28:44.422] - Granite: @1726070401
execution-1 | INFO [12-06|11:28:44.422]
execution-1 | INFO [12-06|11:28:44.422] ---------------------------------------------------------------------------------------------------------------------------------------------------------
execution-1 | INFO [12-06|11:28:44.422]
execution-1 | INFO [12-06|11:28:44.424] Loaded most recent local block number=23,279,679 hash=e9362e..e3e3c2 td=0 age=1d13h43m
execution-1 | INFO [12-06|11:28:44.424] Loaded most recent local finalized block number=23,279,180 hash=455bc2..090c85 td=0 age=1d14h17s
execution-1 | INFO [12-06|11:28:44.924] Initialized transaction indexer range="last 2350000 blocks"
execution-1 | INFO [12-06|11:28:44.924] Initialising Ethereum protocol network=8453 dbversion=8
execution-1 | INFO [12-06|11:28:44.924] Loaded local transaction journal transactions=0 dropped=0
execution-1 | INFO [12-06|11:28:44.924] Gasprice oracle is ignoring threshold set threshold=2
execution-1 | WARN [12-06|11:28:44.927] Unclean shutdown detected booted=2024-03-17T17:20:15+0000 age=8mo3w2d
execution-1 | WARN [12-06|11:28:44.927] Unclean shutdown detected booted=2024-12-06T08:53:19+0000 age=2h35m25s
execution-1 | WARN [12-06|11:28:44.927] Unclean shutdown detected booted=2024-12-06T08:54:17+0000 age=2h34m27s
execution-1 | WARN [12-06|11:28:44.927] Unclean shutdown detected booted=2024-12-06T08:55:10+0000 age=2h33m34s
execution-1 | WARN [12-06|11:28:44.927] Unclean shutdown detected booted=2024-12-06T09:00:55+0000 age=2h27m49s
execution-1 | WARN [12-06|11:28:44.927] Unclean shutdown detected booted=2024-12-06T09:03:59+0000 age=2h24m45s
execution-1 | WARN [12-06|11:28:44.927] Unclean shutdown detected booted=2024-12-06T09:06:43+0000 age=2h22m1s
execution-1 | WARN [12-06|11:28:44.927] Unclean shutdown detected booted=2024-12-06T09:07:43+0000 age=2h21m1s
execution-1 | WARN [12-06|11:28:44.927] Engine API enabled protocol=eth
execution-1 | INFO [12-06|11:28:44.927] Starting peer-to-peer node instance=Geth/v1.101411.2-rc.2-3dd9b027-20241119/linux-amd64/go1.22.10
execution-1 | INFO [12-06|11:28:45.066] New local node record seq=1,733,476,648,748 id=2d14e50cd3089242 ip=127.0.0.1 udp=49403 tcp=49403
execution-1 | INFO [12-06|11:28:45.067] Started P2P networking self=enode://a3d4b459e2d1df804a508c874addf4e2658dd6c5543a6f1cf7b963e409c2f1519e9a240d209c76692c13510912c62c9d0af16d8ddf25632484697c452956de90@127.0.0.1:49403
execution-1 | INFO [12-06|11:28:45.067] IPC endpoint opened url=/data/geth.ipc
execution-1 | INFO [12-06|11:28:45.068] Loaded JWT secret file path=/tmp/engine-auth-jwt crc32=0x890e18e0
execution-1 | INFO [12-06|11:28:45.068] HTTP server started endpoint=[::]:8945 auth=false prefix= cors=* vhosts=*
execution-1 | INFO [12-06|11:28:45.068] WebSocket enabled url=ws://[::]:8946
execution-1 | INFO [12-06|11:28:45.068] WebSocket enabled url=ws://[::]:8947
execution-1 | INFO [12-06|11:28:45.068] HTTP server started endpoint=[::]:8947 auth=true prefix= cors=localhost vhosts=*
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:28:55.111] Looking for peers peercount=0 tried=303 static=0
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:29:05.123] Looking for peers peercount=0 tried=183 static=0
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:29:06.870] New local node record seq=1,733,476,648,749 id=2d14e50cd3089242 ip=xxxxxx udp=49403 tcp=49403
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:29:15.131] Looking for peers peercount=0 tried=152 static=0
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:29:25.217] Looking for peers peercount=0 tried=138 static=0
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:29:35.265] Looking for peers peercount=0 tried=259 static=0
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:29:45.286] Looking for peers peercount=0 tried=98 static=0
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:29:55.374] Looking for peers peercount=0 tried=216 static=0
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:30:05.425] Looking for peers peercount=0 tried=156 static=0
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:30:15.427] Looking for peers peercount=0 tried=147 static=0
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:30:25.433] Looking for peers peercount=0 tried=253 static=0
node-1 | waiting for execution client to be ready
node-1 | waiting for execution client to be ready
execution-1 | INFO [12-06|11:30:35.499] Looking for peers peercount=0 tried=145 static=0