version: '3.1' services: op-mode-mainnet: # this is Optimism's geth client #image: stakesquid/op-mode-mainnet:v0.1 build: context: ./op expose: - 8545 # RPC / Websocket - 34542 # P2P TCP (currently unused) - 34542/udp # P2P UDP (currently unused) - 6060 # metrics ports: - "34542:34542" - "34542:34542/udp" command: [ "sh", "./geth-entrypoint" ] restart: always stop_grace_period: 3m volumes: - mode-mainnet:/data - .jwtsecret:/jwtsecret environment: - "GETH_GENESIS_FILE_PATH=/app/mainnet/mode/genesis.json" - "GETH_ROLLUP_SEQUENCERHTTP=https://rpc-mode-mainnet-0.t.conduit.xyz" - "GETH_GCMODE=full" - "GETH_NODISCOVER=true" - "GETH_STATE_SCHEME=hash" - "GETH_DB_ENGINE=pebble" - "P2P_PORT=34542" - "WS_PORT=8545" - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" - "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.mode-stripprefix.stripprefix.prefixes=/mode-mainnet" - "traefik.http.services.mode.loadbalancer.server.port=8545" - "traefik.http.routers.mode.entrypoints=websecure" - "traefik.http.routers.mode.tls.certresolver=myresolver" - "traefik.http.routers.mode.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-mainnet`)" - "traefik.http.routers.mode.middlewares=mode-stripprefix, ipwhitelist" networks: - chains op-mode-mainnet-node: #image: stakesquid/op-mode-mainnet:v0.1 build: context: ./op depends_on: - op-mode-mainnet expose: - 8545 # RPC - 3306 # P2P TCP - 29687/udp # P2P UDP - 7300 # metrics - 6060 # pprof ports: - "29687:29687" - "29687:29687/udp" command: [ "sh", "./op-node-entrypoint" ] restart: always volumes: - .jwtsecret:/jwtsecret stop_grace_period: 30s environment: #- "OP_NODE_NETWORK=mode-mainnet-0" - "OP_NODE_L1_ETH_RPC=${MODE_MAINNET_L1_ENDPOINT}" - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" - "OP_NODE_L2_ENGINE_RPC=http://op-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_BOOTNODES=enode://cd3730ae0a02324d4f529b1a0b492a4047552025c48dc8c9d6685af386dbe8de7780cb35567f76b9542537e96b9a5b160bee79edbd15fefa5a90371c12e57bed@34.127.98.251: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/34.127.98.251/tcp/9222/p2p/16Uiu2HAmSU4jpfL8pPf6Z1bFS5SgNTAffNuvz1goX8MgTakkgAfP" - "OP_NODE_P2P_AGENT=conduit" - "OP_NODE_P2P_LISTEN_IP=0.0.0.0" - "OP_NODE_P2P_LISTEN_TCP_PORT=29687" - "OP_NODE_P2P_LISTEN_UDP_PORT=29687" - "OP_NODE_ROLLUP_CONFIG=/app/mainnet/mode/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=${MODE_MAINNET_L1_BATCH_SIZE:-20}" - "OP_NODE_L1_RPC_RATE_LIMIT=${MODE_MAINNET_L1_RATE_LIMIT:-30}" - "OP_NODE_L1_RPC_KIND=${MODE_MAINNET_L1_ENDPOINT_KIND:-basic}" - "OP_NODE_L1_TRUST_RPC=${MODE_MAINNET_L1_ENDPOINT_TRUST:-false}" - "OP_NODE_L1_BEACON=${MODE_MAINNET_L1_BEACON_URL}" - "OP_NODE_L1_BEACON_ARCHIVER=${MODE_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: mode-mainnet: