From 02caf42380fcc0249763f823b4b3c5b616f30b3d Mon Sep 17 00:00:00 2001 From: Para Dox Date: Mon, 14 Apr 2025 17:59:09 +0700 Subject: [PATCH] fix --- .../polygon-amoy-erigon3-archive-trace.yml | 150 ++++++++++++------ .../polygon-amoy-erigon3-minimal-trace.yml | 150 ++++++++++++------ .../polygon-amoy-erigon3-pruned-trace.yml | 150 ++++++++++++------ .../polygon-mainnet-erigon3-archive-trace.yml | 150 ++++++++++++------ .../polygon-mainnet-erigon3-minimal-trace.yml | 150 ++++++++++++------ .../polygon-mainnet-erigon3-pruned-trace.yml | 150 ++++++++++++------ 6 files changed, 588 insertions(+), 312 deletions(-) diff --git a/polygon/erigon3/polygon-amoy-erigon3-archive-trace.yml b/polygon/erigon3/polygon-amoy-erigon3-archive-trace.yml index 317ae418..18d8c7f2 100644 --- a/polygon/erigon3/polygon-amoy-erigon3-archive-trace.yml +++ b/polygon/erigon3/polygon-amoy-erigon3-archive-trace.yml @@ -1,61 +1,107 @@ - - +--- services: polygon-amoy-archive: - image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0} + image: ${POLYGON_ERIGON3_IMAGE:-erigontech/erigon}:${POLYGON_AMOY_ERIGON3_VERSION:-v3.0.0} + sysctls: + # TCP Performance + net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle + net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache + net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers + net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers + net.core.somaxconn: 32768 # Higher connection queue + # Memory/Connection Management + # net.core.netdev_max_backlog: 50000 # Increase network buffer + net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests + net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets + ulimits: + nofile: 1048576 # Max open files (for RPC/WS connections) + memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) user: root - expose: - - "8545" ports: - - "10377:10377" - - "10377:10377/udp" - - "25377:25377" - - "25377:25377/udp" - - "30377:30377" - - "30377:30377/udp" - - environment: - - "IP=${IP}" - volumes: - - polygon-amoy-erigon3-archive-trace:/root/.local/share/erigon - - /slowdisk:/slowdisk - + - 12377:12377 + - 12377:12377/udp + - 32377:32377 + - 32377:32377/udp + - 37377:37377 + - 37377:37377/udp + expose: + - 8545 + entrypoint: [erigon] + command: + - --bor.heimdall=https://polygon-amoy-heimdall-rest.publicnode.com + - --chain=amoy + - --datadir=/root/.local/share/erigon + - --http + - --http.addr=0.0.0.0 + - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin + - --http.port=8545 + - --http.vhosts=* + - --maxpeers=50 + - --nat=extip:${IP} + - --p2p.allowed-ports=32377 + - --p2p.allowed-ports=37377 + - --port=12377 + - --prune.mode=archive + - --rpc.gascap=6000000000 + - --rpc.returndata.limit=1100000 + - --torrent.port=27377 + - --ws + - --ws.port=8545 + restart: unless-stopped + stop_grace_period: 5m networks: - chains - - entrypoint: ["erigon"] - command: - - --chain=amoy - - - --prune.mode=archive - - --port=10377 - - --p2p.allowed-ports=25377 - - --p2p.allowed-ports=30377 - - --nat=extip:${IP} - - --http.addr=0.0.0.0 - - --http.vhosts=* - - --http.corsdomain=* - - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin - - --rpc.returndata.limit=1100000 - - --rpc.gascap=5000000000 - - --ws.port=8545 - - --ws - - - --torrent.port=20377 - - --bor.heimdall=${POLYGON_HEIMDALL_REST:-None} - - - restart: unless-stopped - stop_grace_period: 1m + volumes: + - ${POLYGON_AMOY_ERIGON3_ARCHIVE_TRACE_DATA:-polygon-amoy-erigon3-archive-trace}:/root/.local/share/erigon + - /slowdisk:/slowdisk labels: - - "traefik.enable=true" - - "traefik.http.middlewares.polygon-amoy-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/polygon-amoy-archive" - - "traefik.http.services.polygon-amoy-erigon3-archive-trace.loadbalancer.server.port=8545" - - "traefik.http.routers.polygon-amoy-erigon3-archive-trace.entrypoints=websecure" - - "traefik.http.routers.polygon-amoy-erigon3-archive-trace.tls.certresolver=myresolver" - - "traefik.http.routers.polygon-amoy-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-amoy-archive`)" - - "traefik.http.routers.polygon-amoy-erigon3-archive-trace.middlewares=polygon-amoy-erigon3-archive-trace-stripprefix, ipwhitelist" - + - traefik.enable=true + - traefik.http.middlewares.polygon-amoy-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/polygon-amoy-archive + - traefik.http.services.polygon-amoy-erigon3-archive-trace.loadbalancer.server.port=8545 + - ${NO_SSL:-traefik.http.routers.polygon-amoy-erigon3-archive-trace.entrypoints=websecure} + - ${NO_SSL:-traefik.http.routers.polygon-amoy-erigon3-archive-trace.tls.certresolver=myresolver} + - ${NO_SSL:-traefik.http.routers.polygon-amoy-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-amoy-archive`)} + - ${NO_SSL:+traefik.http.routers.polygon-amoy-erigon3-archive-trace.rule=PathPrefix(`/polygon-amoy-archive`)} + - traefik.http.routers.polygon-amoy-erigon3-archive-trace.middlewares=polygon-amoy-erigon3-archive-trace-stripprefix, ipwhitelist + volumes: - polygon-amoy-erigon3-archive-trace: + polygon-amoy-erigon3-archive-trace: + +x-upstreams: + - id: $${ID} + labels: + provider: $${PROVIDER} + chain: + method-groups: + enabled: + - debug + - filter + - trace + methods: + disabled: + enabled: + - name: txpool_content # TODO: should be disabled for rollup nodes + # standard geth and erigon + - name: debug_accountRange + - name: debug_getModifiedAccountsByNumber + - name: debug_getModifiedAccountsByHash + # non standard geth and erigon + - name: eth_getRawTransactionByHash + - name: eth_getRawTransactionByBlockHashAndIndex + # non standard erigon only + - name: eth_getBlockReceipts + - name: eth_protocolVersion + - name: eth_callMany + - name: eth_callBundle + - name: debug_accountAt + - name: debug_traceCallMany + - name: erigon_getHeaderByHash + - name: erigon_getBlockReceiptsByBlockHash + - name: erigon_getHeaderByNumber + - name: erigon_getLogsByHash + - name: erigon_forks + - name: erigon_getBlockByTimestamp + - name: erigon_BlockNumber + - name: erigon_getLatestLogs +... \ No newline at end of file diff --git a/polygon/erigon3/polygon-amoy-erigon3-minimal-trace.yml b/polygon/erigon3/polygon-amoy-erigon3-minimal-trace.yml index 9fcb17b0..d6b8a5e6 100644 --- a/polygon/erigon3/polygon-amoy-erigon3-minimal-trace.yml +++ b/polygon/erigon3/polygon-amoy-erigon3-minimal-trace.yml @@ -1,61 +1,107 @@ - - +--- services: polygon-amoy-minimal: - image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0} + image: ${POLYGON_ERIGON3_IMAGE:-erigontech/erigon}:${POLYGON_AMOY_ERIGON3_VERSION:-v3.0.0} + sysctls: + # TCP Performance + net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle + net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache + net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers + net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers + net.core.somaxconn: 32768 # Higher connection queue + # Memory/Connection Management + # net.core.netdev_max_backlog: 50000 # Increase network buffer + net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests + net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets + ulimits: + nofile: 1048576 # Max open files (for RPC/WS connections) + memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) user: root - expose: - - "8545" ports: - - "10307:10307" - - "10307:10307/udp" - - "25307:25307" - - "25307:25307/udp" - - "30307:30307" - - "30307:30307/udp" - - environment: - - "IP=${IP}" - volumes: - - polygon-amoy-erigon3-minimal-trace:/root/.local/share/erigon - - /slowdisk:/slowdisk - + - 12377:12377 + - 12377:12377/udp + - 32377:32377 + - 32377:32377/udp + - 37377:37377 + - 37377:37377/udp + expose: + - 8545 + entrypoint: [erigon] + command: + - --bor.heimdall=https://polygon-amoy-heimdall-rest.publicnode.com + - --chain=amoy + - --datadir=/root/.local/share/erigon + - --http + - --http.addr=0.0.0.0 + - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin + - --http.port=8545 + - --http.vhosts=* + - --maxpeers=50 + - --nat=extip:${IP} + - --p2p.allowed-ports=32377 + - --p2p.allowed-ports=37377 + - --port=12377 + - --prune.mode=minimal + - --rpc.gascap=6000000000 + - --rpc.returndata.limit=1100000 + - --torrent.port=27377 + - --ws + - --ws.port=8545 + restart: unless-stopped + stop_grace_period: 5m networks: - chains - - entrypoint: ["erigon"] - command: - - --chain=amoy - - - --prune.mode=minimal - - --port=10307 - - --p2p.allowed-ports=25307 - - --p2p.allowed-ports=30307 - - --nat=extip:${IP} - - --http.addr=0.0.0.0 - - --http.vhosts=* - - --http.corsdomain=* - - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin - - --rpc.returndata.limit=1100000 - - --rpc.gascap=5000000000 - - --ws.port=8545 - - --ws - - - --torrent.port=20307 - - --bor.heimdall=${POLYGON_HEIMDALL_REST:-None} - - - restart: unless-stopped - stop_grace_period: 1m + volumes: + - ${POLYGON_AMOY_ERIGON3_MINIMAL_TRACE_DATA:-polygon-amoy-erigon3-minimal-trace}:/root/.local/share/erigon + - /slowdisk:/slowdisk labels: - - "traefik.enable=true" - - "traefik.http.middlewares.polygon-amoy-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/polygon-amoy-minimal" - - "traefik.http.services.polygon-amoy-erigon3-minimal-trace.loadbalancer.server.port=8545" - - "traefik.http.routers.polygon-amoy-erigon3-minimal-trace.entrypoints=websecure" - - "traefik.http.routers.polygon-amoy-erigon3-minimal-trace.tls.certresolver=myresolver" - - "traefik.http.routers.polygon-amoy-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-amoy-minimal`)" - - "traefik.http.routers.polygon-amoy-erigon3-minimal-trace.middlewares=polygon-amoy-erigon3-minimal-trace-stripprefix, ipwhitelist" - + - traefik.enable=true + - traefik.http.middlewares.polygon-amoy-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/polygon-amoy-minimal + - traefik.http.services.polygon-amoy-erigon3-minimal-trace.loadbalancer.server.port=8545 + - ${NO_SSL:-traefik.http.routers.polygon-amoy-erigon3-minimal-trace.entrypoints=websecure} + - ${NO_SSL:-traefik.http.routers.polygon-amoy-erigon3-minimal-trace.tls.certresolver=myresolver} + - ${NO_SSL:-traefik.http.routers.polygon-amoy-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-amoy-minimal`)} + - ${NO_SSL:+traefik.http.routers.polygon-amoy-erigon3-minimal-trace.rule=PathPrefix(`/polygon-amoy-minimal`)} + - traefik.http.routers.polygon-amoy-erigon3-minimal-trace.middlewares=polygon-amoy-erigon3-minimal-trace-stripprefix, ipwhitelist + volumes: - polygon-amoy-erigon3-minimal-trace: + polygon-amoy-erigon3-minimal-trace: + +x-upstreams: + - id: $${ID} + labels: + provider: $${PROVIDER} + chain: + method-groups: + enabled: + - debug + - filter + - trace + methods: + disabled: + enabled: + - name: txpool_content # TODO: should be disabled for rollup nodes + # standard geth and erigon + - name: debug_accountRange + - name: debug_getModifiedAccountsByNumber + - name: debug_getModifiedAccountsByHash + # non standard geth and erigon + - name: eth_getRawTransactionByHash + - name: eth_getRawTransactionByBlockHashAndIndex + # non standard erigon only + - name: eth_getBlockReceipts + - name: eth_protocolVersion + - name: eth_callMany + - name: eth_callBundle + - name: debug_accountAt + - name: debug_traceCallMany + - name: erigon_getHeaderByHash + - name: erigon_getBlockReceiptsByBlockHash + - name: erigon_getHeaderByNumber + - name: erigon_getLogsByHash + - name: erigon_forks + - name: erigon_getBlockByTimestamp + - name: erigon_BlockNumber + - name: erigon_getLatestLogs +... \ No newline at end of file diff --git a/polygon/erigon3/polygon-amoy-erigon3-pruned-trace.yml b/polygon/erigon3/polygon-amoy-erigon3-pruned-trace.yml index 65daeba2..1fa01576 100644 --- a/polygon/erigon3/polygon-amoy-erigon3-pruned-trace.yml +++ b/polygon/erigon3/polygon-amoy-erigon3-pruned-trace.yml @@ -1,61 +1,107 @@ - - +--- services: polygon-amoy: - image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0} + image: ${POLYGON_ERIGON3_IMAGE:-erigontech/erigon}:${POLYGON_AMOY_ERIGON3_VERSION:-v3.0.0} + sysctls: + # TCP Performance + net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle + net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache + net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers + net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers + net.core.somaxconn: 32768 # Higher connection queue + # Memory/Connection Management + # net.core.netdev_max_backlog: 50000 # Increase network buffer + net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests + net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets + ulimits: + nofile: 1048576 # Max open files (for RPC/WS connections) + memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) user: root - expose: - - "8545" ports: - - "10583:10583" - - "10583:10583/udp" - - "25583:25583" - - "25583:25583/udp" - - "30583:30583" - - "30583:30583/udp" - - environment: - - "IP=${IP}" - volumes: - - polygon-amoy-erigon3-pruned-trace:/root/.local/share/erigon - - /slowdisk:/slowdisk - + - 12377:12377 + - 12377:12377/udp + - 32377:32377 + - 32377:32377/udp + - 37377:37377 + - 37377:37377/udp + expose: + - 8545 + entrypoint: [erigon] + command: + - --bor.heimdall=https://polygon-amoy-heimdall-rest.publicnode.com + - --chain=amoy + - --datadir=/root/.local/share/erigon + - --http + - --http.addr=0.0.0.0 + - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin + - --http.port=8545 + - --http.vhosts=* + - --maxpeers=50 + - --nat=extip:${IP} + - --p2p.allowed-ports=32377 + - --p2p.allowed-ports=37377 + - --port=12377 + - --prune.mode=full + - --rpc.gascap=6000000000 + - --rpc.returndata.limit=1100000 + - --torrent.port=27377 + - --ws + - --ws.port=8545 + restart: unless-stopped + stop_grace_period: 5m networks: - chains - - entrypoint: ["erigon"] - command: - - --chain=amoy - - - --prune.mode=full - - --port=10583 - - --p2p.allowed-ports=25583 - - --p2p.allowed-ports=30583 - - --nat=extip:${IP} - - --http.addr=0.0.0.0 - - --http.vhosts=* - - --http.corsdomain=* - - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin - - --rpc.returndata.limit=1100000 - - --rpc.gascap=5000000000 - - --ws.port=8545 - - --ws - - - --torrent.port=20583 - - --bor.heimdall=${POLYGON_HEIMDALL_REST:-None} - - - restart: unless-stopped - stop_grace_period: 1m + volumes: + - ${POLYGON_AMOY_ERIGON3_PRUNED_TRACE_DATA:-polygon-amoy-erigon3-pruned-trace}:/root/.local/share/erigon + - /slowdisk:/slowdisk labels: - - "traefik.enable=true" - - "traefik.http.middlewares.polygon-amoy-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/polygon-amoy" - - "traefik.http.services.polygon-amoy-erigon3-pruned-trace.loadbalancer.server.port=8545" - - "traefik.http.routers.polygon-amoy-erigon3-pruned-trace.entrypoints=websecure" - - "traefik.http.routers.polygon-amoy-erigon3-pruned-trace.tls.certresolver=myresolver" - - "traefik.http.routers.polygon-amoy-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-amoy`)" - - "traefik.http.routers.polygon-amoy-erigon3-pruned-trace.middlewares=polygon-amoy-erigon3-pruned-trace-stripprefix, ipwhitelist" - + - traefik.enable=true + - traefik.http.middlewares.polygon-amoy-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/polygon-amoy + - traefik.http.services.polygon-amoy-erigon3-pruned-trace.loadbalancer.server.port=8545 + - ${NO_SSL:-traefik.http.routers.polygon-amoy-erigon3-pruned-trace.entrypoints=websecure} + - ${NO_SSL:-traefik.http.routers.polygon-amoy-erigon3-pruned-trace.tls.certresolver=myresolver} + - ${NO_SSL:-traefik.http.routers.polygon-amoy-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-amoy`)} + - ${NO_SSL:+traefik.http.routers.polygon-amoy-erigon3-pruned-trace.rule=PathPrefix(`/polygon-amoy`)} + - traefik.http.routers.polygon-amoy-erigon3-pruned-trace.middlewares=polygon-amoy-erigon3-pruned-trace-stripprefix, ipwhitelist + volumes: - polygon-amoy-erigon3-pruned-trace: + polygon-amoy-erigon3-pruned-trace: + +x-upstreams: + - id: $${ID} + labels: + provider: $${PROVIDER} + chain: + method-groups: + enabled: + - debug + - filter + - trace + methods: + disabled: + enabled: + - name: txpool_content # TODO: should be disabled for rollup nodes + # standard geth and erigon + - name: debug_accountRange + - name: debug_getModifiedAccountsByNumber + - name: debug_getModifiedAccountsByHash + # non standard geth and erigon + - name: eth_getRawTransactionByHash + - name: eth_getRawTransactionByBlockHashAndIndex + # non standard erigon only + - name: eth_getBlockReceipts + - name: eth_protocolVersion + - name: eth_callMany + - name: eth_callBundle + - name: debug_accountAt + - name: debug_traceCallMany + - name: erigon_getHeaderByHash + - name: erigon_getBlockReceiptsByBlockHash + - name: erigon_getHeaderByNumber + - name: erigon_getLogsByHash + - name: erigon_forks + - name: erigon_getBlockByTimestamp + - name: erigon_BlockNumber + - name: erigon_getLatestLogs +... \ No newline at end of file diff --git a/polygon/erigon3/polygon-mainnet-erigon3-archive-trace.yml b/polygon/erigon3/polygon-mainnet-erigon3-archive-trace.yml index 2640e893..766b63c1 100644 --- a/polygon/erigon3/polygon-mainnet-erigon3-archive-trace.yml +++ b/polygon/erigon3/polygon-mainnet-erigon3-archive-trace.yml @@ -1,61 +1,107 @@ - - +--- services: polygon-mainnet-archive: - image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0} + image: ${POLYGON_ERIGON3_IMAGE:-erigontech/erigon}:${POLYGON_MAINNET_ERIGON3_VERSION:-v3.0.0} + sysctls: + # TCP Performance + net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle + net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache + net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers + net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers + net.core.somaxconn: 32768 # Higher connection queue + # Memory/Connection Management + # net.core.netdev_max_backlog: 50000 # Increase network buffer + net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests + net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets + ulimits: + nofile: 1048576 # Max open files (for RPC/WS connections) + memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) user: root - expose: - - "8545" ports: - - "10400:10400" - - "10400:10400/udp" - - "25400:25400" - - "25400:25400/udp" - - "30400:30400" - - "30400:30400/udp" - - environment: - - "IP=${IP}" - volumes: - - polygon-mainnet-erigon3-archive-trace:/root/.local/share/erigon - - /slowdisk:/slowdisk - + - 10400:10400 + - 10400:10400/udp + - 30400:30400 + - 30400:30400/udp + - 35400:35400 + - 35400:35400/udp + expose: + - 8545 + entrypoint: [erigon] + command: + - --bor.heimdall=https://polygon-heimdall-rest.publicnode.com + - --chain=bor-mainnet + - --datadir=/root/.local/share/erigon + - --http + - --http.addr=0.0.0.0 + - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin + - --http.port=8545 + - --http.vhosts=* + - --maxpeers=50 + - --nat=extip:${IP} + - --p2p.allowed-ports=30400 + - --p2p.allowed-ports=35400 + - --port=10400 + - --prune.mode=archive + - --rpc.gascap=6000000000 + - --rpc.returndata.limit=1100000 + - --torrent.port=25400 + - --ws + - --ws.port=8545 + restart: unless-stopped + stop_grace_period: 5m networks: - chains - - entrypoint: ["erigon"] - command: - - --chain=bor-mainnet - - - --prune.mode=archive - - --port=10400 - - --p2p.allowed-ports=25400 - - --p2p.allowed-ports=30400 - - --nat=extip:${IP} - - --http.addr=0.0.0.0 - - --http.vhosts=* - - --http.corsdomain=* - - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin - - --rpc.returndata.limit=1100000 - - --rpc.gascap=5000000000 - - --ws.port=8545 - - --ws - - - --torrent.port=20400 - - --bor.heimdall=${POLYGON_HEIMDALL_REST:-None} - - - restart: unless-stopped - stop_grace_period: 1m + volumes: + - ${POLYGON_MAINNET_ERIGON3_ARCHIVE_TRACE_DATA:-polygon-mainnet-erigon3-archive-trace}:/root/.local/share/erigon + - /slowdisk:/slowdisk labels: - - "traefik.enable=true" - - "traefik.http.middlewares.polygon-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/polygon-mainnet-archive" - - "traefik.http.services.polygon-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545" - - "traefik.http.routers.polygon-mainnet-erigon3-archive-trace.entrypoints=websecure" - - "traefik.http.routers.polygon-mainnet-erigon3-archive-trace.tls.certresolver=myresolver" - - "traefik.http.routers.polygon-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-mainnet-archive`)" - - "traefik.http.routers.polygon-mainnet-erigon3-archive-trace.middlewares=polygon-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist" - + - traefik.enable=true + - traefik.http.middlewares.polygon-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/polygon-mainnet-archive + - traefik.http.services.polygon-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545 + - ${NO_SSL:-traefik.http.routers.polygon-mainnet-erigon3-archive-trace.entrypoints=websecure} + - ${NO_SSL:-traefik.http.routers.polygon-mainnet-erigon3-archive-trace.tls.certresolver=myresolver} + - ${NO_SSL:-traefik.http.routers.polygon-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-mainnet-archive`)} + - ${NO_SSL:+traefik.http.routers.polygon-mainnet-erigon3-archive-trace.rule=PathPrefix(`/polygon-mainnet-archive`)} + - traefik.http.routers.polygon-mainnet-erigon3-archive-trace.middlewares=polygon-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist + volumes: - polygon-mainnet-erigon3-archive-trace: + polygon-mainnet-erigon3-archive-trace: + +x-upstreams: + - id: $${ID} + labels: + provider: $${PROVIDER} + chain: + method-groups: + enabled: + - debug + - filter + - trace + methods: + disabled: + enabled: + - name: txpool_content # TODO: should be disabled for rollup nodes + # standard geth and erigon + - name: debug_accountRange + - name: debug_getModifiedAccountsByNumber + - name: debug_getModifiedAccountsByHash + # non standard geth and erigon + - name: eth_getRawTransactionByHash + - name: eth_getRawTransactionByBlockHashAndIndex + # non standard erigon only + - name: eth_getBlockReceipts + - name: eth_protocolVersion + - name: eth_callMany + - name: eth_callBundle + - name: debug_accountAt + - name: debug_traceCallMany + - name: erigon_getHeaderByHash + - name: erigon_getBlockReceiptsByBlockHash + - name: erigon_getHeaderByNumber + - name: erigon_getLogsByHash + - name: erigon_forks + - name: erigon_getBlockByTimestamp + - name: erigon_BlockNumber + - name: erigon_getLatestLogs +... \ No newline at end of file diff --git a/polygon/erigon3/polygon-mainnet-erigon3-minimal-trace.yml b/polygon/erigon3/polygon-mainnet-erigon3-minimal-trace.yml index fef6f01a..f8ebf15b 100644 --- a/polygon/erigon3/polygon-mainnet-erigon3-minimal-trace.yml +++ b/polygon/erigon3/polygon-mainnet-erigon3-minimal-trace.yml @@ -1,61 +1,107 @@ - - +--- services: polygon-mainnet-minimal: - image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0} + image: ${POLYGON_ERIGON3_IMAGE:-erigontech/erigon}:${POLYGON_MAINNET_ERIGON3_VERSION:-v3.0.0} + sysctls: + # TCP Performance + net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle + net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache + net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers + net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers + net.core.somaxconn: 32768 # Higher connection queue + # Memory/Connection Management + # net.core.netdev_max_backlog: 50000 # Increase network buffer + net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests + net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets + ulimits: + nofile: 1048576 # Max open files (for RPC/WS connections) + memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) user: root - expose: - - "8545" ports: - - "10036:10036" - - "10036:10036/udp" - - "25036:25036" - - "25036:25036/udp" - - "30036:30036" - - "30036:30036/udp" - - environment: - - "IP=${IP}" - volumes: - - polygon-mainnet-erigon3-minimal-trace:/root/.local/share/erigon - - /slowdisk:/slowdisk - + - 10400:10400 + - 10400:10400/udp + - 30400:30400 + - 30400:30400/udp + - 35400:35400 + - 35400:35400/udp + expose: + - 8545 + entrypoint: [erigon] + command: + - --bor.heimdall=https://polygon-heimdall-rest.publicnode.com + - --chain=bor-mainnet + - --datadir=/root/.local/share/erigon + - --http + - --http.addr=0.0.0.0 + - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin + - --http.port=8545 + - --http.vhosts=* + - --maxpeers=50 + - --nat=extip:${IP} + - --p2p.allowed-ports=30400 + - --p2p.allowed-ports=35400 + - --port=10400 + - --prune.mode=minimal + - --rpc.gascap=6000000000 + - --rpc.returndata.limit=1100000 + - --torrent.port=25400 + - --ws + - --ws.port=8545 + restart: unless-stopped + stop_grace_period: 5m networks: - chains - - entrypoint: ["erigon"] - command: - - --chain=bor-mainnet - - - --prune.mode=minimal - - --port=10036 - - --p2p.allowed-ports=25036 - - --p2p.allowed-ports=30036 - - --nat=extip:${IP} - - --http.addr=0.0.0.0 - - --http.vhosts=* - - --http.corsdomain=* - - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin - - --rpc.returndata.limit=1100000 - - --rpc.gascap=5000000000 - - --ws.port=8545 - - --ws - - - --torrent.port=20036 - - --bor.heimdall=${POLYGON_HEIMDALL_REST:-None} - - - restart: unless-stopped - stop_grace_period: 1m + volumes: + - ${POLYGON_MAINNET_ERIGON3_MINIMAL_TRACE_DATA:-polygon-mainnet-erigon3-minimal-trace}:/root/.local/share/erigon + - /slowdisk:/slowdisk labels: - - "traefik.enable=true" - - "traefik.http.middlewares.polygon-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/polygon-mainnet-minimal" - - "traefik.http.services.polygon-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545" - - "traefik.http.routers.polygon-mainnet-erigon3-minimal-trace.entrypoints=websecure" - - "traefik.http.routers.polygon-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver" - - "traefik.http.routers.polygon-mainnet-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-mainnet-minimal`)" - - "traefik.http.routers.polygon-mainnet-erigon3-minimal-trace.middlewares=polygon-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist" - + - traefik.enable=true + - traefik.http.middlewares.polygon-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/polygon-mainnet-minimal + - traefik.http.services.polygon-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545 + - ${NO_SSL:-traefik.http.routers.polygon-mainnet-erigon3-minimal-trace.entrypoints=websecure} + - ${NO_SSL:-traefik.http.routers.polygon-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver} + - ${NO_SSL:-traefik.http.routers.polygon-mainnet-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-mainnet-minimal`)} + - ${NO_SSL:+traefik.http.routers.polygon-mainnet-erigon3-minimal-trace.rule=PathPrefix(`/polygon-mainnet-minimal`)} + - traefik.http.routers.polygon-mainnet-erigon3-minimal-trace.middlewares=polygon-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist + volumes: - polygon-mainnet-erigon3-minimal-trace: + polygon-mainnet-erigon3-minimal-trace: + +x-upstreams: + - id: $${ID} + labels: + provider: $${PROVIDER} + chain: + method-groups: + enabled: + - debug + - filter + - trace + methods: + disabled: + enabled: + - name: txpool_content # TODO: should be disabled for rollup nodes + # standard geth and erigon + - name: debug_accountRange + - name: debug_getModifiedAccountsByNumber + - name: debug_getModifiedAccountsByHash + # non standard geth and erigon + - name: eth_getRawTransactionByHash + - name: eth_getRawTransactionByBlockHashAndIndex + # non standard erigon only + - name: eth_getBlockReceipts + - name: eth_protocolVersion + - name: eth_callMany + - name: eth_callBundle + - name: debug_accountAt + - name: debug_traceCallMany + - name: erigon_getHeaderByHash + - name: erigon_getBlockReceiptsByBlockHash + - name: erigon_getHeaderByNumber + - name: erigon_getLogsByHash + - name: erigon_forks + - name: erigon_getBlockByTimestamp + - name: erigon_BlockNumber + - name: erigon_getLatestLogs +... \ No newline at end of file diff --git a/polygon/erigon3/polygon-mainnet-erigon3-pruned-trace.yml b/polygon/erigon3/polygon-mainnet-erigon3-pruned-trace.yml index cdb908da..ea52b956 100644 --- a/polygon/erigon3/polygon-mainnet-erigon3-pruned-trace.yml +++ b/polygon/erigon3/polygon-mainnet-erigon3-pruned-trace.yml @@ -1,61 +1,107 @@ - - +--- services: polygon-mainnet: - image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0} + image: ${POLYGON_ERIGON3_IMAGE:-erigontech/erigon}:${POLYGON_MAINNET_ERIGON3_VERSION:-v3.0.0} + sysctls: + # TCP Performance + net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle + net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache + net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers + net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers + net.core.somaxconn: 32768 # Higher connection queue + # Memory/Connection Management + # net.core.netdev_max_backlog: 50000 # Increase network buffer + net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests + net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets + ulimits: + nofile: 1048576 # Max open files (for RPC/WS connections) + memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX) user: root - expose: - - "8545" ports: - - "10320:10320" - - "10320:10320/udp" - - "25320:25320" - - "25320:25320/udp" - - "30320:30320" - - "30320:30320/udp" - - environment: - - "IP=${IP}" - volumes: - - polygon-mainnet-erigon3-pruned-trace:/root/.local/share/erigon - - /slowdisk:/slowdisk - + - 10400:10400 + - 10400:10400/udp + - 30400:30400 + - 30400:30400/udp + - 35400:35400 + - 35400:35400/udp + expose: + - 8545 + entrypoint: [erigon] + command: + - --bor.heimdall=https://polygon-heimdall-rest.publicnode.com + - --chain=bor-mainnet + - --datadir=/root/.local/share/erigon + - --http + - --http.addr=0.0.0.0 + - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin + - --http.port=8545 + - --http.vhosts=* + - --maxpeers=50 + - --nat=extip:${IP} + - --p2p.allowed-ports=30400 + - --p2p.allowed-ports=35400 + - --port=10400 + - --prune.mode=full + - --rpc.gascap=6000000000 + - --rpc.returndata.limit=1100000 + - --torrent.port=25400 + - --ws + - --ws.port=8545 + restart: unless-stopped + stop_grace_period: 5m networks: - chains - - entrypoint: ["erigon"] - command: - - --chain=bor-mainnet - - - --prune.mode=full - - --port=10320 - - --p2p.allowed-ports=25320 - - --p2p.allowed-ports=30320 - - --nat=extip:${IP} - - --http.addr=0.0.0.0 - - --http.vhosts=* - - --http.corsdomain=* - - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin - - --rpc.returndata.limit=1100000 - - --rpc.gascap=5000000000 - - --ws.port=8545 - - --ws - - - --torrent.port=20320 - - --bor.heimdall=${POLYGON_HEIMDALL_REST:-None} - - - restart: unless-stopped - stop_grace_period: 1m + volumes: + - ${POLYGON_MAINNET_ERIGON3_PRUNED_TRACE_DATA:-polygon-mainnet-erigon3-pruned-trace}:/root/.local/share/erigon + - /slowdisk:/slowdisk labels: - - "traefik.enable=true" - - "traefik.http.middlewares.polygon-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/polygon-mainnet" - - "traefik.http.services.polygon-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545" - - "traefik.http.routers.polygon-mainnet-erigon3-pruned-trace.entrypoints=websecure" - - "traefik.http.routers.polygon-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver" - - "traefik.http.routers.polygon-mainnet-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-mainnet`)" - - "traefik.http.routers.polygon-mainnet-erigon3-pruned-trace.middlewares=polygon-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist" - + - traefik.enable=true + - traefik.http.middlewares.polygon-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/polygon-mainnet + - traefik.http.services.polygon-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545 + - ${NO_SSL:-traefik.http.routers.polygon-mainnet-erigon3-pruned-trace.entrypoints=websecure} + - ${NO_SSL:-traefik.http.routers.polygon-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver} + - ${NO_SSL:-traefik.http.routers.polygon-mainnet-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon-mainnet`)} + - ${NO_SSL:+traefik.http.routers.polygon-mainnet-erigon3-pruned-trace.rule=PathPrefix(`/polygon-mainnet`)} + - traefik.http.routers.polygon-mainnet-erigon3-pruned-trace.middlewares=polygon-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist + volumes: - polygon-mainnet-erigon3-pruned-trace: + polygon-mainnet-erigon3-pruned-trace: + +x-upstreams: + - id: $${ID} + labels: + provider: $${PROVIDER} + chain: + method-groups: + enabled: + - debug + - filter + - trace + methods: + disabled: + enabled: + - name: txpool_content # TODO: should be disabled for rollup nodes + # standard geth and erigon + - name: debug_accountRange + - name: debug_getModifiedAccountsByNumber + - name: debug_getModifiedAccountsByHash + # non standard geth and erigon + - name: eth_getRawTransactionByHash + - name: eth_getRawTransactionByBlockHashAndIndex + # non standard erigon only + - name: eth_getBlockReceipts + - name: eth_protocolVersion + - name: eth_callMany + - name: eth_callBundle + - name: debug_accountAt + - name: debug_traceCallMany + - name: erigon_getHeaderByHash + - name: erigon_getBlockReceiptsByBlockHash + - name: erigon_getHeaderByNumber + - name: erigon_getLogsByHash + - name: erigon_forks + - name: erigon_getBlockByTimestamp + - name: erigon_BlockNumber + - name: erigon_getLatestLogs +... \ No newline at end of file