diff --git a/ink-mainnet-op-geth-pruned-pebble-path.yml b/ink-mainnet-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..45e3bdac --- /dev/null +++ b/ink-mainnet-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + ink-mainnet: + 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: [ "./geth" ] + restart: always + 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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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.zora-stripprefix.stripprefix.prefixes=/ink-mainnet" + - "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(`/ink-mainnet`)" + - "traefik.http.routers.zora.middlewares=zora-stripprefix, ipwhitelist" + networks: + - chains + + + ink-mainnet-node: + build: + context: ./op + 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=ink-mainnet" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${INK_L1_ETHEREUM_MAINNET_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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=${INK_L1_ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${INK_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${INK_L1_ETHEREUM_MAINNET_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${INK_L1_ETHEREUM_MAINNET_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + ink-mainnet-op-geth-pruned-pebble-path: diff --git a/ink-sepolia-op-geth-pruned-pebble-path.yml b/ink-sepolia-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..9593578b --- /dev/null +++ b/ink-sepolia-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + ink-sepolia: + 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: [ "./geth" ] + restart: always + 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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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.zora-stripprefix.stripprefix.prefixes=/ink-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(`/ink-sepolia`)" + - "traefik.http.routers.zora.middlewares=zora-stripprefix, ipwhitelist" + networks: + - chains + + + ink-sepolia-node: + build: + context: ./op + 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=ink-sepolia" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${INK_L1_ETHEREUM_SEPOLIA_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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=${INK_L1_ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${INK_L1_ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${INK_L1_ETHEREUM_SEPOLIA_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${INK_L1_ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + ink-sepolia-op-geth-pruned-pebble-path: diff --git a/mode-mainnet-op-geth-pruned-pebble-path.yml b/mode-mainnet-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..28170969 --- /dev/null +++ b/mode-mainnet-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + mode-mainnet: + 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: [ "./geth" ] + restart: always + 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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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 + 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=mode-mainnet" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${UNICHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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=${UNICHAIN_SEPOLIA_L1_BATCH_SIZE:-20}" + #- "OP_NODE_L1_RPC_RATE_LIMIT=${UNICHAIN_SEPOLIA_L1_RATE_LIMIT:-30}" + - "OP_NODE_L1_RPC_KIND=${UNICHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${UNICHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${UNICHAIN_L1_ETHEREUM_SEPOLIA_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${UNICHAIN_L1_ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + mode-mainnet-op-geth-pruned-pebble-path: diff --git a/mode-sepolia-op-geth-pruned-pebble-path.yml b/mode-sepolia-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..8bf7016e --- /dev/null +++ b/mode-sepolia-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + mode-sepolia: + 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: [ "./geth" ] + restart: always + stop_grace_period: 3m + volumes: + - mode-sepolia-op-geth-pruned-pebble-path:/data + - .jwtsecret:/jwtsecret + environment: + - "GETH_DATADIR=/data" + - "GETH_OP_NETWORK=mode-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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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-sepolia-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/mode-sepolia" + - "traefik.http.services.mode-sepolia-op-geth-pruned-pebble-path.loadbalancer.server.port=8545" + - "traefik.http.routers.mode-sepolia-op-geth-pruned-pebble-path.entrypoints=websecure" + - "traefik.http.routers.mode-sepolia-op-geth-pruned-pebble-path.tls.certresolver=myresolver" + - "traefik.http.routers.mode-sepolia-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-sepolia`)" + - "traefik.http.routers.mode-sepolia-op-geth-pruned-pebble-path.middlewares=mode-sepolia-op-geth-pruned-pebble-path-stripprefix, ipwhitelist" + networks: + - chains + + + mode-sepolia-node: + build: + context: ./op + 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=mode-sepolia" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${UNICHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" + - "OP_NODE_L2_ENGINE_RPC=http://mode-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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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=${UNICHAIN_SEPOLIA_L1_BATCH_SIZE:-20}" + #- "OP_NODE_L1_RPC_RATE_LIMIT=${UNICHAIN_SEPOLIA_L1_RATE_LIMIT:-30}" + - "OP_NODE_L1_RPC_KIND=${UNICHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${UNICHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${UNICHAIN_L1_ETHEREUM_SEPOLIA_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${UNICHAIN_L1_ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + mode-sepolia-op-geth-pruned-pebble-path: diff --git a/snax-mainnet-op-geth-pruned-pebble-path.yml b/snax-mainnet-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..4cd174e3 --- /dev/null +++ b/snax-mainnet-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + snax-mainnet: + 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: [ "./geth" ] + restart: always + stop_grace_period: 3m + volumes: + - snax-mainnet-op-geth-pruned-pebble-path:/data + - .jwtsecret:/jwtsecret + environment: + - "GETH_DATADIR=/data" + - "GETH_OP_NETWORK=snax-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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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.snax-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/snax-mainnet" + - "traefik.http.services.snax-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545" + - "traefik.http.routers.snax-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure" + - "traefik.http.routers.snax-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver" + - "traefik.http.routers.snax-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/snax-mainnet`)" + - "traefik.http.routers.snax-mainnet-op-geth-pruned-pebble-path.middlewares=snax-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist" + networks: + - chains + + + snax-mainnet-node: + build: + context: ./op + 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=snax-mainnet" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${SNAX_L1_ETHEREUM_MAINNET_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" + - "OP_NODE_L2_ENGINE_RPC=http://snax-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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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=${SNAX_MAINNET_L1_BATCH_SIZE:-20}" + #- "OP_NODE_L1_RPC_RATE_LIMIT=${SNAX_MAINNET_L1_RATE_LIMIT:-30}" + - "OP_NODE_L1_RPC_KIND=${SNAX_L1_ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${SNAX_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${SNAX_L1_ETHEREUM_MAINNET_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${SNAX_L1_ETHEREUM_MAINNET_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + snax-mainnet-op-geth-pruned-pebble-path: diff --git a/unichain-mainnet-op-geth-pruned-pebble-path.yml b/unichain-mainnet-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..8eb6fd32 --- /dev/null +++ b/unichain-mainnet-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + unichain-mainnet: + 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: [ "./geth" ] + restart: always + stop_grace_period: 3m + volumes: + - unichain-mainnet-op-geth-pruned-pebble-path:/data + - .jwtsecret:/jwtsecret + environment: + - "GETH_DATADIR=/data" + - "GETH_OP_NETWORK=unichain-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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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.unichain-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/unichain-mainnet" + - "traefik.http.services.unichain-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545" + - "traefik.http.routers.unichain-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure" + - "traefik.http.routers.unichain-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver" + - "traefik.http.routers.unichain-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-mainnet`)" + - "traefik.http.routers.unichain-mainnet-op-geth-pruned-pebble-path.middlewares=unichain-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist" + networks: + - chains + + + unichain-mainnet-node: + build: + context: ./op + 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=unichain-mainnet" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${UNICHAIN_L1_ETHEREUM_MAINNET_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" + - "OP_NODE_L2_ENGINE_RPC=http://unichain-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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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=${UNICHAIN_MAINNET_L1_BATCH_SIZE:-20}" + #- "OP_NODE_L1_RPC_RATE_LIMIT=${UNICHAIN_MAINNET_L1_RATE_LIMIT:-30}" + - "OP_NODE_L1_RPC_KIND=${UNICHAIN_L1_ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${UNICHAIN_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${UNICHAIN_L1_ETHEREUM_MAINNET_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${UNICHAIN_L1_ETHEREUM_MAINNET_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + unichain-mainnet-op-geth-pruned-pebble-path: diff --git a/unichain-sepolia-op-geth-pruned-pebble-path.yml b/unichain-sepolia-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..bdb5d18a --- /dev/null +++ b/unichain-sepolia-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + unichain-sepolia: + 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: [ "./geth" ] + restart: always + stop_grace_period: 3m + volumes: + - unichain-sepolia-op-geth-pruned-pebble-path:/data + - .jwtsecret:/jwtsecret + environment: + - "GETH_DATADIR=/data" + - "GETH_OP_NETWORK=unichain-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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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.unichain-sepolia-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/unichain-sepolia" + - "traefik.http.services.unichain-sepolia-op-geth-pruned-pebble-path.loadbalancer.server.port=8545" + - "traefik.http.routers.unichain-sepolia-op-geth-pruned-pebble-path.entrypoints=websecure" + - "traefik.http.routers.unichain-sepolia-op-geth-pruned-pebble-path.tls.certresolver=myresolver" + - "traefik.http.routers.unichain-sepolia-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-sepolia`)" + - "traefik.http.routers.unichain-sepolia-op-geth-pruned-pebble-path.middlewares=unichain-sepolia-op-geth-pruned-pebble-path-stripprefix, ipwhitelist" + networks: + - chains + + + unichain-sepolia-node: + build: + context: ./op + 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=unichain-sepolia" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${UNICHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" + - "OP_NODE_L2_ENGINE_RPC=http://unichain-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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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=${UNICHAIN_SEPOLIA_L1_BATCH_SIZE:-20}" + #- "OP_NODE_L1_RPC_RATE_LIMIT=${UNICHAIN_SEPOLIA_L1_RATE_LIMIT:-30}" + - "OP_NODE_L1_RPC_KIND=${UNICHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${UNICHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${UNICHAIN_L1_ETHEREUM_SEPOLIA_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${UNICHAIN_L1_ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + unichain-sepolia-op-geth-pruned-pebble-path: diff --git a/worldchain-mainnet-op-geth-pruned-pebble-path.yml b/worldchain-mainnet-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..29f9ccbe --- /dev/null +++ b/worldchain-mainnet-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + worldchain-mainnet: + 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: [ "./geth" ] + restart: always + stop_grace_period: 3m + volumes: + - worldchain-mainnet-op-geth-pruned-pebble-path:/data + - .jwtsecret:/jwtsecret + environment: + - "GETH_DATADIR=/data" + - "GETH_OP_NETWORK=worldchain-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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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.worldchain-mainnet-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/worldchain-mainnet" + - "traefik.http.services.worldchain-mainnet-op-geth-pruned-pebble-path.loadbalancer.server.port=8545" + - "traefik.http.routers.worldchain-mainnet-op-geth-pruned-pebble-path.entrypoints=websecure" + - "traefik.http.routers.worldchain-mainnet-op-geth-pruned-pebble-path.tls.certresolver=myresolver" + - "traefik.http.routers.worldchain-mainnet-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-mainnet`)" + - "traefik.http.routers.worldchain-mainnet-op-geth-pruned-pebble-path.middlewares=worldchain-mainnet-op-geth-pruned-pebble-path-stripprefix, ipwhitelist" + networks: + - chains + + + worldchain-mainnet-node: + build: + context: ./op + 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=worldchain-mainnet" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${WORLDCHAIN_L1_ETHEREUM_MAINNET_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" + - "OP_NODE_L2_ENGINE_RPC=http://worldchain-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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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=${WORLDCHAIN_MAINNET_L1_BATCH_SIZE:-20}" + #- "OP_NODE_L1_RPC_RATE_LIMIT=${WORLDCHAIN_MAINNET_L1_RATE_LIMIT:-30}" + - "OP_NODE_L1_RPC_KIND=${WORLDCHAIN_L1_ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${WORLDCHAIN_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${WORLDCHAIN_L1_ETHEREUM_MAINNET_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${WORLDCHAIN_L1_ETHEREUM_MAINNET_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + worldchain-mainnet-op-geth-pruned-pebble-path: diff --git a/worldchain-sepolia-op-geth-pruned-pebble-path.yml b/worldchain-sepolia-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..185ee166 --- /dev/null +++ b/worldchain-sepolia-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + worldchain-sepolia: + 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: [ "./geth" ] + restart: always + stop_grace_period: 3m + volumes: + - worldchain-sepolia-op-geth-pruned-pebble-path:/data + - .jwtsecret:/jwtsecret + environment: + - "GETH_DATADIR=/data" + - "GETH_OP_NETWORK=worldchain-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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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.worldchain-sepolia-op-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/worldchain-sepolia" + - "traefik.http.services.worldchain-sepolia-op-geth-pruned-pebble-path.loadbalancer.server.port=8545" + - "traefik.http.routers.worldchain-sepolia-op-geth-pruned-pebble-path.entrypoints=websecure" + - "traefik.http.routers.worldchain-sepolia-op-geth-pruned-pebble-path.tls.certresolver=myresolver" + - "traefik.http.routers.worldchain-sepolia-op-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-sepolia`)" + - "traefik.http.routers.worldchain-sepolia-op-geth-pruned-pebble-path.middlewares=worldchain-sepolia-op-geth-pruned-pebble-path-stripprefix, ipwhitelist" + networks: + - chains + + + worldchain-sepolia-node: + build: + context: ./op + 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=worldchain-sepolia" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${WORLDCHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" + - "OP_NODE_L2_ENGINE_RPC=http://worldchain-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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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=${WORLDCHAIN_SEPOLIA_L1_BATCH_SIZE:-20}" + #- "OP_NODE_L1_RPC_RATE_LIMIT=${WORLDCHAIN_SEPOLIA_L1_RATE_LIMIT:-30}" + - "OP_NODE_L1_RPC_KIND=${WORLDCHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${WORLDCHAIN_L1_ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${WORLDCHAIN_L1_ETHEREUM_SEPOLIA_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${WORLDCHAIN_L1_ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + worldchain-sepolia-op-geth-pruned-pebble-path: diff --git a/zora-mainnet-op-geth-pruned-pebble-path.yml b/zora-mainnet-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..48d0b370 --- /dev/null +++ b/zora-mainnet-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + zora-mainnet: + 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: [ "./geth" ] + restart: always + stop_grace_period: 3m + volumes: + - zora-mainnet-op-geth-pruned-pebble-path:/data + - .jwtsecret:/jwtsecret + environment: + - "GETH_DATADIR=/data" + - "GETH_OP_NETWORK=zora-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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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.zora-stripprefix.stripprefix.prefixes=/zora-mainnet" + - "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-mainnet`)" + - "traefik.http.routers.zora.middlewares=zora-stripprefix, ipwhitelist" + networks: + - chains + + + zora-mainnet-node: + build: + context: ./op + 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-mainnet" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${ZORA_L1_ETHEREUM_MAINNET_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" + - "OP_NODE_L2_ENGINE_RPC=http://zora-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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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_L1_ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${ZORA_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${ZORA_L1_ETHEREUM_MAINNET_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${ZORA_L1_ETHEREUM_MAINNET_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + zora-mainnet-op-geth-pruned-pebble-path: diff --git a/zora-sepolia-op-geth-pruned-pebble-path.yml b/zora-sepolia-op-geth-pruned-pebble-path.yml new file mode 100644 index 00000000..e2049cb5 --- /dev/null +++ b/zora-sepolia-op-geth-pruned-pebble-path.yml @@ -0,0 +1,94 @@ +services: + zora-sepolia: + 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: [ "./geth" ] + restart: always + stop_grace_period: 3m + volumes: + - zora-sepolia-op-geth-pruned-pebble-path:/data + - .jwtsecret:/jwtsecret + environment: + - "GETH_DATADIR=/data" + - "GETH_OP_NETWORK=zora-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_ADDR=0.0.0.0" + - "GETH_WS_ADDR=0.0.0.0" + - "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.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 + + + zora-sepolia-node: + build: + context: ./op + 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" + - "OP_NODE_SYNCMODE=execution-layer" + - "OP_NODE_L1_ETH_RPC=${ZORA_L1_ETHEREUM_SEPOLIA_EXECUTION_RPC}" + - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" + - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" + - "OP_NODE_L2_ENGINE_RPC=http://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_STATIC=/ip4/35.230.102.175/tcp/9222/p2p/16Uiu2HAmSN33smB46ZtueBL2Hz1hsDy8tgSm1mqR38qAhwkX7ntd" + - "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_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_L1_ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" + - "OP_NODE_L1_TRUST_RPC=${ZORA_L1_ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" + - "OP_NODE_L1_BEACON=${ZORA_L1_ETHEREUM_SEPOLIA_BEACON_REST}" + - "OP_NODE_L1_BEACON_ARCHIVER=${ZORA_L1_ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" + networks: + - chains + +volumes: + zora-sepolia-op-geth-pruned-pebble-path: