version: '3.1' services: linea-erigon-init: image: alpine:latest entrypoint: ["/bin/sh", "-c"] command: - | apk add --no-cache openssl xxd; mkdir -p /config; if [ ! -f /config/nodekey ]; then echo "Generating new Geth node key..."; openssl rand 32 | xxd -p -c 32 | tr -d '\n' > /configs/mainnet/shared/nodekey; echo "Node key generated: $(cat /config/nodekey)"; else echo "Node key already exists, skipping generation."; fi volumes: - ./linea/shared:/configs/mainnet/shared init: true linea-erigon: image: erigontech/erigon:${ERIGON2_VERSION:-v2.61.0} user: root depends_on: - linea-erigon-init expose: - "51262" - "9090" - "8545" - "8551" ports: - "30319:30319" - "30319:30319/udp" - "48799:48799" - "48799:48799/udp" - "18025:18025" - "18025:18025/udp" volumes: - ${LINEA-MAINNET-ERIGON-V2-ARCHIVE-TRACE:-linea-mainnet-erigon-v2-archive-trace}:/root/.local/share/erigon - ./linea/shared:/configs/mainnet/shared - ./linea/erigon/scripts/entrypoint.sh:/entrypoint.sh networks: - chains entrypoint: /entrypoint.sh environment: - "IP=${IP}" command: > --chain=mainnet --networkid=59144 --miner.gaslimit=61000000 --txpool.accountqueue 50000 --txpool.globalqueue 50000 --txpool.globalslots 50000 --txpool.pricelimit 1000000000 --txpool.nolocals --nodekey /configs/mainnet/shared/nodekey --nat=extip:${IP} --snapshots=false --port=30319 --p2p.allowed-ports 18025 --p2p.allowed-ports 48799 --bootnodes=enode://ca2f06aa93728e2883ff02b0c2076329e475fe667a48035b4f77711ea41a73cf6cb2ff232804c49538ad77794185d83295b57ddd2be79eefc50a9dd5c48bbb2e@3.128.49.168:30303,enode://eef91d714494a1ceb6e06e5ce96fe5d7d25d3701b2d2e68c042b33d5fa0e4bf134116e06947b3f40b0f22db08f104504dd2e5c790d8bcbb6bfb1b7f4f85313ec@3.130.182.201:30303,enode://cfd472842582c422c7c98b0f2d04c6bf21d1afb2c767f72b032f7ea89c03a7abdaf4855b7cb2dc9ae7509836064ba8d817572cf7421ba106ac87857836fa1d1b@3.136.114.192:30303 --metrics --metrics.addr=0.0.0.0 --metrics.port=6060 --private.api.addr=0.0.0.0:9090 --pprof --pprof.addr=0.0.0.0 --pprof.port=6061 --authrpc.addr=0.0.0.0 --authrpc.vhosts=* --authrpc.jwtsecret=/jwtsecret --http.addr=0.0.0.0 --http.vhosts=* --http.corsdomain=* --http.api=eth,erigon,web3,net,debug,trace,txpool,admin --rpc.returndata.limit=1000000 --rpc.gascap=5000000000 --ws --ws.port=8545 restart: unless-stopped stop_grace_period: 1m labels: - "traefik.enable=true" - "traefik.http.middlewares.linea-mainnet-erigon-v2-archive-trace-stripprefix.stripprefix.prefixes=/linea-erigon" - "traefik.http.services.linea-mainnet-erigon-v2-archive-trace.loadbalancer.server.port=8545" - "traefik.http.routers.linea-mainnet-erigon-v2-archive-trace.entrypoints=websecure" - "traefik.http.routers.linea-mainnet-erigon-v2-archive-trace.tls.certresolver=myresolver" - "traefik.http.routers.linea-mainnet-erigon-v2-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-erigon`)" - "traefik.http.routers.linea-mainnet-erigon-v2-archive-trace.middlewares=linea-mainnet-erigon-v2-archive-trace-stripprefix, ipwhitelist" volumes: linea-mainnet-erigon-v2-archive-trace: