version: '3.1'

services:
  erigon-linea:
    build: ./linea/erigon
    expose:
      - "51262"
      - "9090"
      - "8545"
      - "8551"
    ports:
      - "30319:30319"
      - "30319:30319/udp"
    volumes:
      - erigon-linea:/root/.local/share/erigon
      - ./linea/shared:/configs/mainnet/shared
    networks:
      - chains
    command: >
      --chain=mainnet
      --networkid=59144
      --miner.gaslimit=61000000
      --txpool.accountqueue 50000
      --txpool.globalqueue 50000
      --txpool.globalslots 50000
      --txpool.pricelimit 1000000000
      --txpool.nolocals
      --snapshots=false
      --port=30319
      --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
      --rpc.returndata.limit=1000000
      --rpc.gascap=5000000000
      --ws 
    restart: unless-stopped
    stop_grace_period: 1m
    labels:
      - "prometheus-scrape.enabled=true"
      - "prometheus-scrape.port=6060"
      - "prometheus-scrape.job_name=erigon-linea"
      - "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
      - "traefik.enable=true"
      - "traefik.http.middlewares.erigon-linea-stripprefix.stripprefix.prefixes=/erigon-linea"
      - "traefik.http.services.erigon-linea.loadbalancer.server.port=8545"
      - "traefik.http.routers.erigon-linea.entrypoints=websecure"
      - "traefik.http.routers.erigon-linea.tls.certresolver=myresolver"
      - "traefik.http.routers.erigon-linea.rule=Host(`$DOMAIN`) && PathPrefix(`/erigon-linea`)"
      - "traefik.http.routers.erigon-linea.middlewares=erigon-linea-stripprefix, ipwhitelist"
      
volumes:
    erigon-linea:
