Files
ethereum-rpc-docker/op-mantle.yml
Sebastian cb2aaef19e fixc
2024-03-18 15:28:31 +01:00

131 lines
4.5 KiB
YAML

version: '3.1'
services:
mantle:
image: mantlenetworkio/op-geth:v1.0.0-alpha.1
expose:
- 8545 # RPC / Websocket
- 25637 # P2P TCP (currently unused)
- 25637/udp # P2P UDP (currently unused)
- 6060 # metrics
- 8551
ports:
- "25637:25637"
- "25637:25637/udp"
environment:
USING_BVM: "true"
BLOCK_SIGNER_KEY: 9f50ccaebd966113a0ef09793f8a3288cd0bb2c05d20caa3c0015b4e665f1b2d
BLOCK_SIGNER_ADDRESS: 0x000000b36A00872bAF079426e012Cf5Cd2A74E8b
entrypoint: geth
command:
- --datadir=/data
- --verbosity=3
- --port=25637
- --http
- --http.corsdomain=*
- --http.vhosts=*
- --http.addr=0.0.0.0
- --http.port=8545
- --http.api=web3,eth,debug,txpool,net
- --ws
- --ws.addr=0.0.0.0
- --ws.port=8546
- --ws.origins=*
- --ws.api=web3,eth,debug,txpool,net
- --syncmode=full
- --maxpeers=0
- --networkid=5003
- --rpc.allow-unprotected-txs
- --authrpc.addr=0.0.0.0
- --authrpc.port=8551
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/jwtsecret
- --pprof
- --pprof.addr=0.0.0.0
- --pprof.port=6060
- --gcmode=archive
- --metrics
- --metrics.addr=0.0.0.0
- --metrics.port=9001
- --snapshot=false
restart: always
stop_grace_period: 30s
volumes:
- mantle:/data
- ".jwtsecret:/jwtsecret"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.mantle-stripprefix.stripprefix.prefixes=/mantle"
- "traefik.http.services.mantle.loadbalancer.server.port=8545"
- "traefik.http.routers.mantle.entrypoints=websecure"
- "traefik.http.routers.mantle.tls.certresolver=myresolver"
- "traefik.http.routers.mantle.rule=Host(`$DOMAIN`) && PathPrefix(`/mantle`)"
- "traefik.http.routers.mantle.middlewares=mantle-stripprefix, ipwhitelist"
networks:
- chains
mantle-node:
image: mantlenetworkio/op-node:v1.0.0-alpha.1
depends_on:
- mantle
expose:
- 8545 # RPC
- 10788 # P2P TCP
- 10788/udp # P2P UDP
- 7300 # metrics
- 6060 # pprof
ports:
- "10788:10788"
- "10788:10788/udp"
volumes:
- "./mantle/mainnet/:/config"
- .jwtsecret:/jwtsecret
restart: always
stop_grace_period: 30s
environment:
OP_NODE_L1_ETH_RPC: ${MANTLE_ETHEREUM_ENDPOINT}
OP_NODE_L2_ENGINE_RPC: 'http://mantle:8551'
OP_NODE_L2_ENGINE_AUTH: /jwtsecret
OP_NODE_ROLLUP_CONFIG: '/config/rollup.json'
OP_NODE_P2P_PRIV_PATH: /config/p2p_node_key_txt
OP_NODE_VERIFIER_L1_CONFS: '3'
OP_NODE_RPC_ADDR: '0.0.0.0'
OP_NODE_RPC_PORT: 8545
OP_NODE_P2P_LISTEN_IP: '0.0.0.0'
OP_NODE_P2P_LISTEN_TCP_PORT: 10788
OP_NODE_P2P_LISTEN_UDP_PORT: 10788
OP_NODE_P2P_PEER_SCORING: 'light'
OP_NODE_P2P_PEER_BANNING: 'true'
OP_NODE_METRICS_ENABLED: 'true'
OP_NODE_METRICS_ADDR: '0.0.0.0'
OP_NODE_METRICS_PORT: 7300
OP_NODE_PPROF_ENABLED: 'true'
OP_NODE_PPROF_PORT: 6060
OP_NODE_PPROF_ADDR: '0.0.0.0'
OP_NODE_P2P_DISCOVERY_PATH: '/op-node/opnode_discovery_db'
OP_NODE_P2P_PEERSTORE_PATH: '/op-node/opnode_peerstore_db'
OP_NODE_INDEXER_SOCKET: 'da-indexer-api.mantle.xyz:443'
OP_NODE_INDEXER_ENABLE: 'true'
OP_NODE_L2_BACKUP_UNSAFE_SYNC_RPC: https://rpc.mantle.xyz
OP_NODE_P2P_STATIC: '/dns4/peer0.mantle.xyz/tcp/9003/p2p/16Uiu2HAmKVKzUAns2gLhZAz1PYcbnhY3WpxNxUZYeTN1x29tNBAW,/dns4/peer1.mantle.xyz/tcp/9003/p2p/16Uiu2HAm1AiZtVp8f5C8LvpSTAXC6GtwqAVKnB3VLawWYSEBmcFN,/dns4/peer2.mantle.xyz/tcp/9003/p2p/16Uiu2HAm2UHVKiPXpovs8VbbUQVPr7feBAqBJdFsH1z5XDiLEvHT'
OP_NODE_SEQUENCER_ENABLED: 'false'
OP_NODE_P2P_AGENT: 'mantle'
OP_NODE_L2_ENGINE_SYNC_ENABLED: 'true'
OP_NODE_L2_SKIP_SYNC_START_CHECK: 'true'
OP_NODE_P2P_SYNC_REQ_RESP: 'true'
networks:
- chains
mantle-key-generator:
image: ghcr.io/foundry-rs/foundry
volumes:
- "./mantle/mainnet/:/config"
- "./mantle/generate-node-key:/generate-node-key"
entrypoint: sh
command: /generate-node-key
volumes:
mantle: