some progress
This commit is contained in:
@@ -1,62 +1,119 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
alephzero-mainnet-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'alephzero-mainnet-nitro-archive-leveldb-hash:/root/.arbitrum'
|
||||
- ./arb/mainnet/alephzero/:/config
|
||||
- './tmp/alephzero-mainnet-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10301:10301
|
||||
- 10301:10301/udp
|
||||
volumes:
|
||||
- ${ALEPHZERO_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-alephzero-mainnet-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/alephzero-mainnet-archive
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10301
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/alephzero-mainnet-archive
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=1411949971076304187394088912578077660717096867958
|
||||
- --node.data-availability.sequencer-inbox-address=0x1411949971076304187394088912578077660717096867958
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud
|
||||
|
||||
- --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud
|
||||
- --execution.forwarding-target=https://rpc.alephzero.raas.gelato.cloud
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.alephzero-mainnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/alephzero-mainnet-archive"
|
||||
- "traefik.http.services.alephzero-mainnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.alephzero-mainnet-nitro-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.alephzero-mainnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.alephzero-mainnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/alephzero-mainnet-archive`)"
|
||||
- "traefik.http.routers.alephzero-mainnet-nitro-archive-leveldb-hash.middlewares=alephzero-mainnet-nitro-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
alephzero-mainnet-nitro-archive-leveldb-hash:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.alephzero-mainnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/alephzero-mainnet-archive
|
||||
- traefik.http.services.alephzero-mainnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-mainnet-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-mainnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-mainnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/alephzero-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.alephzero-mainnet-nitro-archive-leveldb-hash.rule=PathPrefix(`/alephzero-mainnet-archive`)}
|
||||
- traefik.http.routers.alephzero-mainnet-nitro-archive-leveldb-hash.middlewares=alephzero-mainnet-nitro-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
alephzero-mainnet-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: alephzero
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,121 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
alephzero-mainnet:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'alephzero-mainnet-nitro-pruned-pebble-path:/root/.arbitrum'
|
||||
- ./arb/mainnet/alephzero/:/config
|
||||
- './tmp/alephzero-mainnet:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10301:10301
|
||||
- 10301:10301/udp
|
||||
volumes:
|
||||
- ${ALEPHZERO_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATA:-alephzero-mainnet-nitro-pruned-pebble-path}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/alephzero-mainnet
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10301
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/alephzero-mainnet
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=1411949971076304187394088912578077660717096867958
|
||||
- --node.data-availability.sequencer-inbox-address=0x1411949971076304187394088912578077660717096867958
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud
|
||||
|
||||
- --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud
|
||||
- --execution.forwarding-target=https://rpc.alephzero.raas.gelato.cloud
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.alephzero-mainnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/alephzero-mainnet"
|
||||
- "traefik.http.services.alephzero-mainnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.alephzero-mainnet-nitro-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.alephzero-mainnet-nitro-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.alephzero-mainnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/alephzero-mainnet`)"
|
||||
- "traefik.http.routers.alephzero-mainnet-nitro-pruned-pebble-path.middlewares=alephzero-mainnet-nitro-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
alephzero-mainnet-nitro-pruned-pebble-path:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.alephzero-mainnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/alephzero-mainnet
|
||||
- traefik.http.services.alephzero-mainnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-mainnet-nitro-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-mainnet-nitro-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-mainnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/alephzero-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.alephzero-mainnet-nitro-pruned-pebble-path.rule=PathPrefix(`/alephzero-mainnet`)}
|
||||
- traefik.http.routers.alephzero-mainnet-nitro-pruned-pebble-path.middlewares=alephzero-mainnet-nitro-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
alephzero-mainnet-nitro-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain: alephzero
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,123 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
alephzero-sepolia-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'alephzero-sepolia-nitro-archive-leveldb-hash:/root/.arbitrum'
|
||||
- ./arb/sepolia/alephzero/:/config
|
||||
- './tmp/alephzero-sepolia-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10083:10083
|
||||
- 10083:10083/udp
|
||||
volumes:
|
||||
- ${ALEPHZERO_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-alephzero-sepolia-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/alephzero-sepolia-archive:/tmp
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/alephzero-sepolia-archive
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10083
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/alephzero-sepolia-archive
|
||||
|
||||
- --init.latest=archive
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=130937498521962644184395825246273622310592356541
|
||||
- --node.data-availability.sequencer-inbox-address=0x130937498521962644184395825246273622310592356541
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital
|
||||
|
||||
- --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital
|
||||
- --execution.forwarding-target=https://rpc.alephzero-testnet.gelato.digital
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.alephzero-sepolia-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/alephzero-sepolia-archive"
|
||||
- "traefik.http.services.alephzero-sepolia-nitro-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.alephzero-sepolia-nitro-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.alephzero-sepolia-nitro-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.alephzero-sepolia-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/alephzero-sepolia-archive`)"
|
||||
- "traefik.http.routers.alephzero-sepolia-nitro-archive-leveldb-hash.middlewares=alephzero-sepolia-nitro-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
alephzero-sepolia-nitro-archive-leveldb-hash:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.alephzero-sepolia-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/alephzero-sepolia-archive
|
||||
- traefik.http.services.alephzero-sepolia-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-sepolia-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-sepolia-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-sepolia-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/alephzero-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.alephzero-sepolia-nitro-archive-leveldb-hash.rule=PathPrefix(`/alephzero-sepolia-archive`)}
|
||||
- traefik.http.routers.alephzero-sepolia-nitro-archive-leveldb-hash.middlewares=alephzero-sepolia-nitro-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
alephzero-sepolia-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: alephzero-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,123 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
alephzero-sepolia:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'alephzero-sepolia-nitro-pruned-pebble-path:/root/.arbitrum'
|
||||
- ./arb/sepolia/alephzero/:/config
|
||||
- './tmp/alephzero-sepolia:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10083:10083
|
||||
- 10083:10083/udp
|
||||
volumes:
|
||||
- ${ALEPHZERO_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_DATA:-alephzero-sepolia-nitro-pruned-pebble-path}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/alephzero-sepolia:/tmp
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/alephzero-sepolia
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10083
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/alephzero-sepolia
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=130937498521962644184395825246273622310592356541
|
||||
- --node.data-availability.sequencer-inbox-address=0x130937498521962644184395825246273622310592356541
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital
|
||||
|
||||
- --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital
|
||||
- --execution.forwarding-target=https://rpc.alephzero-testnet.gelato.digital
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.alephzero-sepolia-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/alephzero-sepolia"
|
||||
- "traefik.http.services.alephzero-sepolia-nitro-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.alephzero-sepolia-nitro-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.alephzero-sepolia-nitro-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.alephzero-sepolia-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/alephzero-sepolia`)"
|
||||
- "traefik.http.routers.alephzero-sepolia-nitro-pruned-pebble-path.middlewares=alephzero-sepolia-nitro-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
alephzero-sepolia-nitro-pruned-pebble-path:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.alephzero-sepolia-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/alephzero-sepolia
|
||||
- traefik.http.services.alephzero-sepolia-nitro-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-sepolia-nitro-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-sepolia-nitro-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.alephzero-sepolia-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/alephzero-sepolia`)}
|
||||
- ${NO_SSL:+traefik.http.routers.alephzero-sepolia-nitro-pruned-pebble-path.rule=PathPrefix(`/alephzero-sepolia`)}
|
||||
- traefik.http.routers.alephzero-sepolia-nitro-pruned-pebble-path.middlewares=alephzero-sepolia-nitro-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
alephzero-sepolia-nitro-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain: alephzero-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,57 +1,116 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
arbitrum-nova-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'arbitrum-nova-nitro-archive-leveldb-hash:/root/.arbitrum'
|
||||
|
||||
- './tmp/arbitrum-nova-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10468:10468
|
||||
- 10468:10468/udp
|
||||
volumes:
|
||||
- ${ARBITRUM_NOVA_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-arbitrum-nova-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/arbitrum-nova-archive:/tmp
|
||||
|
||||
command:
|
||||
- --chain.id=42170
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-nova-archive
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10468
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-nova-archive
|
||||
|
||||
- --init.latest=archive
|
||||
|
||||
- --chain.id=42170
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
|
||||
|
||||
- --init.latest=archive
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.arbitrum-nova-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/arbitrum-nova-archive"
|
||||
- "traefik.http.services.arbitrum-nova-nitro-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.arbitrum-nova-nitro-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.arbitrum-nova-nitro-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.arbitrum-nova-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-nova-archive`)"
|
||||
- "traefik.http.routers.arbitrum-nova-nitro-archive-leveldb-hash.middlewares=arbitrum-nova-nitro-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
volumes:
|
||||
arbitrum-nova-nitro-archive-leveldb-hash:
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-nova-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/arbitrum-nova-archive
|
||||
- traefik.http.services.arbitrum-nova-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-nova-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-nova-nitro-archive-leveldb-hash.rule=PathPrefix(`/arbitrum-nova-archive`)}
|
||||
- traefik.http.routers.arbitrum-nova-nitro-archive-leveldb-hash.middlewares=arbitrum-nova-nitro-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
arbitrum-nova-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,57 +1,115 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
arbitrum-nova:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'arbitrum-nova-nitro-pruned-pebble-hash:/root/.arbitrum'
|
||||
|
||||
- './tmp/arbitrum-nova:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10468:10468
|
||||
- 10468:10468/udp
|
||||
volumes:
|
||||
- ${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_DATA:-arbitrum-nova-nitro-pruned-pebble-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/arbitrum-nova:/tmp
|
||||
|
||||
command:
|
||||
- --chain.id=42170
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-nova
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10468
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-nova
|
||||
- --init.latest=pruned
|
||||
|
||||
- --chain.id=42170
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
|
||||
- --init.latest=pruned
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.arbitrum-nova-nitro-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-nova"
|
||||
- "traefik.http.services.arbitrum-nova-nitro-pruned-pebble-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-nova`)"
|
||||
- "traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.middlewares=arbitrum-nova-nitro-pruned-pebble-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
volumes:
|
||||
arbitrum-nova-nitro-pruned-pebble-hash:
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-nova-nitro-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-nova
|
||||
- traefik.http.services.arbitrum-nova-nitro-pruned-pebble-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-nova`)}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.rule=PathPrefix(`/arbitrum-nova`)}
|
||||
- traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.middlewares=arbitrum-nova-nitro-pruned-pebble-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
arbitrum-nova-nitro-pruned-pebble-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,57 +1,116 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
arbitrum-one-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'arbitrum-one-nitro-archive-leveldb-hash:/root/.arbitrum'
|
||||
|
||||
- './tmp/arbitrum-one-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10317:10317
|
||||
- 10317:10317/udp
|
||||
volumes:
|
||||
- ${ARBITRUM_ONE_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-arbitrum-one-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/arbitrum-one-archive:/tmp
|
||||
|
||||
command:
|
||||
- --chain.id=42161
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-one-archive
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10317
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-one-archive
|
||||
|
||||
- --init.latest=archive
|
||||
|
||||
- --chain.id=42161
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
|
||||
|
||||
- --init.latest=archive
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.arbitrum-one-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/arbitrum-one-archive"
|
||||
- "traefik.http.services.arbitrum-one-nitro-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-one-archive`)"
|
||||
- "traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.middlewares=arbitrum-one-nitro-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
volumes:
|
||||
arbitrum-one-nitro-archive-leveldb-hash:
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-one-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/arbitrum-one-archive
|
||||
- traefik.http.services.arbitrum-one-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-one-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.rule=PathPrefix(`/arbitrum-one-archive`)}
|
||||
- traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.middlewares=arbitrum-one-nitro-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
arbitrum-one-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,57 +1,115 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
arbitrum-one:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'arbitrum-one-nitro-pruned-pebble-hash:/root/.arbitrum'
|
||||
|
||||
- './tmp/arbitrum-one:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10317:10317
|
||||
- 10317:10317/udp
|
||||
volumes:
|
||||
- ${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_DATA:-arbitrum-one-nitro-pruned-pebble-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/arbitrum-one:/tmp
|
||||
|
||||
command:
|
||||
- --chain.id=42161
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-one
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10317
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-one
|
||||
- --init.latest=pruned
|
||||
|
||||
- --chain.id=42161
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
|
||||
- --init.latest=pruned
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.arbitrum-one-nitro-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-one"
|
||||
- "traefik.http.services.arbitrum-one-nitro-pruned-pebble-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-one`)"
|
||||
- "traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.middlewares=arbitrum-one-nitro-pruned-pebble-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
volumes:
|
||||
arbitrum-one-nitro-pruned-pebble-hash:
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-one-nitro-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-one
|
||||
- traefik.http.services.arbitrum-one-nitro-pruned-pebble-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-one`)}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.rule=PathPrefix(`/arbitrum-one`)}
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.middlewares=arbitrum-one-nitro-pruned-pebble-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
arbitrum-one-nitro-pruned-pebble-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,57 +1,116 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
arbitrum-sepolia-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'arbitrum-sepolia-nitro-archive-pebble-hash:/root/.arbitrum'
|
||||
|
||||
- './tmp/arbitrum-sepolia-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10360:10360
|
||||
- 10360:10360/udp
|
||||
volumes:
|
||||
- ${ARBITRUM_SEPOLIA_NITRO_ARCHIVE_PEBBLE_HASH_DATA:-arbitrum-sepolia-nitro-archive-pebble-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/arbitrum-sepolia-archive:/tmp
|
||||
|
||||
command:
|
||||
- --chain.id=421614
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-sepolia-archive
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10360
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-sepolia-archive
|
||||
|
||||
- --init.latest=archive
|
||||
|
||||
- --chain.id=421614
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
|
||||
|
||||
- --init.latest=archive
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.arbitrum-sepolia-nitro-archive-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-sepolia-archive"
|
||||
- "traefik.http.services.arbitrum-sepolia-nitro-archive-pebble-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.arbitrum-sepolia-nitro-archive-pebble-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.arbitrum-sepolia-nitro-archive-pebble-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.arbitrum-sepolia-nitro-archive-pebble-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-sepolia-archive`)"
|
||||
- "traefik.http.routers.arbitrum-sepolia-nitro-archive-pebble-hash.middlewares=arbitrum-sepolia-nitro-archive-pebble-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --node.batch-poster.enable=false
|
||||
|
||||
volumes:
|
||||
arbitrum-sepolia-nitro-archive-pebble-hash:
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-sepolia-nitro-archive-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-sepolia-archive
|
||||
- traefik.http.services.arbitrum-sepolia-nitro-archive-pebble-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-archive-pebble-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-archive-pebble-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-archive-pebble-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-sepolia-nitro-archive-pebble-hash.rule=PathPrefix(`/arbitrum-sepolia-archive`)}
|
||||
- traefik.http.routers.arbitrum-sepolia-nitro-archive-pebble-hash.middlewares=arbitrum-sepolia-nitro-archive-pebble-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
arbitrum-sepolia-nitro-archive-pebble-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,123 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
connext-sepolia-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'connext-sepolia-nitro-archive-leveldb-hash:/root/.arbitrum'
|
||||
- ./arb/sepolia/connext/:/config
|
||||
- './tmp/connext-sepolia-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10111:10111
|
||||
- 10111:10111/udp
|
||||
volumes:
|
||||
- ${CONNEXT_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-connext-sepolia-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/connext-sepolia-archive:/tmp
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/connext-sepolia-archive
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10111
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/connext-sepolia-archive
|
||||
|
||||
- --init.latest=archive
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=727095791318912381473707332248435763608420056676
|
||||
- --node.data-availability.sequencer-inbox-address=0x727095791318912381473707332248435763608420056676
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital
|
||||
|
||||
- --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital
|
||||
- --execution.forwarding-target=https://rpc.connext-sepolia.gelato.digital
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.connext-sepolia-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/connext-sepolia-archive"
|
||||
- "traefik.http.services.connext-sepolia-nitro-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.connext-sepolia-nitro-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.connext-sepolia-nitro-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.connext-sepolia-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/connext-sepolia-archive`)"
|
||||
- "traefik.http.routers.connext-sepolia-nitro-archive-leveldb-hash.middlewares=connext-sepolia-nitro-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
connext-sepolia-nitro-archive-leveldb-hash:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.connext-sepolia-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/connext-sepolia-archive
|
||||
- traefik.http.services.connext-sepolia-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.connext-sepolia-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.connext-sepolia-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.connext-sepolia-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/connext-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.connext-sepolia-nitro-archive-leveldb-hash.rule=PathPrefix(`/connext-sepolia-archive`)}
|
||||
- traefik.http.routers.connext-sepolia-nitro-archive-leveldb-hash.middlewares=connext-sepolia-nitro-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
connext-sepolia-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: everclear-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,123 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
connext-sepolia:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'connext-sepolia-nitro-pruned-pebble-path:/root/.arbitrum'
|
||||
- ./arb/sepolia/connext/:/config
|
||||
- './tmp/connext-sepolia:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10111:10111
|
||||
- 10111:10111/udp
|
||||
volumes:
|
||||
- ${CONNEXT_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_DATA:-connext-sepolia-nitro-pruned-pebble-path}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/connext-sepolia:/tmp
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/connext-sepolia
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10111
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/connext-sepolia
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=727095791318912381473707332248435763608420056676
|
||||
- --node.data-availability.sequencer-inbox-address=0x727095791318912381473707332248435763608420056676
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital
|
||||
|
||||
- --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital
|
||||
- --execution.forwarding-target=https://rpc.connext-sepolia.gelato.digital
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.connext-sepolia-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/connext-sepolia"
|
||||
- "traefik.http.services.connext-sepolia-nitro-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.connext-sepolia-nitro-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.connext-sepolia-nitro-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.connext-sepolia-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/connext-sepolia`)"
|
||||
- "traefik.http.routers.connext-sepolia-nitro-pruned-pebble-path.middlewares=connext-sepolia-nitro-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
connext-sepolia-nitro-pruned-pebble-path:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.connext-sepolia-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/connext-sepolia
|
||||
- traefik.http.services.connext-sepolia-nitro-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.connext-sepolia-nitro-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.connext-sepolia-nitro-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.connext-sepolia-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/connext-sepolia`)}
|
||||
- ${NO_SSL:+traefik.http.routers.connext-sepolia-nitro-pruned-pebble-path.rule=PathPrefix(`/connext-sepolia`)}
|
||||
- traefik.http.routers.connext-sepolia-nitro-pruned-pebble-path.middlewares=connext-sepolia-nitro-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
connext-sepolia-nitro-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain: everclear-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,119 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
everclear-mainnet-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'everclear-mainnet-nitro-archive-leveldb-hash:/root/.arbitrum'
|
||||
- ./arb/mainnet/everclear/:/config
|
||||
- './tmp/everclear-mainnet-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10870:10870
|
||||
- 10870:10870/udp
|
||||
volumes:
|
||||
- ${EVERCLEAR_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-everclear-mainnet-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/everclear-mainnet-archive
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10870
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/everclear-mainnet-archive
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=727095791318912381473707332248435763608420056676
|
||||
- --node.data-availability.sequencer-inbox-address=0x727095791318912381473707332248435763608420056676
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud
|
||||
|
||||
- --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud
|
||||
- --execution.forwarding-target=https://rpc.everclear.raas.gelato.cloud
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.everclear-mainnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/everclear-mainnet-archive"
|
||||
- "traefik.http.services.everclear-mainnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.everclear-mainnet-nitro-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.everclear-mainnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.everclear-mainnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/everclear-mainnet-archive`)"
|
||||
- "traefik.http.routers.everclear-mainnet-nitro-archive-leveldb-hash.middlewares=everclear-mainnet-nitro-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
everclear-mainnet-nitro-archive-leveldb-hash:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.everclear-mainnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/everclear-mainnet-archive
|
||||
- traefik.http.services.everclear-mainnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.everclear-mainnet-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.everclear-mainnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.everclear-mainnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/everclear-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.everclear-mainnet-nitro-archive-leveldb-hash.rule=PathPrefix(`/everclear-mainnet-archive`)}
|
||||
- traefik.http.routers.everclear-mainnet-nitro-archive-leveldb-hash.middlewares=everclear-mainnet-nitro-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
everclear-mainnet-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: everclear
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,121 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
everclear-mainnet:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'everclear-mainnet-nitro-pruned-pebble-path:/root/.arbitrum'
|
||||
- ./arb/mainnet/everclear/:/config
|
||||
- './tmp/everclear-mainnet:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10870:10870
|
||||
- 10870:10870/udp
|
||||
volumes:
|
||||
- ${EVERCLEAR_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATA:-everclear-mainnet-nitro-pruned-pebble-path}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/everclear-mainnet
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10870
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/everclear-mainnet
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=727095791318912381473707332248435763608420056676
|
||||
- --node.data-availability.sequencer-inbox-address=0x727095791318912381473707332248435763608420056676
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud
|
||||
|
||||
- --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud
|
||||
- --execution.forwarding-target=https://rpc.everclear.raas.gelato.cloud
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.everclear-mainnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/everclear-mainnet"
|
||||
- "traefik.http.services.everclear-mainnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.everclear-mainnet-nitro-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.everclear-mainnet-nitro-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.everclear-mainnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/everclear-mainnet`)"
|
||||
- "traefik.http.routers.everclear-mainnet-nitro-pruned-pebble-path.middlewares=everclear-mainnet-nitro-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
everclear-mainnet-nitro-pruned-pebble-path:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.everclear-mainnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/everclear-mainnet
|
||||
- traefik.http.services.everclear-mainnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.everclear-mainnet-nitro-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.everclear-mainnet-nitro-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.everclear-mainnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/everclear-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.everclear-mainnet-nitro-pruned-pebble-path.rule=PathPrefix(`/everclear-mainnet`)}
|
||||
- traefik.http.routers.everclear-mainnet-nitro-pruned-pebble-path.middlewares=everclear-mainnet-nitro-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
everclear-mainnet-nitro-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain: everclear
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,122 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
opencampuscodex-sepolia-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'opencampuscodex-sepolia-nitro-archive-leveldb-hash:/root/.arbitrum'
|
||||
- ./arb/arb-sepolia/opencampuscodex/:/config
|
||||
- './tmp/opencampuscodex-sepolia-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10938:10938
|
||||
- 10938:10938/udp
|
||||
volumes:
|
||||
- ${OPENCAMPUSCODEX_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-opencampuscodex-sepolia-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/opencampuscodex-sepolia-archive:/tmp
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/opencampuscodex-sepolia-archive
|
||||
- --parent-chain.connection.url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10938
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/opencampuscodex-sepolia-archive
|
||||
|
||||
- --init.latest=archive
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=1297541082195356755105700451499873350464260779639
|
||||
- --node.data-availability.sequencer-inbox-address=0xe347C1223381b9Dcd6c0F61cf81c90175A7Bae77
|
||||
- --node.data-availability.parent-chain-node-url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.open-campus-codex.gelato.digital
|
||||
|
||||
- --node.feed.input.url=wss://feed.open-campus-codex.gelato.digital
|
||||
- --execution.forwarding-target=https://rpc.open-campus-codex.gelato.digital
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.opencampuscodex-sepolia-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/opencampuscodex-sepolia-archive"
|
||||
- "traefik.http.services.opencampuscodex-sepolia-nitro-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.opencampuscodex-sepolia-nitro-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.opencampuscodex-sepolia-nitro-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.opencampuscodex-sepolia-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/opencampuscodex-sepolia-archive`)"
|
||||
- "traefik.http.routers.opencampuscodex-sepolia-nitro-archive-leveldb-hash.middlewares=opencampuscodex-sepolia-nitro-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
|
||||
volumes:
|
||||
opencampuscodex-sepolia-nitro-archive-leveldb-hash:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.opencampuscodex-sepolia-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/opencampuscodex-sepolia-archive
|
||||
- traefik.http.services.opencampuscodex-sepolia-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.opencampuscodex-sepolia-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.opencampuscodex-sepolia-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.opencampuscodex-sepolia-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/opencampuscodex-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.opencampuscodex-sepolia-nitro-archive-leveldb-hash.rule=PathPrefix(`/opencampuscodex-sepolia-archive`)}
|
||||
- traefik.http.routers.opencampuscodex-sepolia-nitro-archive-leveldb-hash.middlewares=opencampuscodex-sepolia-nitro-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
opencampuscodex-sepolia-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: open-campus-codex-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
120
arb/nitro/opencampuscodex-sepolia-nitro-pruned-pebble-hash.yml
Normal file
120
arb/nitro/opencampuscodex-sepolia-nitro-pruned-pebble-hash.yml
Normal file
@@ -0,0 +1,120 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
opencampuscodex-sepolia:
|
||||
image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10938:10938
|
||||
- 10938:10938/udp
|
||||
volumes:
|
||||
- ${OPENCAMPUSCODEX_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_DATA:-opencampuscodex-sepolia-nitro-pruned-pebble-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ./tmp/opencampuscodex-sepolia:/tmp
|
||||
|
||||
command:
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10938
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/opencampuscodex-sepolia
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=0xe347C1223381b9Dcd6c0F61cf81c90175A7Bae77
|
||||
- --node.data-availability.parent-chain-node-url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.open-campus-codex.gelato.digital
|
||||
|
||||
- --node.feed.input.url=wss://feed.open-campus-codex.gelato.digital
|
||||
- --execution.forwarding-target=https://rpc.open-campus-codex.gelato.digital
|
||||
- --parent-chain.connection.url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.opencampuscodex-sepolia-nitro-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/opencampuscodex-sepolia
|
||||
- traefik.http.services.opencampuscodex-sepolia-nitro-pruned-pebble-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.opencampuscodex-sepolia-nitro-pruned-pebble-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.opencampuscodex-sepolia-nitro-pruned-pebble-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.opencampuscodex-sepolia-nitro-pruned-pebble-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/opencampuscodex-sepolia`)}
|
||||
- ${NO_SSL:+traefik.http.routers.opencampuscodex-sepolia-nitro-pruned-pebble-hash.rule=PathPrefix(`/opencampuscodex-sepolia`)}
|
||||
- traefik.http.routers.opencampuscodex-sepolia-nitro-pruned-pebble-hash.middlewares=opencampuscodex-sepolia-nitro-pruned-pebble-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
opencampuscodex-sepolia-nitro-pruned-pebble-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: open-campus-codex-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
@@ -1,62 +1,119 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
playblock-mainnet-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'playblock-mainnet-nitro-archive-leveldb-hash:/root/.arbitrum'
|
||||
- ./arb/nova/real/:/config
|
||||
- './tmp/playblock-mainnet-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10728:10728
|
||||
- 10728:10728/udp
|
||||
volumes:
|
||||
- ${PLAYBLOCK_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-playblock-mainnet-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/playblock-mainnet-archive
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10728
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/playblock-mainnet-archive
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=1297541082195356755105700451499873350464260779639
|
||||
- --node.data-availability.sequencer-inbox-address=0x1297541082195356755105700451499873350464260779639
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.playblock.io
|
||||
|
||||
- --node.feed.input.url=wss://feed.playblock.io
|
||||
- --execution.forwarding-target=https://rpc.playblock.io
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.playblock-mainnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/playblock-mainnet-archive"
|
||||
- "traefik.http.services.playblock-mainnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.playblock-mainnet-nitro-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.playblock-mainnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.playblock-mainnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/playblock-mainnet-archive`)"
|
||||
- "traefik.http.routers.playblock-mainnet-nitro-archive-leveldb-hash.middlewares=playblock-mainnet-nitro-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
playblock-mainnet-nitro-archive-leveldb-hash:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.playblock-mainnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/playblock-mainnet-archive
|
||||
- traefik.http.services.playblock-mainnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.playblock-mainnet-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.playblock-mainnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.playblock-mainnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/playblock-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.playblock-mainnet-nitro-archive-leveldb-hash.rule=PathPrefix(`/playblock-mainnet-archive`)}
|
||||
- traefik.http.routers.playblock-mainnet-nitro-archive-leveldb-hash.middlewares=playblock-mainnet-nitro-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
playblock-mainnet-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: playnance
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,121 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
playblock-mainnet:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'playblock-mainnet-nitro-pruned-pebble-path:/root/.arbitrum'
|
||||
- ./arb/nova/real/:/config
|
||||
- './tmp/playblock-mainnet:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10728:10728
|
||||
- 10728:10728/udp
|
||||
volumes:
|
||||
- ${PLAYBLOCK_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATA:-playblock-mainnet-nitro-pruned-pebble-path}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/playblock-mainnet
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10728
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/playblock-mainnet
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=1297541082195356755105700451499873350464260779639
|
||||
- --node.data-availability.sequencer-inbox-address=0x1297541082195356755105700451499873350464260779639
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.playblock.io
|
||||
|
||||
- --node.feed.input.url=wss://feed.playblock.io
|
||||
- --execution.forwarding-target=https://rpc.playblock.io
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.playblock-mainnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/playblock-mainnet"
|
||||
- "traefik.http.services.playblock-mainnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.playblock-mainnet-nitro-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.playblock-mainnet-nitro-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.playblock-mainnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/playblock-mainnet`)"
|
||||
- "traefik.http.routers.playblock-mainnet-nitro-pruned-pebble-path.middlewares=playblock-mainnet-nitro-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
playblock-mainnet-nitro-pruned-pebble-path:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.playblock-mainnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/playblock-mainnet
|
||||
- traefik.http.services.playblock-mainnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.playblock-mainnet-nitro-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.playblock-mainnet-nitro-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.playblock-mainnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/playblock-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.playblock-mainnet-nitro-pruned-pebble-path.rule=PathPrefix(`/playblock-mainnet`)}
|
||||
- traefik.http.routers.playblock-mainnet-nitro-pruned-pebble-path.middlewares=playblock-mainnet-nitro-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
playblock-mainnet-nitro-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain: playnance
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,119 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
real-mainnet-archive:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'real-mainnet-nitro-archive-leveldb-hash:/root/.arbitrum'
|
||||
- ./arb/nova/real/:/config
|
||||
- './tmp/real-mainnet-archive:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10354:10354
|
||||
- 10354:10354/udp
|
||||
volumes:
|
||||
- ${REAL_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-real-mainnet-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/real-mainnet-archive
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10354
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=true
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/real-mainnet-archive
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=466813324240923703236721233648302990016039913376
|
||||
- --node.data-availability.sequencer-inbox-address=0x466813324240923703236721233648302990016039913376
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital
|
||||
|
||||
- --node.feed.input.url=wss://feed.realforreal.gelato.digital
|
||||
- --execution.forwarding-target=https://rpc.realforreal.gelato.digital
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.real-mainnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/real-mainnet-archive"
|
||||
- "traefik.http.services.real-mainnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.real-mainnet-nitro-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.real-mainnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.real-mainnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/real-mainnet-archive`)"
|
||||
- "traefik.http.routers.real-mainnet-nitro-archive-leveldb-hash.middlewares=real-mainnet-nitro-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
real-mainnet-nitro-archive-leveldb-hash:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.real-mainnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/real-mainnet-archive
|
||||
- traefik.http.services.real-mainnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.real-mainnet-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.real-mainnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.real-mainnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/real-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.real-mainnet-nitro-archive-leveldb-hash.rule=PathPrefix(`/real-mainnet-archive`)}
|
||||
- traefik.http.routers.real-mainnet-nitro-archive-leveldb-hash.middlewares=real-mainnet-nitro-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
real-mainnet-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: real
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,62 +1,121 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
real-mainnet:
|
||||
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}'
|
||||
stop_grace_period: 3m
|
||||
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
|
||||
user: root
|
||||
volumes:
|
||||
- 'real-mainnet-nitro-pruned-pebble-path:/root/.arbitrum'
|
||||
- ./arb/nova/real/:/config
|
||||
- './tmp/real-mainnet:/tmp'
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10354:10354
|
||||
- 10354:10354/udp
|
||||
volumes:
|
||||
- ${REAL_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATA:-real-mainnet-nitro-pruned-pebble-path}:/root/.arbitrum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/real-mainnet
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --http.addr=0.0.0.0
|
||||
- --datadir=/root/.arbitrum
|
||||
- --port=10354
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --ws.api=eth,net,web3,arb,txpool,debug
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --log-type=json
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=false
|
||||
- --execution.sequencer.enable=false
|
||||
- --persistent.db-engine=pebble
|
||||
- --persistent.chain=/root/.arbitrum/real-mainnet
|
||||
|
||||
- --conf.file=/config/baseConfig.json
|
||||
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.sequencer-inbox-address=466813324240923703236721233648302990016039913376
|
||||
- --node.data-availability.sequencer-inbox-address=0x466813324240923703236721233648302990016039913376
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital
|
||||
|
||||
- --node.feed.input.url=wss://feed.realforreal.gelato.digital
|
||||
- --execution.forwarding-target=https://rpc.realforreal.gelato.digital
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.real-mainnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/real-mainnet"
|
||||
- "traefik.http.services.real-mainnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.real-mainnet-nitro-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.real-mainnet-nitro-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.real-mainnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/real-mainnet`)"
|
||||
- "traefik.http.routers.real-mainnet-nitro-pruned-pebble-path.middlewares=real-mainnet-nitro-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
|
||||
volumes:
|
||||
real-mainnet-nitro-pruned-pebble-path:
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.real-mainnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/real-mainnet
|
||||
- traefik.http.services.real-mainnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.real-mainnet-nitro-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.real-mainnet-nitro-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.real-mainnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/real-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.real-mainnet-nitro-pruned-pebble-path.rule=PathPrefix(`/real-mainnet`)}
|
||||
- traefik.http.routers.real-mainnet-nitro-pruned-pebble-path.middlewares=real-mainnet-nitro-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
real-mainnet-nitro-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain: real
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
arbitrum-nitro:
|
||||
image: 'offchainlabs/nitro-node:v2.2.2-8f33fea'
|
||||
restart: always
|
||||
stop_grace_period: 30s
|
||||
user: root
|
||||
volumes:
|
||||
- 'arbitrum-archive_data:/arbitrum-node'
|
||||
expose:
|
||||
- 8547
|
||||
- 8548
|
||||
command:
|
||||
- --init.url=https://snapshot.arbitrum.io/mainnet/nitro.tar
|
||||
- --execution.caching.archive
|
||||
- --persistent.chain=/arbitrum-node/data/
|
||||
- --persistent.global-config=/arbitrum-node/
|
||||
- --execution.rpc.classic-redirect=${ARBITRUM_CLASSIC_URL:-http://arbitrum-classic:8547/}
|
||||
- --parent-chain.connection.url=${ARBITRUM_L1_URL}
|
||||
- --chain.id=42161
|
||||
- --http.api=net,web3,eth,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.vhosts=*
|
||||
- --ws.port=8547
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.arbitrum-stripprefix.stripprefix.prefixes=/arbitrum"
|
||||
- "traefik.http.services.arbitrum.loadbalancer.server.port=8547"
|
||||
- "traefik.http.routers.arbitrum.entrypoints=websecure"
|
||||
- "traefik.http.routers.arbitrum.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.arbitrum.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum`)"
|
||||
- "traefik.http.routers.arbitrum.middlewares=arbitrum-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
arbitrum-archive_data:
|
||||
@@ -1,22 +0,0 @@
|
||||
version: "3.1"
|
||||
services:
|
||||
arbitrum-proxy:
|
||||
image: stakesquid/eth-cluster@sha256:be8ac9d1325b7389a6cb8d57fe00a1cc55ed47a6a48861e93e326453676e56d6
|
||||
environment:
|
||||
- FULLNODE_WS_URL=${ARBITRUM_PROXY_FULLNODE_WS}
|
||||
- FULLNODE_RPC_URL=${ARBITRUM_PROXY_FULLNODE_RPC}
|
||||
- ARCHIVE_RPC_URL=${ARBITRUM_PROXY_ARCHIVE_RPC}
|
||||
- ALL_TRACE_TO_ARCHIVE=${ARBITRUM_PROXY_TRACE_TO_ARCHIVE:-true}
|
||||
expose:
|
||||
- "8545"
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.arbitrum-proxy-stripprefix.stripprefix.prefixes=$ARBITRUM_PROXY_PREFIX"
|
||||
- "traefik.http.services.arbitrum-proxy.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.arbitrum-proxy.entrypoints=websecure"
|
||||
- "traefik.http.routers.arbitrum-proxy.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.arbitrum-proxy.rule=Host(`$ARBITRUM_PROXY_DOMAIN`) && PathPrefix(`$ARBITRUM_PROXY_PREFIX`)"
|
||||
- "traefik.http.routers.arbitrum-proxy.middlewares=arbitrum-proxy-stripprefix, ipwhitelist"
|
||||
@@ -1,51 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
avalanche-fuji:
|
||||
image: avaplatform/avalanchego:${AVALANCHEGO_VERSION:-v1.12.2}
|
||||
stop_grace_period: 3m
|
||||
ulimits:
|
||||
nofile: 1048576
|
||||
expose:
|
||||
- "9650"
|
||||
- "18507"
|
||||
ports:
|
||||
- "18507:18507/tcp"
|
||||
- "18507:18507/udp"
|
||||
volumes:
|
||||
- avalanche-fuji:/root/.avalanchego
|
||||
- ./avalanche/configs/chains/C/fullnode-config.json:/root/.avalanchego/configs/chains/C/config.json
|
||||
networks:
|
||||
- chains
|
||||
command: "/avalanchego/build/avalanchego --network-id=fuji --http-host= --http-allowed-hosts=* --staking-port=18507 --public-ip=$IP"
|
||||
restart: unless-stopped
|
||||
|
||||
|
||||
avalanche-fuji-proxy:
|
||||
restart: unless-stopped
|
||||
image: nginx
|
||||
depends_on:
|
||||
- avalanche-fuji
|
||||
expose:
|
||||
- 80
|
||||
environment:
|
||||
PROXY_HOST: avalanche-fuji
|
||||
RPC_PORT: 9650
|
||||
RPC_PATH: /ext/bc/C/rpc
|
||||
WS_PORT: 9650
|
||||
WS_PATH: /ext/bc/C/ws
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.avalanche-fuji-stripprefix.stripprefix.prefixes=/avalanche-fuji"
|
||||
- "traefik.http.services.avalanche-fuji.loadbalancer.server.port=80"
|
||||
- "traefik.http.routers.avalanche-fuji.entrypoints=websecure"
|
||||
- "traefik.http.routers.avalanche-fuji.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.avalanche-fuji.rule=Host(`$DOMAIN`) && PathPrefix(`/avalanche-fuji`)"
|
||||
- "traefik.http.routers.avalanche-fuji.middlewares=avalanche-fuji-stripprefix, ipwhitelist"
|
||||
|
||||
volumes:
|
||||
avalanche-fuji:
|
||||
@@ -1,94 +1,108 @@
|
||||
# this is what you should know:
|
||||
# the execution client can not start before the node part initialized and generated a genesis block for the execution client
|
||||
# those config files are stored in ./berachain//config
|
||||
# once the execution client is started it needs a push from the node to start syncing but then syncs p2p
|
||||
# if you restart the beacon node while the execution client is syncing the beacon node will crash loop until sync is done
|
||||
|
||||
# delete and resync:
|
||||
|
||||
# rm -rf berachain/mainnet/config/* && rm -rf /var/lib/docker/volumes/rpc_berachain-mainnet-reth-archive-trace*/_data/* && ./force-recreate.sh berachain-mainnet-archive
|
||||
|
||||
# I also suspect that the peers will blacklist you frequently if you try more than once
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
berachain-bepolia-archive:
|
||||
image: ghcr.io/paradigmxyz/reth:${RETH_VERSION:-v1.3.4}
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${BERACHAIN_BEPOLIA_RETH_VERSION:-v1.3.4}
|
||||
user: root
|
||||
volumes:
|
||||
- "berachain-bepolia-reth-archive-trace:/root/.local/share/reth"
|
||||
- "/slowdisk:/slowdisk"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
- "./berachain/bepolia/config:/config"
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 9001
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10347:10347"
|
||||
- "10347:10347/udp"
|
||||
restart: unless-stopped
|
||||
- 10347:10347
|
||||
- 10347:10347/udp
|
||||
volumes:
|
||||
- ${BERACHAIN_BEPOLIA_RETH_ARCHIVE_TRACE_DATA:-berachain-bepolia-reth-archive-trace}:/root/.local/share/reth
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
entrypoint: ["/bin/sh", "-c", "while [ ! -f /config/eth-genesis.json ]; do sleep 1; done; exec reth node \"$@\"", "--"]
|
||||
- BOOTNODES=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303
|
||||
entrypoint: [/bin/sh, -c, 'while [ ! -f /config/eth-genesis.json ]; do sleep 1; done; exec reth node "$@"', --]
|
||||
command:
|
||||
- --chain=/config/eth-genesis.json
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --port=10347
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --metrics=0.0.0.0:9001
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --port=10347
|
||||
- --discovery.port=10347
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --ws.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --http.corsdomain=*
|
||||
|
||||
- --rpc.max-logs-per-response=1100000
|
||||
- --rpc.gascap=600000000
|
||||
- --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303
|
||||
|
||||
stop_grace_period: 1m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.berachain-bepolia-reth-archive-trace-stripprefix.stripprefix.prefixes=/berachain-bepolia-archive"
|
||||
- "traefik.http.services.berachain-bepolia-reth-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.berachain-bepolia-reth-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.berachain-bepolia-reth-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.berachain-bepolia-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/berachain-bepolia-archive`)"
|
||||
- "traefik.http.routers.berachain-bepolia-reth-archive-trace.middlewares=berachain-bepolia-reth-archive-trace-stripprefix, ipwhitelist"
|
||||
|
||||
- --chain=/config/eth-genesis.json
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.berachain-bepolia-reth-archive-trace-stripprefix.stripprefix.prefixes=/berachain-bepolia-archive
|
||||
- traefik.http.services.berachain-bepolia-reth-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-bepolia-reth-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-bepolia-reth-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-bepolia-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/berachain-bepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.berachain-bepolia-reth-archive-trace.rule=PathPrefix(`/berachain-bepolia-archive`)}
|
||||
- traefik.http.routers.berachain-bepolia-reth-archive-trace.middlewares=berachain-bepolia-reth-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
berachain-bepolia-archive-node:
|
||||
image: ghcr.io/berachain/beacon-kit:v1.1.3
|
||||
expose:
|
||||
- 26657 #rpc
|
||||
image: ${BERACHAIN_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}:${BERACHAIN_BEPOLIA_BEACON_KIT_VERSION:-v1.1.3}
|
||||
ports:
|
||||
- "15347:15347"
|
||||
- "15347:15347/udp"
|
||||
- 15347:15347
|
||||
- 15347:15347/udp
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "MONIKER=d${DOMAIN:-local}"
|
||||
- "P2P_PORT=15347"
|
||||
- "CHAINNAME=bepolia"
|
||||
- "CHAINID=80069"
|
||||
- "AUTH_RPC=http://berachain-bepolia-archive:8551"
|
||||
- "CHAIN_SPEC=testnet"
|
||||
entrypoint: [ "sh", "/init.sh" ]
|
||||
- MONIKER=d${DOMAIN:-local}
|
||||
- P2P_PORT=15347
|
||||
- AUTH_RPC=http://berachain-bepolia-archive:8551
|
||||
- CHAIN_SPEC=testnet
|
||||
- CHAINNAME=bepolia
|
||||
- CHAINID=80069
|
||||
entrypoint: [sh, /init.sh]
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "./berachain/scripts/init.sh:/init.sh"
|
||||
- "berachain-bepolia-reth-archive-trace_node:/root/.beacond/data"
|
||||
- "./berachain/bepolia/config:/root/.beacond/config"
|
||||
- ".jwtsecret:/root/.beacond/config/jwt.hex:ro"
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
|
||||
volumes:
|
||||
- ./berachain/scripts/init.sh:/init.sh
|
||||
- ${BERACHAIN_BEPOLIA_RETH_ARCHIVE_TRACE__NODE_DATA:-berachain-bepolia-reth-archive-trace_node}:/root/.beacond/data
|
||||
- ./berachain/bepolia/config:/root/.beacond/config
|
||||
- .jwtsecret:/root/.beacond/config/jwt.hex:ro
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
berachain-bepolia-reth-archive-trace:
|
||||
berachain-bepolia-reth-archive-trace_node:
|
||||
berachain-bepolia-reth-archive-trace:
|
||||
berachain-bepolia-reth-archive-trace_node:
|
||||
|
||||
x-upstreams:
|
||||
- chain: berachain-bepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,94 +1,108 @@
|
||||
# this is what you should know:
|
||||
# the execution client can not start before the node part initialized and generated a genesis block for the execution client
|
||||
# those config files are stored in ./berachain//config
|
||||
# once the execution client is started it needs a push from the node to start syncing but then syncs p2p
|
||||
# if you restart the beacon node while the execution client is syncing the beacon node will crash loop until sync is done
|
||||
|
||||
# delete and resync:
|
||||
|
||||
# rm -rf berachain/mainnet/config/* && rm -rf /var/lib/docker/volumes/rpc_berachain-mainnet-reth-archive-trace*/_data/* && ./force-recreate.sh berachain-mainnet-archive
|
||||
|
||||
# I also suspect that the peers will blacklist you frequently if you try more than once
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
berachain-mainnet-archive:
|
||||
image: ghcr.io/paradigmxyz/reth:${RETH_VERSION:-v1.3.4}
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${BERACHAIN_MAINNET_RETH_VERSION:-v1.3.4}
|
||||
user: root
|
||||
volumes:
|
||||
- "berachain-mainnet-reth-archive-trace:/root/.local/share/reth"
|
||||
- "/slowdisk:/slowdisk"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
- "./berachain/mainnet/config:/config"
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 9001
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10881:10881"
|
||||
- "10881:10881/udp"
|
||||
restart: unless-stopped
|
||||
- 10881:10881
|
||||
- 10881:10881/udp
|
||||
volumes:
|
||||
- ${BERACHAIN_MAINNET_RETH_ARCHIVE_TRACE_DATA:-berachain-mainnet-reth-archive-trace}:/root/.local/share/reth
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
entrypoint: ["/bin/sh", "-c", "while [ ! -f /config/eth-genesis.json ]; do sleep 1; done; exec reth node \"$@\"", "--"]
|
||||
- BOOTNODES=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.22.104.177:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.247.85:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.22.73.21:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.37.55:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@35.247.182.34:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.87.9.231:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.78.49:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.240.200.36:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@34.40.14.50:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@35.246.168.217:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@34.40.28.159:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@35.234.82.236:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.86.197:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.118.187.161:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.30.190:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@34.47.60.196:30303
|
||||
entrypoint: [/bin/sh, -c, 'while [ ! -f /config/eth-genesis.json ]; do sleep 1; done; exec reth node "$@"', --]
|
||||
command:
|
||||
- --chain=/config/eth-genesis.json
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --port=10881
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --metrics=0.0.0.0:9001
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --port=10881
|
||||
- --discovery.port=10881
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --ws.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --http.corsdomain=*
|
||||
|
||||
- --rpc.max-logs-per-response=1100000
|
||||
- --rpc.gascap=600000000
|
||||
- --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.22.104.177:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.247.85:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.22.73.21:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.37.55:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@35.247.182.34:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.87.9.231:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.78.49:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.240.200.36:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@34.40.14.50:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@35.246.168.217:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@34.40.28.159:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@35.234.82.236:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.86.197:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.118.187.161:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.30.190:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@34.47.60.196:30303
|
||||
|
||||
stop_grace_period: 1m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.berachain-mainnet-reth-archive-trace-stripprefix.stripprefix.prefixes=/berachain-mainnet-archive"
|
||||
- "traefik.http.services.berachain-mainnet-reth-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.berachain-mainnet-reth-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.berachain-mainnet-reth-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.berachain-mainnet-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/berachain-mainnet-archive`)"
|
||||
- "traefik.http.routers.berachain-mainnet-reth-archive-trace.middlewares=berachain-mainnet-reth-archive-trace-stripprefix, ipwhitelist"
|
||||
|
||||
- --chain=/config/eth-genesis.json
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.berachain-mainnet-reth-archive-trace-stripprefix.stripprefix.prefixes=/berachain-mainnet-archive
|
||||
- traefik.http.services.berachain-mainnet-reth-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-mainnet-reth-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-mainnet-reth-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-mainnet-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/berachain-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.berachain-mainnet-reth-archive-trace.rule=PathPrefix(`/berachain-mainnet-archive`)}
|
||||
- traefik.http.routers.berachain-mainnet-reth-archive-trace.middlewares=berachain-mainnet-reth-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
berachain-mainnet-archive-node:
|
||||
image: ghcr.io/berachain/beacon-kit:v1.1.3
|
||||
expose:
|
||||
- 26657 #rpc
|
||||
image: ${BERACHAIN_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}:${BERACHAIN_MAINNET_BEACON_KIT_VERSION:-v1.1.3}
|
||||
ports:
|
||||
- "15881:15881"
|
||||
- "15881:15881/udp"
|
||||
- 15881:15881
|
||||
- 15881:15881/udp
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "MONIKER=d${DOMAIN:-local}"
|
||||
- "P2P_PORT=15881"
|
||||
- "CHAINNAME=mainnet"
|
||||
- "CHAINID=80094"
|
||||
- "AUTH_RPC=http://berachain-mainnet-archive:8551"
|
||||
- "CHAIN_SPEC=mainnet"
|
||||
entrypoint: [ "sh", "/init.sh" ]
|
||||
- MONIKER=d${DOMAIN:-local}
|
||||
- P2P_PORT=15881
|
||||
- AUTH_RPC=http://berachain-mainnet-archive:8551
|
||||
- CHAIN_SPEC=mainnet
|
||||
- CHAINNAME=mainnet
|
||||
- CHAINID=80094
|
||||
entrypoint: [sh, /init.sh]
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "./berachain/scripts/init.sh:/init.sh"
|
||||
- "berachain-mainnet-reth-archive-trace_node:/root/.beacond/data"
|
||||
- "./berachain/mainnet/config:/root/.beacond/config"
|
||||
- ".jwtsecret:/root/.beacond/config/jwt.hex:ro"
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
|
||||
volumes:
|
||||
- ./berachain/scripts/init.sh:/init.sh
|
||||
- ${BERACHAIN_MAINNET_RETH_ARCHIVE_TRACE__NODE_DATA:-berachain-mainnet-reth-archive-trace_node}:/root/.beacond/data
|
||||
- ./berachain/mainnet/config:/root/.beacond/config
|
||||
- .jwtsecret:/root/.beacond/config/jwt.hex:ro
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
berachain-mainnet-reth-archive-trace:
|
||||
berachain-mainnet-reth-archive-trace_node:
|
||||
berachain-mainnet-reth-archive-trace:
|
||||
berachain-mainnet-reth-archive-trace_node:
|
||||
|
||||
x-upstreams:
|
||||
- chain: berachain
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
31
bor.yml
31
bor.yml
@@ -1,31 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
polygon-bor:
|
||||
image: 0xpolygon/bor:${BOR_VERSION:-2.0.0-beta}
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
volumes:
|
||||
- "polygon-bor:/datadir"
|
||||
- "/slowdisk:/slowdisk"
|
||||
expose:
|
||||
- 8545
|
||||
ports:
|
||||
- "27374:27374"
|
||||
- "27374:27374/udp"
|
||||
command: server --datadir=/datadir --db.engine=pebble --state.scheme=path --bor.heimdall=https://polygon-heimdall-rest.publicnode.com --port=27374 --bind=0.0.0.0 --nat=extip:$IP --rpc.returndatalimit=10000000 --http --http.port=8545 --http.vhosts=* --ws --ws.port=8545 --ws.origins=* --ws.addr=0.0.0.0 --http.addr=0.0.0.0 --maxpeers=200 --ws.api=eth,net,web3,txpool,bor --http.api=admin,eth,net,web3,txpool,bor --maxpeers=200 --rpc.txfeecap=0 --discovery.dns=enrtree://AKUEZKN7PSKVNR65FZDHECMKOJQSGPARGTPPBI7WS2VUL4EGR6XPC@pos.polygon-peers.io
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.polygon-bor-stripprefix.stripprefix.prefixes=/polygon"
|
||||
- "traefik.http.services.polygon-bor.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.polygon-bor.entrypoints=websecure"
|
||||
- "traefik.http.routers.polygon-bor.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.polygon-bor.rule=Host(`$DOMAIN`) && PathPrefix(`/polygon`)"
|
||||
- "traefik.http.routers.polygon-bor.middlewares=polygon-bor-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
polygon-bor:
|
||||
@@ -1,59 +1,105 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
bsc-chapel:
|
||||
image: ghcr.io/bnb-chain/bsc:${BSC_VERSION:-1.5.8}
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_CHAPEL_BSC_VERSION:-v1.4.10}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10759:10759"
|
||||
- "10759:10759/udp"
|
||||
expose:
|
||||
- "8545"
|
||||
volumes:
|
||||
- bsc-chapel-bsc-pruned-pebble-path:/bsc/.ethereum
|
||||
- 10759:10759
|
||||
- 10759:10759/udp
|
||||
volumes:
|
||||
- ${BSC_CHAPEL_BSC_PRUNED_PEBBLE_PATH_DATA:-bsc-chapel-bsc-pruned-pebble-path}:/bsc/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
- ./bsc-testnet/config:/config
|
||||
entrypoint: [ "geth" ]
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --chapel
|
||||
- --config=/config/config.toml
|
||||
- --datadir=/bsc/.ethereum
|
||||
- --port=10759
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,parlia
|
||||
- --ws.api=eth,net,web3,txpool,debug,admin,parlia
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=pebble
|
||||
- --state.scheme=path
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
- --rpc.gascap=600000000
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.api=eth,net,web3,txpool,parlia,debug,admin
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.api=net,web3,eth,debug
|
||||
- --maxpeers=200
|
||||
- --nodiscover=false
|
||||
- --discovery.port=10759
|
||||
- --port=10759
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
networks:
|
||||
|
||||
- --config=/config/config.toml
|
||||
|
||||
networks:
|
||||
- chains
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.bsc-chapel-bsc-pruned-pebble-path-stripprefix.stripprefix.prefixes=/bsc-chapel"
|
||||
- "traefik.http.services.bsc-chapel-bsc-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/bsc-chapel`)"
|
||||
- "traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.middlewares=bsc-chapel-bsc-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.bsc-chapel-bsc-pruned-pebble-path-stripprefix.stripprefix.prefixes=/bsc-chapel
|
||||
- traefik.http.services.bsc-chapel-bsc-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/bsc-chapel`)}
|
||||
- ${NO_SSL:+traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.rule=PathPrefix(`/bsc-chapel`)}
|
||||
- traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.middlewares=bsc-chapel-bsc-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
bsc-chapel-bsc-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,59 +1,105 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
bsc-mainnet:
|
||||
image: ghcr.io/bnb-chain/bsc:${BSC_VERSION:-1.5.8}
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_MAINNET_BSC_VERSION:-v1.4.10}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10037:10037"
|
||||
- "10037:10037/udp"
|
||||
expose:
|
||||
- "8545"
|
||||
volumes:
|
||||
- bsc-mainnet-bsc-pruned-pebble-path:/bsc/.ethereum
|
||||
- 10037:10037
|
||||
- 10037:10037/udp
|
||||
volumes:
|
||||
- ${BSC_MAINNET_BSC_PRUNED_PEBBLE_PATH_DATA:-bsc-mainnet-bsc-pruned-pebble-path}:/bsc/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
- ./bsc/config:/config
|
||||
entrypoint: [ "geth" ]
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --mainnet
|
||||
- --config=/config/config.toml
|
||||
- --datadir=/bsc/.ethereum
|
||||
- --port=10037
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,parlia
|
||||
- --ws.api=eth,net,web3,txpool,debug,admin,parlia
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=pebble
|
||||
- --state.scheme=path
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
- --rpc.gascap=600000000
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.api=eth,net,web3,txpool,parlia,debug,admin
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.api=net,web3,eth,debug
|
||||
- --maxpeers=200
|
||||
- --nodiscover=false
|
||||
- --discovery.port=10037
|
||||
- --port=10037
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
networks:
|
||||
|
||||
- --config=/config/config.toml
|
||||
|
||||
networks:
|
||||
- chains
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.bsc-mainnet-bsc-pruned-pebble-path-stripprefix.stripprefix.prefixes=/bsc-mainnet"
|
||||
- "traefik.http.services.bsc-mainnet-bsc-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/bsc-mainnet`)"
|
||||
- "traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.middlewares=bsc-mainnet-bsc-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.bsc-mainnet-bsc-pruned-pebble-path-stripprefix.stripprefix.prefixes=/bsc-mainnet
|
||||
- traefik.http.services.bsc-mainnet-bsc-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/bsc-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.rule=PathPrefix(`/bsc-mainnet`)}
|
||||
- traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.middlewares=bsc-mainnet-bsc-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
bsc-mainnet-bsc-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,59 +1,87 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
core-buffalo:
|
||||
image: ghcr.io/coredao-org/core-chain:1.0.15
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
image: ${CORE_CORE_IMAGE:-ghcr.io/coredao-org/core-chain}:${CORE_BUFFALO_CORE_VERSION:-1.0.15}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10384:10384"
|
||||
- "10384:10384/udp"
|
||||
expose:
|
||||
- "8545"
|
||||
volumes:
|
||||
- core-buffalo-core-pruned-pebble-path:/core/.ethereum
|
||||
- 10384:10384
|
||||
- 10384:10384/udp
|
||||
volumes:
|
||||
- ${CORE_BUFFALO_CORE_PRUNED_PEBBLE_PATH_DATA:-core-buffalo-core-pruned-pebble-path}:/core/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
- ./core-chain/testnet:/config
|
||||
entrypoint: [ "geth" ]
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --buffalo
|
||||
- --config=/config/config.toml
|
||||
- --db.engine=pebble
|
||||
- --state.scheme=path
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
- --rpc.gascap=600000000
|
||||
- --datadir=/core/.ethereum
|
||||
- --port=10384
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.api=net,web3,eth,debug
|
||||
- --maxpeers=200
|
||||
- --nodiscover=false
|
||||
- --discovery.port=10384
|
||||
- --port=10384
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
networks:
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
- --ws.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=
|
||||
- --state.scheme=
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
|
||||
- --config=/config/config.toml
|
||||
|
||||
networks:
|
||||
- chains
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.core-buffalo-core-pruned-pebble-path-stripprefix.stripprefix.prefixes=/core-buffalo"
|
||||
- "traefik.http.services.core-buffalo-core-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.core-buffalo-core-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.core-buffalo-core-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.core-buffalo-core-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/core-buffalo`)"
|
||||
- "traefik.http.routers.core-buffalo-core-pruned-pebble-path.middlewares=core-buffalo-core-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.core-buffalo-core-pruned-pebble-path-stripprefix.stripprefix.prefixes=/core-buffalo
|
||||
- traefik.http.services.core-buffalo-core-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.core-buffalo-core-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.core-buffalo-core-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.core-buffalo-core-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/core-buffalo`)}
|
||||
- ${NO_SSL:+traefik.http.routers.core-buffalo-core-pruned-pebble-path.rule=PathPrefix(`/core-buffalo`)}
|
||||
- traefik.http.routers.core-buffalo-core-pruned-pebble-path.middlewares=core-buffalo-core-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
core-buffalo-core-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain: core-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,59 +1,87 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
core-mainnet-archive:
|
||||
image: ghcr.io/coredao-org/core-chain:1.0.15
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
image: ${CORE_CORE_IMAGE:-ghcr.io/coredao-org/core-chain}:${CORE_MAINNET_CORE_VERSION:-1.0.15}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10234:10234"
|
||||
- "10234:10234/udp"
|
||||
expose:
|
||||
- "8545"
|
||||
volumes:
|
||||
- core-mainnet-core-archive-leveldb-hash:/core/.ethereum
|
||||
- 10169:10169
|
||||
- 10169:10169/udp
|
||||
volumes:
|
||||
- ${CORE_MAINNET_CORE_ARCHIVE_LEVELDB_HASH_DATA:-core-mainnet-core-archive-leveldb-hash}:/core/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
- ./core-chain/mainnet:/config
|
||||
entrypoint: [ "geth" ]
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --mainnet
|
||||
- --config=/config/config.toml
|
||||
- --db.engine=leveldb
|
||||
- --state.scheme=hash
|
||||
- --syncmode=full
|
||||
- --gcmode=archive
|
||||
- --rpc.gascap=600000000
|
||||
- --datadir=/core/.ethereum
|
||||
- --port=10169
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.api=net,web3,eth,debug
|
||||
- --maxpeers=200
|
||||
- --nodiscover=false
|
||||
- --discovery.port=10234
|
||||
- --port=10234
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
networks:
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
- --ws.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=
|
||||
- --state.scheme=
|
||||
- --syncmode=full
|
||||
- --gcmode=archive
|
||||
|
||||
- --config=/config/config.toml
|
||||
|
||||
networks:
|
||||
- chains
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.core-mainnet-core-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/core-mainnet-archive"
|
||||
- "traefik.http.services.core-mainnet-core-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.core-mainnet-core-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.core-mainnet-core-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.core-mainnet-core-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/core-mainnet-archive`)"
|
||||
- "traefik.http.routers.core-mainnet-core-archive-leveldb-hash.middlewares=core-mainnet-core-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.core-mainnet-core-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/core-mainnet-archive
|
||||
- traefik.http.services.core-mainnet-core-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.core-mainnet-core-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.core-mainnet-core-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.core-mainnet-core-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/core-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.core-mainnet-core-archive-leveldb-hash.rule=PathPrefix(`/core-mainnet-archive`)}
|
||||
- traefik.http.routers.core-mainnet-core-archive-leveldb-hash.middlewares=core-mainnet-core-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
core-mainnet-core-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: core
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,59 +1,87 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
core-mainnet:
|
||||
image: ghcr.io/coredao-org/core-chain:1.0.15
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
image: ${CORE_CORE_IMAGE:-ghcr.io/coredao-org/core-chain}:${CORE_MAINNET_CORE_VERSION:-1.0.15}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10169:10169"
|
||||
- "10169:10169/udp"
|
||||
expose:
|
||||
- "8545"
|
||||
volumes:
|
||||
- core-mainnet-core-pruned-leveldb-hash:/core/.ethereum
|
||||
- 10169:10169
|
||||
- 10169:10169/udp
|
||||
volumes:
|
||||
- ${CORE_MAINNET_CORE_PRUNED_LEVELDB_HASH_DATA:-core-mainnet-core-pruned-leveldb-hash}:/core/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
- ./core-chain/mainnet:/config
|
||||
entrypoint: [ "geth" ]
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --mainnet
|
||||
- --config=/config/config.toml
|
||||
- --db.engine=leveldb
|
||||
- --state.scheme=hash
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
- --rpc.gascap=600000000
|
||||
- --datadir=/core/.ethereum
|
||||
- --port=10169
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.api=net,web3,eth,debug
|
||||
- --maxpeers=200
|
||||
- --nodiscover=false
|
||||
- --discovery.port=10169
|
||||
- --port=10169
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
networks:
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
- --ws.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=
|
||||
- --state.scheme=
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
|
||||
- --config=/config/config.toml
|
||||
|
||||
networks:
|
||||
- chains
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.core-mainnet-core-pruned-leveldb-hash-stripprefix.stripprefix.prefixes=/core-mainnet"
|
||||
- "traefik.http.services.core-mainnet-core-pruned-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/core-mainnet`)"
|
||||
- "traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.middlewares=core-mainnet-core-pruned-leveldb-hash-stripprefix, ipwhitelist"
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.core-mainnet-core-pruned-leveldb-hash-stripprefix.stripprefix.prefixes=/core-mainnet
|
||||
- traefik.http.services.core-mainnet-core-pruned-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/core-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.rule=PathPrefix(`/core-mainnet`)}
|
||||
- traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.middlewares=core-mainnet-core-pruned-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
core-mainnet-core-pruned-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- chain: core
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,59 +1,87 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
core-pigeon:
|
||||
image: ghcr.io/coredao-org/core-chain:1.0.15
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
image: ${CORE_CORE_IMAGE:-ghcr.io/coredao-org/core-chain}:${CORE_PIGEON_CORE_VERSION:-1.0.15}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10478:10478"
|
||||
- "10478:10478/udp"
|
||||
expose:
|
||||
- "8545"
|
||||
volumes:
|
||||
- core-pigeon-core-pruned-pebble-path:/core/.ethereum
|
||||
- 10478:10478
|
||||
- 10478:10478/udp
|
||||
volumes:
|
||||
- ${CORE_PIGEON_CORE_PRUNED_PEBBLE_PATH_DATA:-core-pigeon-core-pruned-pebble-path}:/core/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
- ./core-chain/testnet2:/config
|
||||
entrypoint: [ "geth" ]
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --pigeon
|
||||
- --config=/config/config.toml
|
||||
- --db.engine=pebble
|
||||
- --state.scheme=path
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
- --rpc.gascap=600000000
|
||||
- --datadir=/core/.ethereum
|
||||
- --port=10478
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.api=net,web3,eth,debug
|
||||
- --maxpeers=200
|
||||
- --nodiscover=false
|
||||
- --discovery.port=10478
|
||||
- --port=10478
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
networks:
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
- --ws.api=eth,net,web3,txpool,debug,admin,satoshi
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=
|
||||
- --state.scheme=
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
|
||||
- --config=/config/config.toml
|
||||
|
||||
networks:
|
||||
- chains
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.core-pigeon-core-pruned-pebble-path-stripprefix.stripprefix.prefixes=/core-pigeon"
|
||||
- "traefik.http.services.core-pigeon-core-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.core-pigeon-core-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.core-pigeon-core-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.core-pigeon-core-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/core-pigeon`)"
|
||||
- "traefik.http.routers.core-pigeon-core-pruned-pebble-path.middlewares=core-pigeon-core-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.core-pigeon-core-pruned-pebble-path-stripprefix.stripprefix.prefixes=/core-pigeon
|
||||
- traefik.http.services.core-pigeon-core-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.core-pigeon-core-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.core-pigeon-core-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.core-pigeon-core-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/core-pigeon`)}
|
||||
- ${NO_SSL:+traefik.http.routers.core-pigeon-core-pruned-pebble-path.rule=PathPrefix(`/core-pigeon`)}
|
||||
- traefik.http.routers.core-pigeon-core-pruned-pebble-path.middlewares=core-pigeon-core-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
core-pigeon-core-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- chain: core-pigeon
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,105 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
erigon-sepolia:
|
||||
image: erigontech/erigon:${ERIGON2_VERSION:-v2.61.1}
|
||||
user: root
|
||||
expose:
|
||||
- "31337"
|
||||
- "9090"
|
||||
- "8545"
|
||||
- "8551"
|
||||
ports:
|
||||
- "31337:31337"
|
||||
- "31337:31337/udp"
|
||||
volumes:
|
||||
- erigon-sepolia:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
- .jwtsecret:/jwtsecret
|
||||
networks:
|
||||
- chains
|
||||
command: >
|
||||
--chain sepolia
|
||||
--port=31337
|
||||
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060
|
||||
--private.api.addr=0.0.0.0:9090
|
||||
--torrent.upload.rate="1250mb"
|
||||
--torrent.download.rate="1250mb"
|
||||
--nat=stun
|
||||
--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=1100000
|
||||
--rpc.gascap=5000000000
|
||||
--ws.port=8545
|
||||
--ws
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
labels:
|
||||
- "prometheus-scrape.enabled=true"
|
||||
- "prometheus-scrape.port=6060"
|
||||
- "prometheus-scrape.job_name=erigon"
|
||||
- "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.erigon-sepolia-stripprefix.stripprefix.prefixes=/sepolia-erigon"
|
||||
|
||||
- "traefik.http.services.erigon-sepolia.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.erigon-sepolia.entrypoints=websecure"
|
||||
- "traefik.http.routers.erigon-sepolia.service=erigon-sepolia"
|
||||
- "traefik.http.routers.erigon-sepolia.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.erigon-sepolia.rule=Host(`$DOMAIN`) && PathPrefix(`/sepolia-erigon`)"
|
||||
- "traefik.http.routers.erigon-sepolia.middlewares=erigon-sepolia-stripprefix, ipwhitelist"
|
||||
|
||||
- "traefik.http.services.erigon-sepolia-beacon.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.erigon-sepolia-beacon.entrypoints=websecure"
|
||||
- "traefik.http.routers.erigon-sepolia-beacon.service=erigon-sepolia-beacon"
|
||||
- "traefik.http.routers.erigon-sepolia-beacon.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.erigon-sepolia-beacon.rule=Host(`$DOMAIN`) && PathPrefix(`/sepolia-erigon/eth`)"
|
||||
- "traefik.http.routers.erigon-sepolia-beacon.middlewares=erigon-sepolia-stripprefix, ipwhitelist"
|
||||
|
||||
|
||||
prysm-erigon-sepolia:
|
||||
image: prysmaticlabs/prysm-beacon-chain:v5.3.0
|
||||
ports:
|
||||
#- "127.0.0.1:3500:3500"
|
||||
- "13000:13000"
|
||||
- "12000:12000/udp"
|
||||
command:
|
||||
[
|
||||
"--datadir=/data",
|
||||
"--sepolia",
|
||||
"--jwt-secret=/jwtsecret",
|
||||
"--rpc-host=0.0.0.0",
|
||||
"--grpc-gateway-host=0.0.0.0",
|
||||
"--monitoring-host=0.0.0.0",
|
||||
"--checkpoint-sync-url=https://beaconstate-sepolia.chainsafe.io",
|
||||
"--execution-endpoint=http://erigon-sepolia:8551",
|
||||
"--accept-terms-of-use"
|
||||
]
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "prysm-erigon-sepolia:/data"
|
||||
- ".jwtsecret:/jwtsecret"
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.prysm-erigon-sepolia-stripprefix.stripprefix.prefixes=/prysm-erigon-sepolia"
|
||||
- "traefik.http.services.prysm-erigon-sepolia.loadbalancer.server.port=3500"
|
||||
- "traefik.http.routers.prysm-erigon-sepolia.entrypoints=websecure"
|
||||
- "traefik.http.routers.prysm-erigon-sepolia.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.prysm-erigon-sepolia.rule=Host(`$DOMAIN`) && PathPrefix(`/prysm-erigon-sepolia`)"
|
||||
- "traefik.http.routers.prysm-erigon-sepolia.middlewares=prysm-erigon-sepolia-stripprefix, ipwhitelist"
|
||||
|
||||
|
||||
volumes:
|
||||
erigon-sepolia:
|
||||
prysm-erigon-sepolia:
|
||||
87
erigon.yml
87
erigon.yml
@@ -1,87 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
erigon-mainnet:
|
||||
image: thorax/erigon:v2.42.0
|
||||
expose:
|
||||
- "16630"
|
||||
- "9090"
|
||||
- "8545"
|
||||
- "8551"
|
||||
ports:
|
||||
- "16630:16630"
|
||||
- "16630:16630/udp"
|
||||
volumes:
|
||||
- erigon-mainnet:/home/erigon/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret
|
||||
networks:
|
||||
- chains
|
||||
command: >
|
||||
--chain mainnet
|
||||
--snapshots=false
|
||||
--externalcl
|
||||
--port=16630
|
||||
--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=1100000
|
||||
--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"
|
||||
- "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.erigon-mainnet-stripprefix.stripprefix.prefixes=/erigon"
|
||||
- "traefik.http.services.erigon-mainnet.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.erigon-mainnet.entrypoints=websecure"
|
||||
- "traefik.http.routers.erigon-mainnet.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.erigon-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/erigon`)"
|
||||
- "traefik.http.routers.erigon-mainnet.middlewares=erigon-mainnet-stripprefix, ipwhitelist"
|
||||
|
||||
lighthouse-mainnet:
|
||||
image: sigp/lighthouse:v4.0.1-modern
|
||||
ports:
|
||||
- "18719:18719"
|
||||
- "18719:18719/udp"
|
||||
- "127.0.0.1:5052:5052"
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
- lighthouse-mainnet_data:/root/.lighthouse
|
||||
command: >
|
||||
lighthouse beacon_node
|
||||
--eth1-endpoints http://erigon-mainnet:8545
|
||||
--execution-endpoint http://erigon-mainnet:8551
|
||||
--execution-jwt /jwtsecret
|
||||
--checkpoint-sync-url https://sync.invis.tools
|
||||
--http
|
||||
--http-address 0.0.0.0
|
||||
--port 18719
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
networks:
|
||||
- chains
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.lighthouse-mainnet-stripprefix.stripprefix.prefixes=/lighthouse-mainnet"
|
||||
- "traefik.http.services.lighthouse-mainnet.loadbalancer.server.port=5052"
|
||||
- "traefik.http.routers.lighthouse-mainnet.entrypoints=websecure"
|
||||
- "traefik.http.routers.lighthouse-mainnet.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.lighthouse-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/lighthouse-mainnet`)"
|
||||
- "traefik.http.routers.lighthouse-mainnet.middlewares=lighthouse-mainnet-stripprefix, ipwhitelist"
|
||||
|
||||
volumes:
|
||||
erigon-mainnet:
|
||||
lighthouse-mainnet_data:
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-holesky-archive:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_HOLESKY_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10947:10947"
|
||||
- "10947:10947/udp"
|
||||
- "25947:25947"
|
||||
- "25947:25947/udp"
|
||||
- "30947:30947"
|
||||
- "30947:30947/udp"
|
||||
- "15947:15947"
|
||||
- "15947:15947/udp"
|
||||
- "20947:20947"
|
||||
- "20947:20947/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10947:10947
|
||||
- 10947:10947/udp
|
||||
- 30947:30947
|
||||
- 30947:30947/udp
|
||||
- 35947:35947
|
||||
- 35947:35947/udp
|
||||
- 15947:15947
|
||||
- 15947:15947/udp
|
||||
- 25947:25947
|
||||
- 25947:25947/udp
|
||||
volumes:
|
||||
- ethereum-holesky-erigon3-archive-trace:/root/.local/share/erigon
|
||||
- ${ETHEREUM_HOLESKY_ERIGON3_ARCHIVE_TRACE_DATA:-ethereum-holesky-erigon3-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10947
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30947
|
||||
- --p2p.allowed-ports=35947
|
||||
- --chain=holesky
|
||||
|
||||
- --torrent.port=25947
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=holesky
|
||||
|
||||
- --prune.mode=archive
|
||||
- --port=10947
|
||||
- --p2p.allowed-ports=25947
|
||||
- --p2p.allowed-ports=30947
|
||||
- --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=20947
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15947
|
||||
- --caplin.discovery.tcpport=15947
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-holesky-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-archive"
|
||||
- "traefik.http.services.ethereum-holesky-erigon3-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-archive`)"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.middlewares=ethereum-holesky-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.service=ethereum-holesky-erigon3-archive-trace"
|
||||
|
||||
- "traefik.http.services.ethereum-holesky-erigon3-archive-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.service=ethereum-holesky-erigon3-archive-trace-node"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-archive/eth`)"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.middlewares=ethereum-holesky-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-holesky-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-archive
|
||||
- traefik.http.services.ethereum-holesky-erigon3-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-archive-trace.rule=PathPrefix(`/ethereum-holesky-archive`)}
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-archive-trace.middlewares=ethereum-holesky-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-archive-trace.service=ethereum-holesky-erigon3-archive-trace
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.service=ethereum-holesky-erigon3-archive-trace-node
|
||||
- traefik.http.services.ethereum-holesky-erigon3-archive-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-archive/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.rule=PathPrefix(`/ethereum-holesky-archive/eth`)}
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.middlewares=ethereum-holesky-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
ethereum-holesky-erigon3-archive-trace:
|
||||
ethereum-holesky-erigon3-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: holesky
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-holesky-minimal:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_HOLESKY_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10582:10582"
|
||||
- "10582:10582/udp"
|
||||
- "25582:25582"
|
||||
- "25582:25582/udp"
|
||||
- "30582:30582"
|
||||
- "30582:30582/udp"
|
||||
- "15582:15582"
|
||||
- "15582:15582/udp"
|
||||
- "20582:20582"
|
||||
- "20582:20582/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10947:10947
|
||||
- 10947:10947/udp
|
||||
- 30947:30947
|
||||
- 30947:30947/udp
|
||||
- 35947:35947
|
||||
- 35947:35947/udp
|
||||
- 15947:15947
|
||||
- 15947:15947/udp
|
||||
- 25947:25947
|
||||
- 25947:25947/udp
|
||||
volumes:
|
||||
- ethereum-holesky-erigon3-minimal-trace:/root/.local/share/erigon
|
||||
- ${ETHEREUM_HOLESKY_ERIGON3_MINIMAL_TRACE_DATA:-ethereum-holesky-erigon3-minimal-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10947
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30947
|
||||
- --p2p.allowed-ports=35947
|
||||
- --chain=holesky
|
||||
|
||||
- --torrent.port=25947
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=holesky
|
||||
|
||||
- --prune.mode=minimal
|
||||
- --port=10582
|
||||
- --p2p.allowed-ports=25582
|
||||
- --p2p.allowed-ports=30582
|
||||
- --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=20582
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15582
|
||||
- --caplin.discovery.tcpport=15582
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-holesky-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-minimal"
|
||||
- "traefik.http.services.ethereum-holesky-erigon3-minimal-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-minimal`)"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.middlewares=ethereum-holesky-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.service=ethereum-holesky-erigon3-minimal-trace"
|
||||
|
||||
- "traefik.http.services.ethereum-holesky-erigon3-minimal-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.service=ethereum-holesky-erigon3-minimal-trace-node"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-minimal/eth`)"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.middlewares=ethereum-holesky-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-holesky-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-minimal
|
||||
- traefik.http.services.ethereum-holesky-erigon3-minimal-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-minimal`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.rule=PathPrefix(`/ethereum-holesky-minimal`)}
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.middlewares=ethereum-holesky-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.service=ethereum-holesky-erigon3-minimal-trace
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.service=ethereum-holesky-erigon3-minimal-trace-node
|
||||
- traefik.http.services.ethereum-holesky-erigon3-minimal-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-minimal/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.rule=PathPrefix(`/ethereum-holesky-minimal/eth`)}
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.middlewares=ethereum-holesky-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
ethereum-holesky-erigon3-minimal-trace:
|
||||
ethereum-holesky-erigon3-minimal-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: holesky
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-holesky:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_HOLESKY_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10685:10685"
|
||||
- "10685:10685/udp"
|
||||
- "25685:25685"
|
||||
- "25685:25685/udp"
|
||||
- "30685:30685"
|
||||
- "30685:30685/udp"
|
||||
- "15685:15685"
|
||||
- "15685:15685/udp"
|
||||
- "20685:20685"
|
||||
- "20685:20685/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10947:10947
|
||||
- 10947:10947/udp
|
||||
- 30947:30947
|
||||
- 30947:30947/udp
|
||||
- 35947:35947
|
||||
- 35947:35947/udp
|
||||
- 15947:15947
|
||||
- 15947:15947/udp
|
||||
- 25947:25947
|
||||
- 25947:25947/udp
|
||||
volumes:
|
||||
- ethereum-holesky-erigon3-pruned-trace:/root/.local/share/erigon
|
||||
- ${ETHEREUM_HOLESKY_ERIGON3_PRUNED_TRACE_DATA:-ethereum-holesky-erigon3-pruned-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10947
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30947
|
||||
- --p2p.allowed-ports=35947
|
||||
- --chain=holesky
|
||||
|
||||
- --torrent.port=25947
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=holesky
|
||||
|
||||
- --prune.mode=full
|
||||
- --port=10685
|
||||
- --p2p.allowed-ports=25685
|
||||
- --p2p.allowed-ports=30685
|
||||
- --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=20685
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15685
|
||||
- --caplin.discovery.tcpport=15685
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-holesky-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky"
|
||||
- "traefik.http.services.ethereum-holesky-erigon3-pruned-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky`)"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.middlewares=ethereum-holesky-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.service=ethereum-holesky-erigon3-pruned-trace"
|
||||
|
||||
- "traefik.http.services.ethereum-holesky-erigon3-pruned-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.service=ethereum-holesky-erigon3-pruned-trace-node"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky/eth`)"
|
||||
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.middlewares=ethereum-holesky-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-holesky-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky
|
||||
- traefik.http.services.ethereum-holesky-erigon3-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.rule=PathPrefix(`/ethereum-holesky`)}
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.middlewares=ethereum-holesky-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.service=ethereum-holesky-erigon3-pruned-trace
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.service=ethereum-holesky-erigon3-pruned-trace-node
|
||||
- traefik.http.services.ethereum-holesky-erigon3-pruned-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.rule=PathPrefix(`/ethereum-holesky/eth`)}
|
||||
- traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.middlewares=ethereum-holesky-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
ethereum-holesky-erigon3-pruned-trace:
|
||||
ethereum-holesky-erigon3-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: holesky
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-mainnet-archive:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10675:10675"
|
||||
- "10675:10675/udp"
|
||||
- "25675:25675"
|
||||
- "25675:25675/udp"
|
||||
- "30675:30675"
|
||||
- "30675:30675/udp"
|
||||
- "15675:15675"
|
||||
- "15675:15675/udp"
|
||||
- "20675:20675"
|
||||
- "20675:20675/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10675:10675
|
||||
- 10675:10675/udp
|
||||
- 30675:30675
|
||||
- 30675:30675/udp
|
||||
- 35675:35675
|
||||
- 35675:35675/udp
|
||||
- 15675:15675
|
||||
- 15675:15675/udp
|
||||
- 25675:25675
|
||||
- 25675:25675/udp
|
||||
volumes:
|
||||
- ethereum-mainnet-erigon3-archive-trace:/root/.local/share/erigon
|
||||
- ${ETHEREUM_MAINNET_ERIGON3_ARCHIVE_TRACE_DATA:-ethereum-mainnet-erigon3-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10675
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30675
|
||||
- --p2p.allowed-ports=35675
|
||||
- --chain=mainnet
|
||||
|
||||
- --torrent.port=25675
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=mainnet
|
||||
|
||||
- --prune.mode=archive
|
||||
- --port=10675
|
||||
- --p2p.allowed-ports=25675
|
||||
- --p2p.allowed-ports=30675
|
||||
- --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=20675
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15675
|
||||
- --caplin.discovery.tcpport=15675
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet-archive"
|
||||
- "traefik.http.services.ethereum-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-archive`)"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.middlewares=ethereum-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.service=ethereum-mainnet-erigon3-archive-trace"
|
||||
|
||||
- "traefik.http.services.ethereum-mainnet-erigon3-archive-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.service=ethereum-mainnet-erigon3-archive-trace-node"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-archive/eth`)"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.middlewares=ethereum-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet-archive
|
||||
- traefik.http.services.ethereum-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.rule=PathPrefix(`/ethereum-mainnet-archive`)}
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.middlewares=ethereum-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.service=ethereum-mainnet-erigon3-archive-trace
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.service=ethereum-mainnet-erigon3-archive-trace-node
|
||||
- traefik.http.services.ethereum-mainnet-erigon3-archive-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-archive/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.rule=PathPrefix(`/ethereum-mainnet-archive/eth`)}
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.middlewares=ethereum-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
ethereum-mainnet-erigon3-archive-trace:
|
||||
ethereum-mainnet-erigon3-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: ethereum
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-mainnet-minimal:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10614:10614"
|
||||
- "10614:10614/udp"
|
||||
- "25614:25614"
|
||||
- "25614:25614/udp"
|
||||
- "30614:30614"
|
||||
- "30614:30614/udp"
|
||||
- "15614:15614"
|
||||
- "15614:15614/udp"
|
||||
- "20614:20614"
|
||||
- "20614:20614/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10675:10675
|
||||
- 10675:10675/udp
|
||||
- 30675:30675
|
||||
- 30675:30675/udp
|
||||
- 35675:35675
|
||||
- 35675:35675/udp
|
||||
- 15675:15675
|
||||
- 15675:15675/udp
|
||||
- 25675:25675
|
||||
- 25675:25675/udp
|
||||
volumes:
|
||||
- ethereum-mainnet-erigon3-minimal-trace:/root/.local/share/erigon
|
||||
- ${ETHEREUM_MAINNET_ERIGON3_MINIMAL_TRACE_DATA:-ethereum-mainnet-erigon3-minimal-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10675
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30675
|
||||
- --p2p.allowed-ports=35675
|
||||
- --chain=mainnet
|
||||
|
||||
- --torrent.port=25675
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=mainnet
|
||||
|
||||
- --prune.mode=minimal
|
||||
- --port=10614
|
||||
- --p2p.allowed-ports=25614
|
||||
- --p2p.allowed-ports=30614
|
||||
- --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=20614
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15614
|
||||
- --caplin.discovery.tcpport=15614
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet-minimal"
|
||||
- "traefik.http.services.ethereum-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-minimal`)"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.middlewares=ethereum-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.service=ethereum-mainnet-erigon3-minimal-trace"
|
||||
|
||||
- "traefik.http.services.ethereum-mainnet-erigon3-minimal-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.service=ethereum-mainnet-erigon3-minimal-trace-node"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-minimal/eth`)"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.middlewares=ethereum-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet-minimal
|
||||
- traefik.http.services.ethereum-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-minimal`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.rule=PathPrefix(`/ethereum-mainnet-minimal`)}
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.middlewares=ethereum-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.service=ethereum-mainnet-erigon3-minimal-trace
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.service=ethereum-mainnet-erigon3-minimal-trace-node
|
||||
- traefik.http.services.ethereum-mainnet-erigon3-minimal-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-minimal/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.rule=PathPrefix(`/ethereum-mainnet-minimal/eth`)}
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.middlewares=ethereum-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
ethereum-mainnet-erigon3-minimal-trace:
|
||||
ethereum-mainnet-erigon3-minimal-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: ethereum
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-mainnet:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_MAINNET_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10616:10616"
|
||||
- "10616:10616/udp"
|
||||
- "25616:25616"
|
||||
- "25616:25616/udp"
|
||||
- "30616:30616"
|
||||
- "30616:30616/udp"
|
||||
- "15616:15616"
|
||||
- "15616:15616/udp"
|
||||
- "20616:20616"
|
||||
- "20616:20616/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10675:10675
|
||||
- 10675:10675/udp
|
||||
- 30675:30675
|
||||
- 30675:30675/udp
|
||||
- 35675:35675
|
||||
- 35675:35675/udp
|
||||
- 15675:15675
|
||||
- 15675:15675/udp
|
||||
- 25675:25675
|
||||
- 25675:25675/udp
|
||||
volumes:
|
||||
- ethereum-mainnet-erigon3-pruned-trace:/root/.local/share/erigon
|
||||
- ${ETHEREUM_MAINNET_ERIGON3_PRUNED_TRACE_DATA:-ethereum-mainnet-erigon3-pruned-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10675
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30675
|
||||
- --p2p.allowed-ports=35675
|
||||
- --chain=mainnet
|
||||
|
||||
- --torrent.port=25675
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=mainnet
|
||||
|
||||
- --prune.mode=full
|
||||
- --port=10616
|
||||
- --p2p.allowed-ports=25616
|
||||
- --p2p.allowed-ports=30616
|
||||
- --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=20616
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15616
|
||||
- --caplin.discovery.tcpport=15616
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet"
|
||||
- "traefik.http.services.ethereum-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet`)"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.middlewares=ethereum-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.service=ethereum-mainnet-erigon3-pruned-trace"
|
||||
|
||||
- "traefik.http.services.ethereum-mainnet-erigon3-pruned-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.service=ethereum-mainnet-erigon3-pruned-trace-node"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet/eth`)"
|
||||
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.middlewares=ethereum-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet
|
||||
- traefik.http.services.ethereum-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.rule=PathPrefix(`/ethereum-mainnet`)}
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.middlewares=ethereum-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.service=ethereum-mainnet-erigon3-pruned-trace
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.service=ethereum-mainnet-erigon3-pruned-trace-node
|
||||
- traefik.http.services.ethereum-mainnet-erigon3-pruned-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.rule=PathPrefix(`/ethereum-mainnet/eth`)}
|
||||
- traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.middlewares=ethereum-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
ethereum-mainnet-erigon3-pruned-trace:
|
||||
ethereum-mainnet-erigon3-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: ethereum
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-sepolia-archive:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_SEPOLIA_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10317:10317"
|
||||
- "10317:10317/udp"
|
||||
- "25317:25317"
|
||||
- "25317:25317/udp"
|
||||
- "30317:30317"
|
||||
- "30317:30317/udp"
|
||||
- "15317:15317"
|
||||
- "15317:15317/udp"
|
||||
- "20317:20317"
|
||||
- "20317:20317/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10317:10317
|
||||
- 10317:10317/udp
|
||||
- 30317:30317
|
||||
- 30317:30317/udp
|
||||
- 35317:35317
|
||||
- 35317:35317/udp
|
||||
- 15317:15317
|
||||
- 15317:15317/udp
|
||||
- 25317:25317
|
||||
- 25317:25317/udp
|
||||
volumes:
|
||||
- ethereum-sepolia-erigon3-archive-trace:/root/.local/share/erigon
|
||||
- ${ETHEREUM_SEPOLIA_ERIGON3_ARCHIVE_TRACE_DATA:-ethereum-sepolia-erigon3-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10317
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30317
|
||||
- --p2p.allowed-ports=35317
|
||||
- --chain=sepolia
|
||||
|
||||
- --torrent.port=25317
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=sepolia
|
||||
|
||||
- --prune.mode=archive
|
||||
- --port=10317
|
||||
- --p2p.allowed-ports=25317
|
||||
- --p2p.allowed-ports=30317
|
||||
- --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=20317
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15317
|
||||
- --caplin.discovery.tcpport=15317
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-sepolia-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-archive"
|
||||
- "traefik.http.services.ethereum-sepolia-erigon3-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-archive`)"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.middlewares=ethereum-sepolia-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.service=ethereum-sepolia-erigon3-archive-trace"
|
||||
|
||||
- "traefik.http.services.ethereum-sepolia-erigon3-archive-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.service=ethereum-sepolia-erigon3-archive-trace-node"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-archive/eth`)"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.middlewares=ethereum-sepolia-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-sepolia-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-archive
|
||||
- traefik.http.services.ethereum-sepolia-erigon3-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.rule=PathPrefix(`/ethereum-sepolia-archive`)}
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.middlewares=ethereum-sepolia-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.service=ethereum-sepolia-erigon3-archive-trace
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.service=ethereum-sepolia-erigon3-archive-trace-node
|
||||
- traefik.http.services.ethereum-sepolia-erigon3-archive-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-archive/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.rule=PathPrefix(`/ethereum-sepolia-archive/eth`)}
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.middlewares=ethereum-sepolia-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
ethereum-sepolia-erigon3-archive-trace:
|
||||
ethereum-sepolia-erigon3-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-sepolia-minimal:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_SEPOLIA_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10087:10087"
|
||||
- "10087:10087/udp"
|
||||
- "25087:25087"
|
||||
- "25087:25087/udp"
|
||||
- "30087:30087"
|
||||
- "30087:30087/udp"
|
||||
- "15087:15087"
|
||||
- "15087:15087/udp"
|
||||
- "20087:20087"
|
||||
- "20087:20087/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10317:10317
|
||||
- 10317:10317/udp
|
||||
- 30317:30317
|
||||
- 30317:30317/udp
|
||||
- 35317:35317
|
||||
- 35317:35317/udp
|
||||
- 15317:15317
|
||||
- 15317:15317/udp
|
||||
- 25317:25317
|
||||
- 25317:25317/udp
|
||||
volumes:
|
||||
- ethereum-sepolia-erigon3-minimal-trace:/root/.local/share/erigon
|
||||
- ${ETHEREUM_SEPOLIA_ERIGON3_MINIMAL_TRACE_DATA:-ethereum-sepolia-erigon3-minimal-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10317
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30317
|
||||
- --p2p.allowed-ports=35317
|
||||
- --chain=sepolia
|
||||
|
||||
- --torrent.port=25317
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=sepolia
|
||||
|
||||
- --prune.mode=minimal
|
||||
- --port=10087
|
||||
- --p2p.allowed-ports=25087
|
||||
- --p2p.allowed-ports=30087
|
||||
- --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=20087
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15087
|
||||
- --caplin.discovery.tcpport=15087
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-sepolia-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-minimal"
|
||||
- "traefik.http.services.ethereum-sepolia-erigon3-minimal-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-minimal`)"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.middlewares=ethereum-sepolia-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.service=ethereum-sepolia-erigon3-minimal-trace"
|
||||
|
||||
- "traefik.http.services.ethereum-sepolia-erigon3-minimal-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.service=ethereum-sepolia-erigon3-minimal-trace-node"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-minimal/eth`)"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.middlewares=ethereum-sepolia-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-sepolia-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-minimal
|
||||
- traefik.http.services.ethereum-sepolia-erigon3-minimal-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-minimal`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.rule=PathPrefix(`/ethereum-sepolia-minimal`)}
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.middlewares=ethereum-sepolia-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.service=ethereum-sepolia-erigon3-minimal-trace
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.service=ethereum-sepolia-erigon3-minimal-trace-node
|
||||
- traefik.http.services.ethereum-sepolia-erigon3-minimal-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-minimal/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.rule=PathPrefix(`/ethereum-sepolia-minimal/eth`)}
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.middlewares=ethereum-sepolia-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
ethereum-sepolia-erigon3-minimal-trace:
|
||||
ethereum-sepolia-erigon3-minimal-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-sepolia:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${ETHEREUM_ERIGON3_IMAGE:-erigontech/erigon}:${ETHEREUM_SEPOLIA_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10930:10930"
|
||||
- "10930:10930/udp"
|
||||
- "25930:25930"
|
||||
- "25930:25930/udp"
|
||||
- "30930:30930"
|
||||
- "30930:30930/udp"
|
||||
- "15930:15930"
|
||||
- "15930:15930/udp"
|
||||
- "20930:20930"
|
||||
- "20930:20930/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10317:10317
|
||||
- 10317:10317/udp
|
||||
- 30317:30317
|
||||
- 30317:30317/udp
|
||||
- 35317:35317
|
||||
- 35317:35317/udp
|
||||
- 15317:15317
|
||||
- 15317:15317/udp
|
||||
- 25317:25317
|
||||
- 25317:25317/udp
|
||||
volumes:
|
||||
- ethereum-sepolia-erigon3-pruned-trace:/root/.local/share/erigon
|
||||
- ${ETHEREUM_SEPOLIA_ERIGON3_PRUNED_TRACE_DATA:-ethereum-sepolia-erigon3-pruned-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10317
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30317
|
||||
- --p2p.allowed-ports=35317
|
||||
- --chain=sepolia
|
||||
|
||||
- --torrent.port=25317
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=sepolia
|
||||
|
||||
- --prune.mode=full
|
||||
- --port=10930
|
||||
- --p2p.allowed-ports=25930
|
||||
- --p2p.allowed-ports=30930
|
||||
- --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=20930
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15930
|
||||
- --caplin.discovery.tcpport=15930
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-sepolia-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia"
|
||||
- "traefik.http.services.ethereum-sepolia-erigon3-pruned-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia`)"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.middlewares=ethereum-sepolia-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.service=ethereum-sepolia-erigon3-pruned-trace"
|
||||
|
||||
- "traefik.http.services.ethereum-sepolia-erigon3-pruned-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.service=ethereum-sepolia-erigon3-pruned-trace-node"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia/eth`)"
|
||||
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.middlewares=ethereum-sepolia-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-sepolia-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia
|
||||
- traefik.http.services.ethereum-sepolia-erigon3-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.rule=PathPrefix(`/ethereum-sepolia`)}
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.middlewares=ethereum-sepolia-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.service=ethereum-sepolia-erigon3-pruned-trace
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.service=ethereum-sepolia-erigon3-pruned-trace-node
|
||||
- traefik.http.services.ethereum-sepolia-erigon3-pruned-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.rule=PathPrefix(`/ethereum-sepolia/eth`)}
|
||||
- traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.middlewares=ethereum-sepolia-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
ethereum-sepolia-erigon3-pruned-trace:
|
||||
ethereum-sepolia-erigon3-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,107 +1,133 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-holesky:
|
||||
image: 'ethereum/client-go:${GETH_VERSION:-v1.15.5}'
|
||||
|
||||
image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_HOLESKY_GETH_VERSION:-v1.15.7}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
expose:
|
||||
# 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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
ports:
|
||||
- "10993:10993"
|
||||
- "10993:10993/udp"
|
||||
environment:
|
||||
- "GETH_DATADIR=/data"
|
||||
- "GETH_HOLESKY=true"
|
||||
- "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=true"
|
||||
- "GETH_HTTP_ADDR=0.0.0.0"
|
||||
- "GETH_HTTP_VHOSTS=*"
|
||||
- "GETH_WS=true"
|
||||
- "GETH_WS_ADDR=0.0.0.0"
|
||||
- "GETH_WS_ORIGINS=*"
|
||||
- "GETH_HTTP_API=eth,net,debug,admin,web3"
|
||||
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
|
||||
- "GETH_AUTHRPC_ADDR=0.0.0.0"
|
||||
- "GETH_AUTHRPC_VHOSTS=*"
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "ethereum-holesky-geth-pruned-pebble-path:/data"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
|
||||
ports:
|
||||
- 10993:10993
|
||||
- 10993:10993/udp
|
||||
volumes:
|
||||
- ${ETHEREUM_HOLESKY_GETH_PRUNED_PEBBLE_PATH_DATA:-ethereum-holesky-geth-pruned-pebble-path}:/root/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --datadir=/root/.ethereum
|
||||
- --port=10993
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,debug,admin,txpool
|
||||
- --ws.api=eth,net,web3,debug,admin,txpool
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=pebble
|
||||
- --state.scheme=path
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-holesky-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-holesky"
|
||||
- "traefik.http.services.ethereum-holesky-geth-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky`)"
|
||||
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.middlewares=ethereum-holesky-geth-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-holesky-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-holesky
|
||||
- traefik.http.services.ethereum-holesky-geth-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.rule=PathPrefix(`/ethereum-holesky`)}
|
||||
- traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.middlewares=ethereum-holesky-geth-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
ethereum-holesky-node:
|
||||
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
|
||||
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOLESKY_PRYSM_VERSION:-v5.3.1}
|
||||
ports:
|
||||
- "15993:15993"
|
||||
- "15993:15993/udp"
|
||||
- 15993:15993
|
||||
- 15993:15993/udp
|
||||
command:
|
||||
[
|
||||
"--holesky",
|
||||
"--datadir=/data",
|
||||
"--jwt-secret=/jwtsecret",
|
||||
"--rpc-host=0.0.0.0",
|
||||
"--grpc-gateway-host=0.0.0.0",
|
||||
"--monitoring-host=0.0.0.0",
|
||||
"--p2p-tcp-port=15993",
|
||||
"--p2p-udp-port=15993",
|
||||
"--checkpoint-sync-url=https://holesky.beaconstate.info",
|
||||
"--execution-endpoint=http://ethereum-holesky:8551",
|
||||
"--enable-historical-state-representation=false",
|
||||
"--beacon-db-pruning",
|
||||
"--accept-terms-of-use"
|
||||
]
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "ethereum-holesky-geth-pruned-pebble-path_prysm:/data"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
restart: unless-stopped
|
||||
- --holesky
|
||||
- --datadir=/data
|
||||
- --jwt-secret=/jwtsecret
|
||||
- --rpc-host=0.0.0.0
|
||||
- --grpc-gateway-host=0.0.0.0
|
||||
- --monitoring-host=0.0.0.0
|
||||
- --p2p-tcp-port=15993
|
||||
- --p2p-udp-port=15993
|
||||
- --checkpoint-sync-url=
|
||||
- --execution-endpoint=http://ethereum-holesky:8551
|
||||
- --enable-historical-state-representation=false
|
||||
- --beacon-db-pruning
|
||||
- --accept-terms-of-use
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ${ETHEREUM_HOLESKY_GETH_PRUNED_PEBBLE_PATH__PRYSM_DATA:-ethereum-holesky-geth-pruned-pebble-path_prysm}:/data
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ethereum-holesky-geth-pruned-pebble-path:
|
||||
ethereum-holesky-geth-pruned-pebble-path_prysm:
|
||||
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
chain: $${CHAIN}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
- chain: holesky
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
- name: txpool_content
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: "$${RPC_URL}"
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: "$${WS_URL}"
|
||||
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,107 +1,133 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-mainnet:
|
||||
image: 'ethereum/client-go:${GETH_VERSION:-v1.15.5}'
|
||||
|
||||
image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_MAINNET_GETH_VERSION:-v1.15.7}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
expose:
|
||||
# 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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
ports:
|
||||
- "10023:10023"
|
||||
- "10023:10023/udp"
|
||||
environment:
|
||||
- "GETH_DATADIR=/data"
|
||||
- "GETH_MAINNET=true"
|
||||
- "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=true"
|
||||
- "GETH_HTTP_ADDR=0.0.0.0"
|
||||
- "GETH_HTTP_VHOSTS=*"
|
||||
- "GETH_WS=true"
|
||||
- "GETH_WS_ADDR=0.0.0.0"
|
||||
- "GETH_WS_ORIGINS=*"
|
||||
- "GETH_HTTP_API=eth,net,debug,admin,web3"
|
||||
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
|
||||
- "GETH_AUTHRPC_ADDR=0.0.0.0"
|
||||
- "GETH_AUTHRPC_VHOSTS=*"
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "ethereum-mainnet-geth-pruned-pebble-path:/data"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
|
||||
ports:
|
||||
- 10023:10023
|
||||
- 10023:10023/udp
|
||||
volumes:
|
||||
- ${ETHEREUM_MAINNET_GETH_PRUNED_PEBBLE_PATH_DATA:-ethereum-mainnet-geth-pruned-pebble-path}:/root/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --datadir=/root/.ethereum
|
||||
- --port=10023
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,debug,admin,txpool
|
||||
- --ws.api=eth,net,web3,debug,admin,txpool
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=pebble
|
||||
- --state.scheme=path
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-mainnet-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-mainnet"
|
||||
- "traefik.http.services.ethereum-mainnet-geth-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet`)"
|
||||
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-mainnet-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-mainnet
|
||||
- traefik.http.services.ethereum-mainnet-geth-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.rule=PathPrefix(`/ethereum-mainnet`)}
|
||||
- traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.middlewares=ethereum-mainnet-geth-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
ethereum-mainnet-node:
|
||||
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
|
||||
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v5.3.1}
|
||||
ports:
|
||||
- "15023:15023"
|
||||
- "15023:15023/udp"
|
||||
- 15023:15023
|
||||
- 15023:15023/udp
|
||||
command:
|
||||
[
|
||||
"--mainnet",
|
||||
"--datadir=/data",
|
||||
"--jwt-secret=/jwtsecret",
|
||||
"--rpc-host=0.0.0.0",
|
||||
"--grpc-gateway-host=0.0.0.0",
|
||||
"--monitoring-host=0.0.0.0",
|
||||
"--p2p-tcp-port=15023",
|
||||
"--p2p-udp-port=15023",
|
||||
"--checkpoint-sync-url=https://sync-mainnet.beaconcha.in",
|
||||
"--execution-endpoint=http://ethereum-mainnet:8551",
|
||||
"--enable-historical-state-representation=false",
|
||||
"--beacon-db-pruning",
|
||||
"--accept-terms-of-use"
|
||||
]
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "ethereum-mainnet-geth-pruned-pebble-path_prysm:/data"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
restart: unless-stopped
|
||||
- --mainnet
|
||||
- --datadir=/data
|
||||
- --jwt-secret=/jwtsecret
|
||||
- --rpc-host=0.0.0.0
|
||||
- --grpc-gateway-host=0.0.0.0
|
||||
- --monitoring-host=0.0.0.0
|
||||
- --p2p-tcp-port=15023
|
||||
- --p2p-udp-port=15023
|
||||
- --checkpoint-sync-url=
|
||||
- --execution-endpoint=http://ethereum-mainnet:8551
|
||||
- --enable-historical-state-representation=false
|
||||
- --beacon-db-pruning
|
||||
- --accept-terms-of-use
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ${ETHEREUM_MAINNET_GETH_PRUNED_PEBBLE_PATH__PRYSM_DATA:-ethereum-mainnet-geth-pruned-pebble-path_prysm}:/data
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ethereum-mainnet-geth-pruned-pebble-path:
|
||||
ethereum-mainnet-geth-pruned-pebble-path_prysm:
|
||||
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
chain: $${CHAIN}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
- chain: ethereum
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
- name: txpool_content
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: "$${RPC_URL}"
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: "$${WS_URL}"
|
||||
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,107 +1,133 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-sepolia:
|
||||
image: 'ethereum/client-go:${GETH_VERSION:-v1.15.5}'
|
||||
|
||||
image: ${ETHEREUM_GETH_IMAGE:-ethereum/client-go}:${ETHEREUM_SEPOLIA_GETH_VERSION:-v1.15.7}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
sysctls:
|
||||
net.ipv4.tcp_slow_start_after_idle: 0
|
||||
net.ipv4.tcp_no_metrics_save: 1
|
||||
expose:
|
||||
# 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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
ports:
|
||||
- "10710:10710"
|
||||
- "10710:10710/udp"
|
||||
environment:
|
||||
- "GETH_DATADIR=/data"
|
||||
- "GETH_SEPOLIA=true"
|
||||
- "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=true"
|
||||
- "GETH_HTTP_ADDR=0.0.0.0"
|
||||
- "GETH_HTTP_VHOSTS=*"
|
||||
- "GETH_WS=true"
|
||||
- "GETH_WS_ADDR=0.0.0.0"
|
||||
- "GETH_WS_ORIGINS=*"
|
||||
- "GETH_HTTP_API=eth,net,debug,admin,web3"
|
||||
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret"
|
||||
- "GETH_AUTHRPC_ADDR=0.0.0.0"
|
||||
- "GETH_AUTHRPC_VHOSTS=*"
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "ethereum-sepolia-geth-pruned-pebble-path:/data"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
|
||||
ports:
|
||||
- 10710:10710
|
||||
- 10710:10710/udp
|
||||
volumes:
|
||||
- ${ETHEREUM_SEPOLIA_GETH_PRUNED_PEBBLE_PATH_DATA:-ethereum-sepolia-geth-pruned-pebble-path}:/root/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command:
|
||||
- --datadir=/root/.ethereum
|
||||
- --port=10710
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,net,web3,debug,admin,txpool
|
||||
- --ws.api=eth,net,web3,debug,admin,txpool
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=pebble
|
||||
- --state.scheme=path
|
||||
- --syncmode=snap
|
||||
- --gcmode=full
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-sepolia-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-sepolia"
|
||||
- "traefik.http.services.ethereum-sepolia-geth-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia`)"
|
||||
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.middlewares=ethereum-sepolia-geth-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-sepolia-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-sepolia
|
||||
- traefik.http.services.ethereum-sepolia-geth-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.rule=PathPrefix(`/ethereum-sepolia`)}
|
||||
- traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.middlewares=ethereum-sepolia-geth-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
ethereum-sepolia-node:
|
||||
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
|
||||
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v5.3.1}
|
||||
ports:
|
||||
- "15710:15710"
|
||||
- "15710:15710/udp"
|
||||
- 15710:15710
|
||||
- 15710:15710/udp
|
||||
command:
|
||||
[
|
||||
"--sepolia",
|
||||
"--datadir=/data",
|
||||
"--jwt-secret=/jwtsecret",
|
||||
"--rpc-host=0.0.0.0",
|
||||
"--grpc-gateway-host=0.0.0.0",
|
||||
"--monitoring-host=0.0.0.0",
|
||||
"--p2p-tcp-port=15710",
|
||||
"--p2p-udp-port=15710",
|
||||
"--checkpoint-sync-url=https://sepolia.beaconstate.info",
|
||||
"--execution-endpoint=http://ethereum-sepolia:8551",
|
||||
"--enable-historical-state-representation=false",
|
||||
"--beacon-db-pruning",
|
||||
"--accept-terms-of-use"
|
||||
]
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "ethereum-sepolia-geth-pruned-pebble-path_prysm:/data"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
restart: unless-stopped
|
||||
- --sepolia
|
||||
- --datadir=/data
|
||||
- --jwt-secret=/jwtsecret
|
||||
- --rpc-host=0.0.0.0
|
||||
- --grpc-gateway-host=0.0.0.0
|
||||
- --monitoring-host=0.0.0.0
|
||||
- --p2p-tcp-port=15710
|
||||
- --p2p-udp-port=15710
|
||||
- --checkpoint-sync-url=
|
||||
- --execution-endpoint=http://ethereum-sepolia:8551
|
||||
- --enable-historical-state-representation=false
|
||||
- --beacon-db-pruning
|
||||
- --accept-terms-of-use
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ${ETHEREUM_SEPOLIA_GETH_PRUNED_PEBBLE_PATH__PRYSM_DATA:-ethereum-sepolia-geth-pruned-pebble-path_prysm}:/data
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ethereum-sepolia-geth-pruned-pebble-path:
|
||||
ethereum-sepolia-geth-pruned-pebble-path_prysm:
|
||||
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
chain: $${CHAIN}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
- chain: sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
- name: txpool_content
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: "$${RPC_URL}"
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: "$${WS_URL}"
|
||||
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,79 +1,113 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-holesky-archive:
|
||||
image: ghcr.io/paradigmxyz/reth:${RETH_VERSION:-v1.3.4}
|
||||
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_HOLESKY_RETH_VERSION:-v1.3.4}
|
||||
user: root
|
||||
volumes:
|
||||
- "ethereum-holesky-reth-archive-trace:/root/.local/share/reth/holesky"
|
||||
- "/slowdisk:/slowdisk"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 9001
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10752:10752"
|
||||
- "10752:10752/udp"
|
||||
restart: unless-stopped
|
||||
entrypoint: ["reth", "node"]
|
||||
- 10752:10752
|
||||
- 10752:10752/udp
|
||||
volumes:
|
||||
- ${ETHEREUM_HOLESKY_RETH_ARCHIVE_TRACE_DATA:-ethereum-holesky-reth-archive-trace}:/root/.local/share/reth
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [reth, node]
|
||||
command:
|
||||
- --chain=holesky
|
||||
- --metrics=0.0.0.0:9001
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --port=10752
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --port=10752
|
||||
- --discovery.port=10752
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --ws.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --http.corsdomain=*
|
||||
|
||||
- --rpc.max-logs-per-response=1100000
|
||||
- --rpc.gascap=600000000
|
||||
|
||||
stop_grace_period: 1m
|
||||
|
||||
- --chain=holesky
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-holesky-reth-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-archive"
|
||||
- "traefik.http.services.ethereum-holesky-reth-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-holesky-reth-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-holesky-reth-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-holesky-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-archive`)"
|
||||
- "traefik.http.routers.ethereum-holesky-reth-archive-trace.middlewares=ethereum-holesky-reth-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-holesky-reth-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-archive
|
||||
- traefik.http.services.ethereum-holesky-reth-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-reth-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-reth-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-holesky-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-holesky-reth-archive-trace.rule=PathPrefix(`/ethereum-holesky-archive`)}
|
||||
- traefik.http.routers.ethereum-holesky-reth-archive-trace.middlewares=ethereum-holesky-reth-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
ethereum-holesky-archive-node:
|
||||
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_HOLESKY_PRYSM_VERSION:-v5.3.1}
|
||||
ports:
|
||||
- 15752:15752
|
||||
- 15752:15752/udp
|
||||
command:
|
||||
- --holesky
|
||||
- --datadir=/data
|
||||
- --jwt-secret=/jwtsecret
|
||||
- --rpc-host=0.0.0.0
|
||||
- --grpc-gateway-host=0.0.0.0
|
||||
- --monitoring-host=0.0.0.0
|
||||
- --p2p-tcp-port=15752
|
||||
- --p2p-udp-port=15752
|
||||
- --checkpoint-sync-url=
|
||||
- --execution-endpoint=http://ethereum-holesky-archive:8551
|
||||
- --enable-historical-state-representation=false
|
||||
- --beacon-db-pruning
|
||||
- --accept-terms-of-use
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
ethereum-holesky-archive-node:
|
||||
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
|
||||
ports:
|
||||
- "15752:15752"
|
||||
- "15752:15752/udp"
|
||||
command:
|
||||
[
|
||||
"--holesky",
|
||||
"--datadir=/data",
|
||||
"--jwt-secret=/jwtsecret",
|
||||
"--rpc-host=0.0.0.0",
|
||||
"--grpc-gateway-host=0.0.0.0",
|
||||
"--monitoring-host=0.0.0.0",
|
||||
"--p2p-tcp-port=15752",
|
||||
"--p2p-udp-port=15752",
|
||||
"--checkpoint-sync-url=https://holesky.beaconstate.info",
|
||||
"--execution-endpoint=http://ethereum-holesky-archive:8551",
|
||||
"--enable-historical-state-representation=false",
|
||||
"--beacon-db-pruning",
|
||||
"--accept-terms-of-use"
|
||||
]
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "ethereum-holesky-reth-archive-trace_prysm:/data"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
restart: unless-stopped
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ${ETHEREUM_HOLESKY_RETH_ARCHIVE_TRACE__PRYSM_DATA:-ethereum-holesky-reth-archive-trace_prysm}:/data
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ethereum-holesky-reth-archive-trace:
|
||||
ethereum-holesky-reth-archive-trace_prysm:
|
||||
|
||||
x-upstreams:
|
||||
- chain: holesky
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,79 +1,113 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-mainnet-archive:
|
||||
image: ghcr.io/paradigmxyz/reth:${RETH_VERSION:-v1.3.4}
|
||||
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_MAINNET_RETH_VERSION:-v1.3.4}
|
||||
user: root
|
||||
volumes:
|
||||
- "ethereum-mainnet-reth-archive-trace:/root/.local/share/reth/mainnet"
|
||||
- "/slowdisk:/slowdisk"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 9001
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10563:10563"
|
||||
- "10563:10563/udp"
|
||||
restart: unless-stopped
|
||||
entrypoint: ["reth", "node"]
|
||||
- 10563:10563
|
||||
- 10563:10563/udp
|
||||
volumes:
|
||||
- ${ETHEREUM_MAINNET_RETH_ARCHIVE_TRACE_DATA:-ethereum-mainnet-reth-archive-trace}:/root/.local/share/reth
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [reth, node]
|
||||
command:
|
||||
- --chain=mainnet
|
||||
- --metrics=0.0.0.0:9001
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --port=10563
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --port=10563
|
||||
- --discovery.port=10563
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --ws.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --http.corsdomain=*
|
||||
|
||||
- --rpc.max-logs-per-response=1100000
|
||||
- --rpc.gascap=600000000
|
||||
|
||||
stop_grace_period: 1m
|
||||
|
||||
- --chain=mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-mainnet-reth-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet-archive"
|
||||
- "traefik.http.services.ethereum-mainnet-reth-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-mainnet-reth-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-mainnet-reth-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-mainnet-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-archive`)"
|
||||
- "traefik.http.routers.ethereum-mainnet-reth-archive-trace.middlewares=ethereum-mainnet-reth-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-mainnet-reth-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet-archive
|
||||
- traefik.http.services.ethereum-mainnet-reth-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-reth-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-reth-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-mainnet-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-mainnet-reth-archive-trace.rule=PathPrefix(`/ethereum-mainnet-archive`)}
|
||||
- traefik.http.routers.ethereum-mainnet-reth-archive-trace.middlewares=ethereum-mainnet-reth-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
ethereum-mainnet-archive-node:
|
||||
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_MAINNET_PRYSM_VERSION:-v5.3.1}
|
||||
ports:
|
||||
- 15563:15563
|
||||
- 15563:15563/udp
|
||||
command:
|
||||
- --mainnet
|
||||
- --datadir=/data
|
||||
- --jwt-secret=/jwtsecret
|
||||
- --rpc-host=0.0.0.0
|
||||
- --grpc-gateway-host=0.0.0.0
|
||||
- --monitoring-host=0.0.0.0
|
||||
- --p2p-tcp-port=15563
|
||||
- --p2p-udp-port=15563
|
||||
- --checkpoint-sync-url=
|
||||
- --execution-endpoint=http://ethereum-mainnet-archive:8551
|
||||
- --enable-historical-state-representation=false
|
||||
- --beacon-db-pruning
|
||||
- --accept-terms-of-use
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
ethereum-mainnet-archive-node:
|
||||
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
|
||||
ports:
|
||||
- "15563:15563"
|
||||
- "15563:15563/udp"
|
||||
command:
|
||||
[
|
||||
"--mainnet",
|
||||
"--datadir=/data",
|
||||
"--jwt-secret=/jwtsecret",
|
||||
"--rpc-host=0.0.0.0",
|
||||
"--grpc-gateway-host=0.0.0.0",
|
||||
"--monitoring-host=0.0.0.0",
|
||||
"--p2p-tcp-port=15563",
|
||||
"--p2p-udp-port=15563",
|
||||
"--checkpoint-sync-url=https://sync-mainnet.beaconcha.in",
|
||||
"--execution-endpoint=http://ethereum-mainnet-archive:8551",
|
||||
"--enable-historical-state-representation=false",
|
||||
"--beacon-db-pruning",
|
||||
"--accept-terms-of-use"
|
||||
]
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "ethereum-mainnet-reth-archive-trace_prysm:/data"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
restart: unless-stopped
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ${ETHEREUM_MAINNET_RETH_ARCHIVE_TRACE__PRYSM_DATA:-ethereum-mainnet-reth-archive-trace_prysm}:/data
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ethereum-mainnet-reth-archive-trace:
|
||||
ethereum-mainnet-reth-archive-trace_prysm:
|
||||
|
||||
x-upstreams:
|
||||
- chain: ethereum
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,79 +1,113 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ethereum-sepolia-archive:
|
||||
image: ghcr.io/paradigmxyz/reth:${RETH_VERSION:-v1.3.4}
|
||||
image: ${ETHEREUM_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${ETHEREUM_SEPOLIA_RETH_VERSION:-v1.3.4}
|
||||
user: root
|
||||
volumes:
|
||||
- "ethereum-sepolia-reth-archive-trace:/root/.local/share/reth/sepolia"
|
||||
- "/slowdisk:/slowdisk"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 9001
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10330:10330"
|
||||
- "10330:10330/udp"
|
||||
restart: unless-stopped
|
||||
entrypoint: ["reth", "node"]
|
||||
- 10330:10330
|
||||
- 10330:10330/udp
|
||||
volumes:
|
||||
- ${ETHEREUM_SEPOLIA_RETH_ARCHIVE_TRACE_DATA:-ethereum-sepolia-reth-archive-trace}:/root/.local/share/reth
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [reth, node]
|
||||
command:
|
||||
- --chain=sepolia
|
||||
- --metrics=0.0.0.0:9001
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --port=10330
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --port=10330
|
||||
- --discovery.port=10330
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --ws.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
|
||||
- --http.corsdomain=*
|
||||
|
||||
- --rpc.max-logs-per-response=1100000
|
||||
- --rpc.gascap=600000000
|
||||
|
||||
stop_grace_period: 1m
|
||||
|
||||
- --chain=sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ethereum-sepolia-reth-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-archive"
|
||||
- "traefik.http.services.ethereum-sepolia-reth-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ethereum-sepolia-reth-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ethereum-sepolia-reth-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ethereum-sepolia-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-archive`)"
|
||||
- "traefik.http.routers.ethereum-sepolia-reth-archive-trace.middlewares=ethereum-sepolia-reth-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ethereum-sepolia-reth-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-archive
|
||||
- traefik.http.services.ethereum-sepolia-reth-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-reth-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-reth-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ethereum-sepolia-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ethereum-sepolia-reth-archive-trace.rule=PathPrefix(`/ethereum-sepolia-archive`)}
|
||||
- traefik.http.routers.ethereum-sepolia-reth-archive-trace.middlewares=ethereum-sepolia-reth-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
ethereum-sepolia-archive-node:
|
||||
image: ${ETHEREUM_PRYSM_IMAGE:-prysmaticlabs/prysm-beacon-chain}:${ETHEREUM_SEPOLIA_PRYSM_VERSION:-v5.3.1}
|
||||
ports:
|
||||
- 15330:15330
|
||||
- 15330:15330/udp
|
||||
command:
|
||||
- --sepolia
|
||||
- --datadir=/data
|
||||
- --jwt-secret=/jwtsecret
|
||||
- --rpc-host=0.0.0.0
|
||||
- --grpc-gateway-host=0.0.0.0
|
||||
- --monitoring-host=0.0.0.0
|
||||
- --p2p-tcp-port=15330
|
||||
- --p2p-udp-port=15330
|
||||
- --checkpoint-sync-url=
|
||||
- --execution-endpoint=http://ethereum-sepolia-archive:8551
|
||||
- --enable-historical-state-representation=false
|
||||
- --beacon-db-pruning
|
||||
- --accept-terms-of-use
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
ethereum-sepolia-archive-node:
|
||||
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
|
||||
ports:
|
||||
- "15330:15330"
|
||||
- "15330:15330/udp"
|
||||
command:
|
||||
[
|
||||
"--sepolia",
|
||||
"--datadir=/data",
|
||||
"--jwt-secret=/jwtsecret",
|
||||
"--rpc-host=0.0.0.0",
|
||||
"--grpc-gateway-host=0.0.0.0",
|
||||
"--monitoring-host=0.0.0.0",
|
||||
"--p2p-tcp-port=15330",
|
||||
"--p2p-udp-port=15330",
|
||||
"--checkpoint-sync-url=https://sepolia.beaconstate.info",
|
||||
"--execution-endpoint=http://ethereum-sepolia-archive:8551",
|
||||
"--enable-historical-state-representation=false",
|
||||
"--beacon-db-pruning",
|
||||
"--accept-terms-of-use"
|
||||
]
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- "ethereum-sepolia-reth-archive-trace_prysm:/data"
|
||||
- ".jwtsecret:/jwtsecret:ro"
|
||||
restart: unless-stopped
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
- ${ETHEREUM_SEPOLIA_RETH_ARCHIVE_TRACE__PRYSM_DATA:-ethereum-sepolia-reth-archive-trace_prysm}:/data
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ethereum-sepolia-reth-archive-trace:
|
||||
ethereum-sepolia-reth-archive-trace_prysm:
|
||||
|
||||
x-upstreams:
|
||||
- chain: sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
35
fantom.yml
35
fantom.yml
@@ -1,35 +0,0 @@
|
||||
version: "3.1"
|
||||
services:
|
||||
fantom:
|
||||
build:
|
||||
args:
|
||||
VERSION: release/txtracing/1.1.3-rc.5
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile-fullnode
|
||||
stop_grace_period: 3m
|
||||
environment:
|
||||
- CACHE_SIZE=${FANTOM_CACHE_SIZE:-16000}
|
||||
- IP=${IP}
|
||||
volumes:
|
||||
- "fantom:/datadir"
|
||||
- "./fantom/config:/config"
|
||||
expose:
|
||||
- "18544"
|
||||
- "19921"
|
||||
ports:
|
||||
- "19921:19921"
|
||||
- "19921:19921/udp"
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-stripprefix.stripprefix.prefixes=/fantom"
|
||||
- "traefik.http.services.fantom.loadbalancer.server.port=18544"
|
||||
- "traefik.http.routers.fantom.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom`)"
|
||||
- "traefik.http.routers.fantom.middlewares=fantom-stripprefix, ipwhitelist"
|
||||
|
||||
volumes:
|
||||
fantom:
|
||||
@@ -1,55 +1,93 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-mainnet-archive:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.opera
|
||||
dockerfile: opera.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}"
|
||||
REPO: "https://github.com/Fantom-foundation/go-opera.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-mainnet-opera-archive-trace:/datadir"
|
||||
VERSION: release/txtracing/1.1.3-rc.5
|
||||
REPO: https://github.com/Fantom-foundation/go-opera.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10897:10897"
|
||||
- "10897:10897/udp"
|
||||
- 10897:10897
|
||||
- 10897:10897/udp
|
||||
volumes:
|
||||
- ${FANTOM_MAINNET_OPERA_ARCHIVE_TRACE_DATA:-fantom-mainnet-opera-archive-trace}:/datadir
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g
|
||||
command:
|
||||
- --datadir=/datadir
|
||||
- --port=10897
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.migration.mode reformat
|
||||
- --db.preset pbl-1
|
||||
- --syncmode full
|
||||
- --cache=${FANTOM_MAINNET_OPERA_ARCHIVE_TRACE_CACHE_MB:-16000}
|
||||
- --tracenode
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10897
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--db.migration.mode reformat
|
||||
--db.preset pbl-1
|
||||
--syncmode full
|
||||
--cache=${FANTOM_MAINNET_OPERA_ARCHIVE_TRACE_CACHE_MB:-16000}
|
||||
--tracenode
|
||||
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-mainnet-opera-archive-trace-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive"
|
||||
- "traefik.http.services.fantom-mainnet-opera-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.middlewares=fantom-mainnet-opera-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-mainnet-opera-archive-trace-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive
|
||||
- traefik.http.services.fantom-mainnet-opera-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-mainnet-opera-archive-trace.rule=PathPrefix(`/fantom-mainnet-archive`)}
|
||||
- traefik.http.routers.fantom-mainnet-opera-archive-trace.middlewares=fantom-mainnet-opera-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-mainnet-opera-archive-trace:
|
||||
fantom-mainnet-opera-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,55 +1,92 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-mainnet-archive:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.opera
|
||||
dockerfile: opera.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}"
|
||||
REPO: "https://github.com/Fantom-foundation/go-opera.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-mainnet-opera-archive:/datadir"
|
||||
VERSION: v1.1.3-rc.5
|
||||
REPO: https://github.com/Fantom-foundation/go-opera.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10723:10723"
|
||||
- "10723:10723/udp"
|
||||
- 10897:10897
|
||||
- 10897:10897/udp
|
||||
volumes:
|
||||
- ${FANTOM_MAINNET_OPERA_ARCHIVE_DATA:-fantom-mainnet-opera-archive}:/datadir
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g
|
||||
command:
|
||||
- --datadir=/datadir
|
||||
- --port=10897
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.migration.mode reformat
|
||||
- --db.preset pbl-1
|
||||
- --syncmode full
|
||||
- --cache=${FANTOM_MAINNET_OPERA_ARCHIVE_CACHE_MB:-16000}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10723
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--db.migration.mode reformat
|
||||
--db.preset pbl-1
|
||||
--syncmode full
|
||||
--cache=${FANTOM_MAINNET_OPERA_ARCHIVE_CACHE_MB:-16000}
|
||||
|
||||
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-mainnet-opera-archive-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive"
|
||||
- "traefik.http.services.fantom-mainnet-opera-archive.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-archive.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-archive.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-archive.middlewares=fantom-mainnet-opera-archive-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-mainnet-opera-archive-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive
|
||||
- traefik.http.services.fantom-mainnet-opera-archive.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-mainnet-opera-archive.rule=PathPrefix(`/fantom-mainnet-archive`)}
|
||||
- traefik.http.routers.fantom-mainnet-opera-archive.middlewares=fantom-mainnet-opera-archive-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-mainnet-opera-archive:
|
||||
fantom-mainnet-opera-archive:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,55 +1,93 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-mainnet:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.opera
|
||||
dockerfile: opera.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}"
|
||||
REPO: "https://github.com/Fantom-foundation/go-opera.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-mainnet-opera-pruned-trace:/datadir"
|
||||
VERSION: release/txtracing/1.1.3-rc.5
|
||||
REPO: https://github.com/Fantom-foundation/go-opera.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10916:10916"
|
||||
- "10916:10916/udp"
|
||||
- 10897:10897
|
||||
- 10897:10897/udp
|
||||
volumes:
|
||||
- ${FANTOM_MAINNET_OPERA_PRUNED_TRACE_DATA:-fantom-mainnet-opera-pruned-trace}:/datadir
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/mainnet/mainnet-109331-no-history.g
|
||||
command:
|
||||
- --datadir=/datadir
|
||||
- --port=10897
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.migration.mode reformat
|
||||
- --db.preset pbl-1
|
||||
- --syncmode snap
|
||||
- --cache=${FANTOM_MAINNET_OPERA_PRUNED_TRACE_CACHE_MB:-16000}
|
||||
- --tracenode
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-109331-no-history.g"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10916
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--db.migration.mode reformat
|
||||
--db.preset pbl-1
|
||||
--syncmode=snap
|
||||
--cache=${FANTOM_MAINNET_OPERA_PRUNED_TRACE_CACHE_MB:-16000}
|
||||
--tracenode
|
||||
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-mainnet-opera-pruned-trace-stripprefix.stripprefix.prefixes=/fantom-mainnet"
|
||||
- "traefik.http.services.fantom-mainnet-opera-pruned-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet`)"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.middlewares=fantom-mainnet-opera-pruned-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-mainnet-opera-pruned-trace-stripprefix.stripprefix.prefixes=/fantom-mainnet
|
||||
- traefik.http.services.fantom-mainnet-opera-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-mainnet-opera-pruned-trace.rule=PathPrefix(`/fantom-mainnet`)}
|
||||
- traefik.http.routers.fantom-mainnet-opera-pruned-trace.middlewares=fantom-mainnet-opera-pruned-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-mainnet-opera-pruned-trace:
|
||||
fantom-mainnet-opera-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,55 +1,92 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-mainnet:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.opera
|
||||
dockerfile: opera.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}"
|
||||
REPO: "https://github.com/Fantom-foundation/go-opera.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-mainnet-opera-pruned:/datadir"
|
||||
VERSION: v1.1.3-rc.5
|
||||
REPO: https://github.com/Fantom-foundation/go-opera.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10439:10439"
|
||||
- "10439:10439/udp"
|
||||
- 10897:10897
|
||||
- 10897:10897/udp
|
||||
volumes:
|
||||
- ${FANTOM_MAINNET_OPERA_PRUNED_DATA:-fantom-mainnet-opera-pruned}:/datadir
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/mainnet/mainnet-109331-no-history.g
|
||||
command:
|
||||
- --datadir=/datadir
|
||||
- --port=10897
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.migration.mode reformat
|
||||
- --db.preset pbl-1
|
||||
- --syncmode snap
|
||||
- --cache=${FANTOM_MAINNET_OPERA_PRUNED_CACHE_MB:-16000}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-109331-no-history.g"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10439
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--db.migration.mode reformat
|
||||
--db.preset pbl-1
|
||||
--syncmode snap
|
||||
--cache=${FANTOM_MAINNET_OPERA_PRUNED_CACHE_MB:-16000}
|
||||
|
||||
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-mainnet-opera-pruned-stripprefix.stripprefix.prefixes=/fantom-mainnet"
|
||||
- "traefik.http.services.fantom-mainnet-opera-pruned.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-pruned.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-pruned.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-pruned.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet`)"
|
||||
- "traefik.http.routers.fantom-mainnet-opera-pruned.middlewares=fantom-mainnet-opera-pruned-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-mainnet-opera-pruned-stripprefix.stripprefix.prefixes=/fantom-mainnet
|
||||
- traefik.http.services.fantom-mainnet-opera-pruned.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-pruned.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-pruned.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-pruned.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-mainnet-opera-pruned.rule=PathPrefix(`/fantom-mainnet`)}
|
||||
- traefik.http.routers.fantom-mainnet-opera-pruned.middlewares=fantom-mainnet-opera-pruned-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-mainnet-opera-pruned:
|
||||
fantom-mainnet-opera-pruned:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,55 +1,93 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-testnet-archive:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.opera
|
||||
dockerfile: opera.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}"
|
||||
REPO: "https://github.com/Fantom-foundation/go-opera.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-testnet-opera-archive-trace:/datadir"
|
||||
VERSION: release/txtracing/1.1.3-rc.5
|
||||
REPO: https://github.com/Fantom-foundation/go-opera.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10196:10196"
|
||||
- "10196:10196/udp"
|
||||
- 10196:10196
|
||||
- 10196:10196/udp
|
||||
volumes:
|
||||
- ${FANTOM_TESTNET_OPERA_ARCHIVE_TRACE_DATA:-fantom-testnet-opera-archive-trace}:/datadir
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/testnet/testnet-2458-full-mpt.g
|
||||
command:
|
||||
- --datadir=/datadir
|
||||
- --port=10196
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.migration.mode reformat
|
||||
- --db.preset pbl-1
|
||||
- --syncmode full
|
||||
- --cache=${FANTOM_TESTNET_OPERA_ARCHIVE_TRACE_CACHE_MB:-16000}
|
||||
- --tracenode
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-2458-full-mpt.g"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10196
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--db.migration.mode reformat
|
||||
--db.preset pbl-1
|
||||
--syncmode full
|
||||
--cache=${FANTOM_TESTNET_OPERA_ARCHIVE_TRACE_CACHE_MB:-16000}
|
||||
--tracenode
|
||||
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-testnet-opera-archive-trace-stripprefix.stripprefix.prefixes=/fantom-testnet-archive"
|
||||
- "traefik.http.services.fantom-testnet-opera-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-testnet-opera-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-testnet-opera-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-testnet-opera-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)"
|
||||
- "traefik.http.routers.fantom-testnet-opera-archive-trace.middlewares=fantom-testnet-opera-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-testnet-opera-archive-trace-stripprefix.stripprefix.prefixes=/fantom-testnet-archive
|
||||
- traefik.http.services.fantom-testnet-opera-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-testnet-opera-archive-trace.rule=PathPrefix(`/fantom-testnet-archive`)}
|
||||
- traefik.http.routers.fantom-testnet-opera-archive-trace.middlewares=fantom-testnet-opera-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-testnet-opera-archive-trace:
|
||||
fantom-testnet-opera-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,55 +1,92 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-testnet-archive:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.opera
|
||||
dockerfile: opera.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}"
|
||||
REPO: "https://github.com/Fantom-foundation/go-opera.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-testnet-opera-archive:/datadir"
|
||||
VERSION: v1.1.3-rc.5
|
||||
REPO: https://github.com/Fantom-foundation/go-opera.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10055:10055"
|
||||
- "10055:10055/udp"
|
||||
- 10196:10196
|
||||
- 10196:10196/udp
|
||||
volumes:
|
||||
- ${FANTOM_TESTNET_OPERA_ARCHIVE_DATA:-fantom-testnet-opera-archive}:/datadir
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/testnet/testnet-2458-full-mpt.g
|
||||
command:
|
||||
- --datadir=/datadir
|
||||
- --port=10196
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.migration.mode reformat
|
||||
- --db.preset pbl-1
|
||||
- --syncmode full
|
||||
- --cache=${FANTOM_TESTNET_OPERA_ARCHIVE_CACHE_MB:-16000}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-2458-full-mpt.g"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10055
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--db.migration.mode reformat
|
||||
--db.preset pbl-1
|
||||
--syncmode full
|
||||
--cache=${FANTOM_TESTNET_OPERA_ARCHIVE_CACHE_MB:-16000}
|
||||
|
||||
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-testnet-opera-archive-stripprefix.stripprefix.prefixes=/fantom-testnet-archive"
|
||||
- "traefik.http.services.fantom-testnet-opera-archive.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-testnet-opera-archive.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-testnet-opera-archive.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-testnet-opera-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)"
|
||||
- "traefik.http.routers.fantom-testnet-opera-archive.middlewares=fantom-testnet-opera-archive-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-testnet-opera-archive-stripprefix.stripprefix.prefixes=/fantom-testnet-archive
|
||||
- traefik.http.services.fantom-testnet-opera-archive.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-archive.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-archive.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-testnet-opera-archive.rule=PathPrefix(`/fantom-testnet-archive`)}
|
||||
- traefik.http.routers.fantom-testnet-opera-archive.middlewares=fantom-testnet-opera-archive-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-testnet-opera-archive:
|
||||
fantom-testnet-opera-archive:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,55 +1,93 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-testnet:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.opera
|
||||
dockerfile: opera.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}"
|
||||
REPO: "https://github.com/Fantom-foundation/go-opera.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-testnet-opera-pruned-trace:/datadir"
|
||||
VERSION: release/txtracing/1.1.3-rc.5
|
||||
REPO: https://github.com/Fantom-foundation/go-opera.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10037:10037"
|
||||
- "10037:10037/udp"
|
||||
- 10196:10196
|
||||
- 10196:10196/udp
|
||||
volumes:
|
||||
- ${FANTOM_TESTNET_OPERA_PRUNED_TRACE_DATA:-fantom-testnet-opera-pruned-trace}:/datadir
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/testnet/testnet-6226-no-history.g
|
||||
command:
|
||||
- --datadir=/datadir
|
||||
- --port=10196
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.migration.mode reformat
|
||||
- --db.preset pbl-1
|
||||
- --syncmode snap
|
||||
- --cache=${FANTOM_TESTNET_OPERA_PRUNED_TRACE_CACHE_MB:-16000}
|
||||
- --tracenode
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-6226-no-history.g"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10037
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--db.migration.mode reformat
|
||||
--db.preset pbl-1
|
||||
--syncmode snap
|
||||
--cache=${FANTOM_TESTNET_OPERA_PRUNED_TRACE_CACHE_MB:-16000}
|
||||
--tracenode
|
||||
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-testnet-opera-pruned-trace-stripprefix.stripprefix.prefixes=/fantom-testnet"
|
||||
- "traefik.http.services.fantom-testnet-opera-pruned-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet`)"
|
||||
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.middlewares=fantom-testnet-opera-pruned-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-testnet-opera-pruned-trace-stripprefix.stripprefix.prefixes=/fantom-testnet
|
||||
- traefik.http.services.fantom-testnet-opera-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-testnet-opera-pruned-trace.rule=PathPrefix(`/fantom-testnet`)}
|
||||
- traefik.http.routers.fantom-testnet-opera-pruned-trace.middlewares=fantom-testnet-opera-pruned-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-testnet-opera-pruned-trace:
|
||||
fantom-testnet-opera-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,55 +1,92 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-testnet:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.opera
|
||||
dockerfile: opera.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}"
|
||||
REPO: "https://github.com/Fantom-foundation/go-opera.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-testnet-opera-pruned:/datadir"
|
||||
VERSION: v1.1.3-rc.5
|
||||
REPO: https://github.com/Fantom-foundation/go-opera.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10846:10846"
|
||||
- "10846:10846/udp"
|
||||
- 10196:10196
|
||||
- 10196:10196/udp
|
||||
volumes:
|
||||
- ${FANTOM_TESTNET_OPERA_PRUNED_DATA:-fantom-testnet-opera-pruned}:/datadir
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/testnet/testnet-6226-no-history.g
|
||||
command:
|
||||
- --datadir=/datadir
|
||||
- --port=10196
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.migration.mode reformat
|
||||
- --db.preset pbl-1
|
||||
- --syncmode snap
|
||||
- --cache=${FANTOM_TESTNET_OPERA_PRUNED_CACHE_MB:-16000}
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-6226-no-history.g"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10846
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--db.migration.mode reformat
|
||||
--db.preset pbl-1
|
||||
--syncmode snap
|
||||
--cache=${FANTOM_TESTNET_OPERA_PRUNED_CACHE_MB:-16000}
|
||||
|
||||
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-testnet-opera-pruned-stripprefix.stripprefix.prefixes=/fantom-testnet"
|
||||
- "traefik.http.services.fantom-testnet-opera-pruned.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-testnet-opera-pruned.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-testnet-opera-pruned.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-testnet-opera-pruned.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet`)"
|
||||
- "traefik.http.routers.fantom-testnet-opera-pruned.middlewares=fantom-testnet-opera-pruned-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-testnet-opera-pruned-stripprefix.stripprefix.prefixes=/fantom-testnet
|
||||
- traefik.http.services.fantom-testnet-opera-pruned.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-pruned.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-pruned.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-pruned.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-testnet-opera-pruned.rule=PathPrefix(`/fantom-testnet`)}
|
||||
- traefik.http.routers.fantom-testnet-opera-pruned.middlewares=fantom-testnet-opera-pruned-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-testnet-opera-pruned:
|
||||
fantom-testnet-opera-pruned:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,51 +1,93 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-mainnet-archive:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.sonic
|
||||
dockerfile: sonic.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_SONIC_VERSION:-v1.2.1-h}"
|
||||
REPO: "https://github.com/Fantom-foundation/sonic.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-mainnet-sonic-archive:/var/sonic"
|
||||
VERSION: v1.2.1-h
|
||||
REPO: https://github.com/Fantom-foundation/sonic.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10335:10335"
|
||||
- "10335:10335/udp"
|
||||
- 10335:10335
|
||||
- 10335:10335/udp
|
||||
volumes:
|
||||
- ${FANTOM_MAINNET_SONIC_ARCHIVE_DATA:-fantom-mainnet-sonic-archive}:/var/sonic
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/testnet/testnet-26650-rpc.g
|
||||
- CACHE_GB=${SONIC_CACHE_GB:-28}
|
||||
command:
|
||||
- --datadir=/var/sonic
|
||||
- --port=10335
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=
|
||||
- --state.scheme=
|
||||
- --syncmode=full
|
||||
- --gcmode=archive
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/mainnet-latest-archive.g"
|
||||
- "CACHE_GB=${FANTOM_MAINNET_SONIC_CACHE_GB:-28}"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10335
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--bootnodes=enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-mainnet-sonic-archive-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive"
|
||||
- "traefik.http.services.fantom-mainnet-sonic-archive.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-mainnet-sonic-archive.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-mainnet-sonic-archive.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-mainnet-sonic-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)"
|
||||
- "traefik.http.routers.fantom-mainnet-sonic-archive.middlewares=fantom-mainnet-sonic-archive-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-mainnet-sonic-archive-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive
|
||||
- traefik.http.services.fantom-mainnet-sonic-archive.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-sonic-archive.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-sonic-archive.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-mainnet-sonic-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-mainnet-sonic-archive.rule=PathPrefix(`/fantom-mainnet-archive`)}
|
||||
- traefik.http.routers.fantom-mainnet-sonic-archive.middlewares=fantom-mainnet-sonic-archive-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-mainnet-sonic-archive:
|
||||
fantom-mainnet-sonic-archive:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,51 +1,93 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
fantom-testnet-archive:
|
||||
build:
|
||||
context: ./fantom
|
||||
dockerfile: Dockerfile.sonic
|
||||
dockerfile: sonic.Dockerfile
|
||||
args:
|
||||
VERSION: "${FANTOM_SONIC_VERSION:-v1.2.1-h}"
|
||||
REPO: "https://github.com/Fantom-foundation/sonic.git"
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- "fantom-testnet-sonic-archive:/var/sonic"
|
||||
VERSION: v1.2.1-h
|
||||
REPO: https://github.com/Fantom-foundation/sonic.git
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10652:10652"
|
||||
- "10652:10652/udp"
|
||||
- 10652:10652
|
||||
- 10652:10652/udp
|
||||
volumes:
|
||||
- ${FANTOM_TESTNET_SONIC_ARCHIVE_DATA:-fantom-testnet-sonic-archive}:/var/sonic
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
environment:
|
||||
- GENESIS=https://download.fantom.network/opera/testnet/testnet-26650-rpc.g
|
||||
- CACHE_GB=${SONIC_CACHE_GB:-28}
|
||||
command:
|
||||
- --datadir=/var/sonic
|
||||
- --port=10652
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
- --ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm,sfc
|
||||
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.returndatalimit=10000000
|
||||
- --rpc.txfeecap=0
|
||||
|
||||
- --db.engine=
|
||||
- --state.scheme=
|
||||
- --syncmode=full
|
||||
- --gcmode=archive
|
||||
|
||||
networks:
|
||||
- chains
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-26650-rpc.g"
|
||||
- "CACHE_GB=${FANTOM_TESTNET_SONIC_CACHE_GB:-28}"
|
||||
restart: unless-stopped
|
||||
command: >
|
||||
--port=10652
|
||||
--nat=extip:${IP}
|
||||
--maxpeers=200
|
||||
--http
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm
|
||||
--http.corsdomain="*"
|
||||
--http.vhosts="*"
|
||||
--ws
|
||||
--ws.addr=0.0.0.0
|
||||
--ws.port=8545
|
||||
--ws.api=admin,debug,web3,eth,dag,txpool,personal,abft,net,trace,ftm
|
||||
--ws.origins="*"
|
||||
--rpc.gascap=600000000
|
||||
--bootnodes=enode://2411cdad2780bf969c0bd6f19b53ac6683710d50f19a7604248d8a6a810d3d6369dffb08535530095c151ecad143393e4fbca2d11f62377fe15b3df4d9883053@34.172.30.235:5050,enode://6f434dc43f826f7c3c817ba7fbe7842aa47c50d1e77a6b57ec51313fd88c7f006240baa105b795712922a05e1b548d413ea6d32d8c1c8feb9ffc206a6c9e37ce@34.55.131.153:5050,enode://64e69ec1f30be48aa8d5f3e6cadf15d06d846d40918f3906e6efbc4a3421f0cc04e3e4f88569b5c90306bbc16ca15df6898ad71b8a73aa36284f1c3076f2956e@35.195.64.211:5050,enode://a76d94105f12d3fb5c31df5a59448d95b723d94543620a02f72ee990e048c43df940f4969ab06d436ef8976c49ec9c2a671c2f5af8d93af911cef63de329a8b8@35.239.100.93:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://544f06ceaddcf508a13326d95518a524e14f4980723c9dc5cb8560635a7faa7f8f91483faed19dacd7d251abf72b4a1b0bcacaced1255deb93414d097221a9bc@35.224.88.189:5050,enode://baea3b72d091cb361283af4933da32406d707d3bb077a42c77a58cf98e27b546da837e6e9524d8588f414e1886a3b17e036b86fd2d723170db93831a22324252@35.241.219.197:5050,enode://2cd3fcfe9671d81c0e8bb76bc81a430882ce5d99199c20a004da97bec48e9b03c02c3b6d95edb77498ce2dd8e090c4ce76349e775af7540b04a6e9303e5b69cd@104.155.31.23:5050
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.fantom-testnet-sonic-archive-stripprefix.stripprefix.prefixes=/fantom-testnet-archive"
|
||||
- "traefik.http.services.fantom-testnet-sonic-archive.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.fantom-testnet-sonic-archive.entrypoints=websecure"
|
||||
- "traefik.http.routers.fantom-testnet-sonic-archive.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.fantom-testnet-sonic-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)"
|
||||
- "traefik.http.routers.fantom-testnet-sonic-archive.middlewares=fantom-testnet-sonic-archive-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.fantom-testnet-sonic-archive-stripprefix.stripprefix.prefixes=/fantom-testnet-archive
|
||||
- traefik.http.services.fantom-testnet-sonic-archive.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-sonic-archive.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-sonic-archive.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.fantom-testnet-sonic-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.fantom-testnet-sonic-archive.rule=PathPrefix(`/fantom-testnet-archive`)}
|
||||
- traefik.http.routers.fantom-testnet-sonic-archive.middlewares=fantom-testnet-sonic-archive-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
fantom-testnet-sonic-archive:
|
||||
fantom-testnet-sonic-archive:
|
||||
|
||||
x-upstreams:
|
||||
- chain: fantom-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
gnosis-chiado-archive:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10986:10986"
|
||||
- "10986:10986/udp"
|
||||
- "25986:25986"
|
||||
- "25986:25986/udp"
|
||||
- "30986:30986"
|
||||
- "30986:30986/udp"
|
||||
- "15986:15986"
|
||||
- "15986:15986/udp"
|
||||
- "20986:20986"
|
||||
- "20986:20986/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10986:10986
|
||||
- 10986:10986/udp
|
||||
- 30986:30986
|
||||
- 30986:30986/udp
|
||||
- 35986:35986
|
||||
- 35986:35986/udp
|
||||
- 15986:15986
|
||||
- 15986:15986/udp
|
||||
- 25986:25986
|
||||
- 25986:25986/udp
|
||||
volumes:
|
||||
- gnosis-chiado-erigon3-archive-trace:/root/.local/share/erigon
|
||||
- ${GNOSIS_CHIADO_ERIGON3_ARCHIVE_TRACE_DATA:-gnosis-chiado-erigon3-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10986
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30986
|
||||
- --p2p.allowed-ports=35986
|
||||
- --chain=chiado
|
||||
|
||||
- --torrent.port=25986
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=chiado
|
||||
|
||||
- --prune.mode=archive
|
||||
- --port=10986
|
||||
- --p2p.allowed-ports=25986
|
||||
- --p2p.allowed-ports=30986
|
||||
- --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=20986
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15986
|
||||
- --caplin.discovery.tcpport=15986
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.gnosis-chiado-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/gnosis-chiado-archive"
|
||||
- "traefik.http.services.gnosis-chiado-erigon3-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado-archive`)"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace.middlewares=gnosis-chiado-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace.service=gnosis-chiado-erigon3-archive-trace"
|
||||
|
||||
- "traefik.http.services.gnosis-chiado-erigon3-archive-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.service=gnosis-chiado-erigon3-archive-trace-node"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado-archive/eth`)"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.middlewares=gnosis-chiado-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.gnosis-chiado-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/gnosis-chiado-archive
|
||||
- traefik.http.services.gnosis-chiado-erigon3-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-chiado-erigon3-archive-trace.rule=PathPrefix(`/gnosis-chiado-archive`)}
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-archive-trace.middlewares=gnosis-chiado-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-archive-trace.service=gnosis-chiado-erigon3-archive-trace
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.service=gnosis-chiado-erigon3-archive-trace-node
|
||||
- traefik.http.services.gnosis-chiado-erigon3-archive-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado-archive/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.rule=PathPrefix(`/gnosis-chiado-archive/eth`)}
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.middlewares=gnosis-chiado-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
gnosis-chiado-erigon3-archive-trace:
|
||||
gnosis-chiado-erigon3-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: gnosis-chiado
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
gnosis-chiado-minimal:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10010:10010"
|
||||
- "10010:10010/udp"
|
||||
- "25010:25010"
|
||||
- "25010:25010/udp"
|
||||
- "30010:30010"
|
||||
- "30010:30010/udp"
|
||||
- "15010:15010"
|
||||
- "15010:15010/udp"
|
||||
- "20010:20010"
|
||||
- "20010:20010/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10986:10986
|
||||
- 10986:10986/udp
|
||||
- 30986:30986
|
||||
- 30986:30986/udp
|
||||
- 35986:35986
|
||||
- 35986:35986/udp
|
||||
- 15986:15986
|
||||
- 15986:15986/udp
|
||||
- 25986:25986
|
||||
- 25986:25986/udp
|
||||
volumes:
|
||||
- gnosis-chiado-erigon3-minimal-trace:/root/.local/share/erigon
|
||||
- ${GNOSIS_CHIADO_ERIGON3_MINIMAL_TRACE_DATA:-gnosis-chiado-erigon3-minimal-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10986
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30986
|
||||
- --p2p.allowed-ports=35986
|
||||
- --chain=chiado
|
||||
|
||||
- --torrent.port=25986
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=chiado
|
||||
|
||||
- --prune.mode=minimal
|
||||
- --port=10010
|
||||
- --p2p.allowed-ports=25010
|
||||
- --p2p.allowed-ports=30010
|
||||
- --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=20010
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15010
|
||||
- --caplin.discovery.tcpport=15010
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.gnosis-chiado-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/gnosis-chiado-minimal"
|
||||
- "traefik.http.services.gnosis-chiado-erigon3-minimal-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado-minimal`)"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.middlewares=gnosis-chiado-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.service=gnosis-chiado-erigon3-minimal-trace"
|
||||
|
||||
- "traefik.http.services.gnosis-chiado-erigon3-minimal-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.service=gnosis-chiado-erigon3-minimal-trace-node"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado-minimal/eth`)"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.middlewares=gnosis-chiado-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.gnosis-chiado-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/gnosis-chiado-minimal
|
||||
- traefik.http.services.gnosis-chiado-erigon3-minimal-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado-minimal`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.rule=PathPrefix(`/gnosis-chiado-minimal`)}
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.middlewares=gnosis-chiado-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.service=gnosis-chiado-erigon3-minimal-trace
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.service=gnosis-chiado-erigon3-minimal-trace-node
|
||||
- traefik.http.services.gnosis-chiado-erigon3-minimal-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado-minimal/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.rule=PathPrefix(`/gnosis-chiado-minimal/eth`)}
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.middlewares=gnosis-chiado-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
gnosis-chiado-erigon3-minimal-trace:
|
||||
gnosis-chiado-erigon3-minimal-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: gnosis-chiado
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
gnosis-chiado:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_CHIADO_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10886:10886"
|
||||
- "10886:10886/udp"
|
||||
- "25886:25886"
|
||||
- "25886:25886/udp"
|
||||
- "30886:30886"
|
||||
- "30886:30886/udp"
|
||||
- "15886:15886"
|
||||
- "15886:15886/udp"
|
||||
- "20886:20886"
|
||||
- "20886:20886/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10986:10986
|
||||
- 10986:10986/udp
|
||||
- 30986:30986
|
||||
- 30986:30986/udp
|
||||
- 35986:35986
|
||||
- 35986:35986/udp
|
||||
- 15986:15986
|
||||
- 15986:15986/udp
|
||||
- 25986:25986
|
||||
- 25986:25986/udp
|
||||
volumes:
|
||||
- gnosis-chiado-erigon3-pruned-trace:/root/.local/share/erigon
|
||||
- ${GNOSIS_CHIADO_ERIGON3_PRUNED_TRACE_DATA:-gnosis-chiado-erigon3-pruned-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10986
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30986
|
||||
- --p2p.allowed-ports=35986
|
||||
- --chain=chiado
|
||||
|
||||
- --torrent.port=25986
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=chiado
|
||||
|
||||
- --prune.mode=full
|
||||
- --port=10886
|
||||
- --p2p.allowed-ports=25886
|
||||
- --p2p.allowed-ports=30886
|
||||
- --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=20886
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15886
|
||||
- --caplin.discovery.tcpport=15886
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.gnosis-chiado-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/gnosis-chiado"
|
||||
- "traefik.http.services.gnosis-chiado-erigon3-pruned-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado`)"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.middlewares=gnosis-chiado-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.service=gnosis-chiado-erigon3-pruned-trace"
|
||||
|
||||
- "traefik.http.services.gnosis-chiado-erigon3-pruned-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.service=gnosis-chiado-erigon3-pruned-trace-node"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado/eth`)"
|
||||
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.middlewares=gnosis-chiado-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.gnosis-chiado-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/gnosis-chiado
|
||||
- traefik.http.services.gnosis-chiado-erigon3-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.rule=PathPrefix(`/gnosis-chiado`)}
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.middlewares=gnosis-chiado-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.service=gnosis-chiado-erigon3-pruned-trace
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.service=gnosis-chiado-erigon3-pruned-trace-node
|
||||
- traefik.http.services.gnosis-chiado-erigon3-pruned-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-chiado/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.rule=PathPrefix(`/gnosis-chiado/eth`)}
|
||||
- traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.middlewares=gnosis-chiado-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
gnosis-chiado-erigon3-pruned-trace:
|
||||
gnosis-chiado-erigon3-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: gnosis-chiado
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
gnosis-mainnet-archive:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_MAINNET_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10974:10974"
|
||||
- "10974:10974/udp"
|
||||
- "25974:25974"
|
||||
- "25974:25974/udp"
|
||||
- "30974:30974"
|
||||
- "30974:30974/udp"
|
||||
- "15974:15974"
|
||||
- "15974:15974/udp"
|
||||
- "20974:20974"
|
||||
- "20974:20974/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10974:10974
|
||||
- 10974:10974/udp
|
||||
- 30974:30974
|
||||
- 30974:30974/udp
|
||||
- 35974:35974
|
||||
- 35974:35974/udp
|
||||
- 15974:15974
|
||||
- 15974:15974/udp
|
||||
- 25974:25974
|
||||
- 25974:25974/udp
|
||||
volumes:
|
||||
- gnosis-mainnet-erigon3-archive-trace:/root/.local/share/erigon
|
||||
- ${GNOSIS_MAINNET_ERIGON3_ARCHIVE_TRACE_DATA:-gnosis-mainnet-erigon3-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10974
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30974
|
||||
- --p2p.allowed-ports=35974
|
||||
- --chain=gnosis
|
||||
|
||||
- --torrent.port=25974
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=gnosis
|
||||
|
||||
- --prune.mode=archive
|
||||
- --port=10974
|
||||
- --p2p.allowed-ports=25974
|
||||
- --p2p.allowed-ports=30974
|
||||
- --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=20974
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15974
|
||||
- --caplin.discovery.tcpport=15974
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.gnosis-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/gnosis-mainnet-archive"
|
||||
- "traefik.http.services.gnosis-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet-archive`)"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.middlewares=gnosis-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.service=gnosis-mainnet-erigon3-archive-trace"
|
||||
|
||||
- "traefik.http.services.gnosis-mainnet-erigon3-archive-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.service=gnosis-mainnet-erigon3-archive-trace-node"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet-archive/eth`)"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.middlewares=gnosis-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.gnosis-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/gnosis-mainnet-archive
|
||||
- traefik.http.services.gnosis-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.rule=PathPrefix(`/gnosis-mainnet-archive`)}
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.middlewares=gnosis-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.service=gnosis-mainnet-erigon3-archive-trace
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.service=gnosis-mainnet-erigon3-archive-trace-node
|
||||
- traefik.http.services.gnosis-mainnet-erigon3-archive-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet-archive/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.rule=PathPrefix(`/gnosis-mainnet-archive/eth`)}
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.middlewares=gnosis-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
gnosis-mainnet-erigon3-archive-trace:
|
||||
gnosis-mainnet-erigon3-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: gnosis
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
gnosis-mainnet-minimal:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_MAINNET_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10429:10429"
|
||||
- "10429:10429/udp"
|
||||
- "25429:25429"
|
||||
- "25429:25429/udp"
|
||||
- "30429:30429"
|
||||
- "30429:30429/udp"
|
||||
- "15429:15429"
|
||||
- "15429:15429/udp"
|
||||
- "20429:20429"
|
||||
- "20429:20429/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10974:10974
|
||||
- 10974:10974/udp
|
||||
- 30974:30974
|
||||
- 30974:30974/udp
|
||||
- 35974:35974
|
||||
- 35974:35974/udp
|
||||
- 15974:15974
|
||||
- 15974:15974/udp
|
||||
- 25974:25974
|
||||
- 25974:25974/udp
|
||||
volumes:
|
||||
- gnosis-mainnet-erigon3-minimal-trace:/root/.local/share/erigon
|
||||
- ${GNOSIS_MAINNET_ERIGON3_MINIMAL_TRACE_DATA:-gnosis-mainnet-erigon3-minimal-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10974
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30974
|
||||
- --p2p.allowed-ports=35974
|
||||
- --chain=gnosis
|
||||
|
||||
- --torrent.port=25974
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=gnosis
|
||||
|
||||
- --prune.mode=minimal
|
||||
- --port=10429
|
||||
- --p2p.allowed-ports=25429
|
||||
- --p2p.allowed-ports=30429
|
||||
- --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=20429
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15429
|
||||
- --caplin.discovery.tcpport=15429
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.gnosis-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/gnosis-mainnet-minimal"
|
||||
- "traefik.http.services.gnosis-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet-minimal`)"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.middlewares=gnosis-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.service=gnosis-mainnet-erigon3-minimal-trace"
|
||||
|
||||
- "traefik.http.services.gnosis-mainnet-erigon3-minimal-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.service=gnosis-mainnet-erigon3-minimal-trace-node"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet-minimal/eth`)"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.middlewares=gnosis-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.gnosis-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/gnosis-mainnet-minimal
|
||||
- traefik.http.services.gnosis-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet-minimal`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.rule=PathPrefix(`/gnosis-mainnet-minimal`)}
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.middlewares=gnosis-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.service=gnosis-mainnet-erigon3-minimal-trace
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.service=gnosis-mainnet-erigon3-minimal-trace-node
|
||||
- traefik.http.services.gnosis-mainnet-erigon3-minimal-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet-minimal/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.rule=PathPrefix(`/gnosis-mainnet-minimal/eth`)}
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.middlewares=gnosis-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
gnosis-mainnet-erigon3-minimal-trace:
|
||||
gnosis-mainnet-erigon3-minimal-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: gnosis
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,77 +1,127 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
gnosis-mainnet:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${GNOSIS_ERIGON3_IMAGE:-erigontech/erigon}:${GNOSIS_MAINNET_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10147:10147"
|
||||
- "10147:10147/udp"
|
||||
- "25147:25147"
|
||||
- "25147:25147/udp"
|
||||
- "30147:30147"
|
||||
- "30147:30147/udp"
|
||||
- "15147:15147"
|
||||
- "15147:15147/udp"
|
||||
- "20147:20147"
|
||||
- "20147:20147/udp"
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10974:10974
|
||||
- 10974:10974/udp
|
||||
- 30974:30974
|
||||
- 30974:30974/udp
|
||||
- 35974:35974
|
||||
- 35974:35974/udp
|
||||
- 15974:15974
|
||||
- 15974:15974/udp
|
||||
- 25974:25974
|
||||
- 25974:25974/udp
|
||||
volumes:
|
||||
- gnosis-mainnet-erigon3-pruned-trace:/root/.local/share/erigon
|
||||
- ${GNOSIS_MAINNET_ERIGON3_PRUNED_TRACE_DATA:-gnosis-mainnet-erigon3-pruned-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10974
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30974
|
||||
- --p2p.allowed-ports=35974
|
||||
- --chain=gnosis
|
||||
|
||||
- --torrent.port=25974
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
command:
|
||||
- --chain=gnosis
|
||||
|
||||
- --prune.mode=full
|
||||
- --port=10147
|
||||
- --p2p.allowed-ports=25147
|
||||
- --p2p.allowed-ports=30147
|
||||
- --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=20147
|
||||
|
||||
- --beacon.api.port=5555
|
||||
- --beacon.api.addr=0.0.0.0
|
||||
- --beacon.api.cors.allow-origins=*
|
||||
- --caplin.discovery.addr=0.0.0.0
|
||||
- --caplin.discovery.port=15147
|
||||
- --caplin.discovery.tcpport=15147
|
||||
- --beacon.api=beacon,builder,debug,lighthouse,node,validator,config
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.gnosis-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/gnosis-mainnet"
|
||||
- "traefik.http.services.gnosis-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet`)"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.middlewares=gnosis-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.service=gnosis-mainnet-erigon3-pruned-trace"
|
||||
|
||||
- "traefik.http.services.gnosis-mainnet-erigon3-pruned-trace-node.loadbalancer.server.port=5555"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.entrypoints=websecure"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.service=gnosis-mainnet-erigon3-pruned-trace-node"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet/eth`)"
|
||||
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.middlewares=gnosis-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.gnosis-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/gnosis-mainnet
|
||||
- traefik.http.services.gnosis-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.rule=PathPrefix(`/gnosis-mainnet`)}
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.middlewares=gnosis-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.service=gnosis-mainnet-erigon3-pruned-trace
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.service=gnosis-mainnet-erigon3-pruned-trace-node
|
||||
- traefik.http.services.gnosis-mainnet-erigon3-pruned-trace-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-mainnet/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.rule=PathPrefix(`/gnosis-mainnet/eth`)}
|
||||
- traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.middlewares=gnosis-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
gnosis-mainnet-erigon3-pruned-trace:
|
||||
gnosis-mainnet-erigon3-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: gnosis
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,68 +1,77 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
goat-mainnet-archive:
|
||||
image: ghcr.io/goatnetwork/goat-geth:v0.3.0
|
||||
stop_grace_period: 5m
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "10891:10891"
|
||||
- "10891:10891/udp"
|
||||
environment:
|
||||
- "GETH_GCMODE=archive"
|
||||
- "GETH_SYNCMODE=full"
|
||||
- "GETH_STATE_SCHEME=hash"
|
||||
- "GETH_DB_ENGINE=leveldb"
|
||||
- "GETH_NAT=extip:${IP}"
|
||||
- "GETH_PORT=10891"
|
||||
- "GETH_WS_PORT=8545"
|
||||
- "GETH_HTTP=true"
|
||||
- "GETH_HTTP_ADDR=0.0.0.0"
|
||||
- "GETH_HTTP_VHOSTS=*"
|
||||
- "GETH_WS=true"
|
||||
- "GETH_WS_ADDR=0.0.0.0"
|
||||
- "GETH_WS_ORIGINS=*"
|
||||
- "GETH_HTTP_API=eth,net,debug,admin,web3"
|
||||
entrypoint: ["geth"]
|
||||
command: --goat=mainnet
|
||||
image: ${GOAT_GETH_IMAGE:-ghcr.io/goatnetwork/goat-geth}:${GOAT_MAINNET_GETH_VERSION:-v0.3.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
volumes:
|
||||
- "goat-mainnet-geth-archive-leveldb-hash:/root/.ethereum"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.goat-mainnet-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/goat-mainnet-archive"
|
||||
- "traefik.http.services.goat-mainnet-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-mainnet-archive`)"
|
||||
- "traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.middlewares=goat-mainnet-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- 8551
|
||||
|
||||
goat-mainnet-archive-node:
|
||||
image: ghcr.io/goatnetwork/goat:v0.2.3
|
||||
stop_grace_period: 30s
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
volumes:
|
||||
- "goat-mainnet-geth-archive-leveldb-hash_node:/root/.goat"
|
||||
- "goat-mainnet-geth-archive-leveldb-hash:/geth"
|
||||
depends_on:
|
||||
- goat-mainnet-archive
|
||||
ports:
|
||||
- "15891:15891"
|
||||
- "15891:15891/udp"
|
||||
entrypoint: ["goatd", "start"]
|
||||
command: >
|
||||
- --chain-id goat-mainnet
|
||||
- --goat.geth "/geth/geth.ipc"
|
||||
- --p2p.external-address "${IP}:15891"
|
||||
- --p2p.laddr "0.0.0.0:15891"
|
||||
- 10640:10640
|
||||
- 10640:10640/udp
|
||||
volumes:
|
||||
- ${GOAT_MAINNET_GETH_ARCHIVE_LEVELDB_HASH_DATA:-goat-mainnet-geth-archive-leveldb-hash}:/root/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command: --goat=mainnet
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.goat-mainnet-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/goat-mainnet-archive
|
||||
- traefik.http.services.goat-mainnet-geth-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.rule=PathPrefix(`/goat-mainnet-archive`)}
|
||||
- traefik.http.routers.goat-mainnet-geth-archive-leveldb-hash.middlewares=goat-mainnet-geth-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
goat-mainnet-geth-archive-leveldb-hash:
|
||||
goat-mainnet-geth-archive-leveldb-hash_node:
|
||||
goat-mainnet-geth-archive-leveldb-hash_node:
|
||||
|
||||
x-upstreams:
|
||||
- chain: goat-mainnet-alpha
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,68 +1,79 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
goat-mainnet:
|
||||
image: ghcr.io/goatnetwork/goat-geth:v0.3.0
|
||||
stop_grace_period: 5m
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "10640:10640"
|
||||
- "10640:10640/udp"
|
||||
environment:
|
||||
- "GETH_GCMODE=full"
|
||||
- "GETH_SYNCMODE=snap"
|
||||
- "GETH_STATE_SCHEME=path"
|
||||
- "GETH_DB_ENGINE=pebble"
|
||||
- "GETH_NAT=extip:${IP}"
|
||||
- "GETH_PORT=10640"
|
||||
- "GETH_WS_PORT=8545"
|
||||
- "GETH_HTTP=true"
|
||||
- "GETH_HTTP_ADDR=0.0.0.0"
|
||||
- "GETH_HTTP_VHOSTS=*"
|
||||
- "GETH_WS=true"
|
||||
- "GETH_WS_ADDR=0.0.0.0"
|
||||
- "GETH_WS_ORIGINS=*"
|
||||
- "GETH_HTTP_API=eth,net,debug,admin,web3"
|
||||
entrypoint: ["geth"]
|
||||
command: --goat=mainnet
|
||||
image: ${GOAT_GETH_IMAGE:-ghcr.io/goatnetwork/goat-geth}:${GOAT_MAINNET_GETH_VERSION:-v0.3.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
volumes:
|
||||
- "goat-mainnet-geth-pruned-pebble-path:/root/.ethereum"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.goat-mainnet-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/goat-mainnet"
|
||||
- "traefik.http.services.goat-mainnet-geth-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-mainnet`)"
|
||||
- "traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.middlewares=goat-mainnet-geth-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- 8551
|
||||
|
||||
goat-mainnet-node:
|
||||
image: ghcr.io/goatnetwork/goat:v0.2.3
|
||||
stop_grace_period: 30s
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
volumes:
|
||||
- "goat-mainnet-geth-pruned-pebble-path_node:/root/.goat"
|
||||
- "goat-mainnet-geth-pruned-pebble-path:/geth"
|
||||
depends_on:
|
||||
- goat-mainnet
|
||||
ports:
|
||||
- "15640:15640"
|
||||
- "15640:15640/udp"
|
||||
entrypoint: ["goatd", "start"]
|
||||
command: >
|
||||
- --chain-id goat-mainnet
|
||||
- --goat.geth "/geth/geth.ipc"
|
||||
- --p2p.external-address "${IP}:15640"
|
||||
- --p2p.laddr "0.0.0.0:15640"
|
||||
- 10640:10640
|
||||
- 10640:10640/udp
|
||||
volumes:
|
||||
- ${GOAT_MAINNET_GETH_PRUNED_PEBBLE_PATH_DATA:-goat-mainnet-geth-pruned-pebble-path}:/root/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command: --goat=mainnet
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.goat-mainnet-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/goat-mainnet
|
||||
- traefik.http.services.goat-mainnet-geth-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.rule=PathPrefix(`/goat-mainnet`)}
|
||||
- traefik.http.routers.goat-mainnet-geth-pruned-pebble-path.middlewares=goat-mainnet-geth-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
goat-mainnet-geth-pruned-pebble-path:
|
||||
goat-mainnet-geth-pruned-pebble-path_node:
|
||||
goat-mainnet-geth-pruned-pebble-path_node:
|
||||
|
||||
x-upstreams:
|
||||
- chain: goat-mainnet-alpha
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,68 +1,77 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
goat-testnet3-archive:
|
||||
image: ghcr.io/goatnetwork/goat-geth:v0.1.7
|
||||
stop_grace_period: 5m
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "10461:10461"
|
||||
- "10461:10461/udp"
|
||||
environment:
|
||||
- "GETH_GCMODE=archive"
|
||||
- "GETH_SYNCMODE=full"
|
||||
- "GETH_STATE_SCHEME=hash"
|
||||
- "GETH_DB_ENGINE=leveldb"
|
||||
- "GETH_NAT=extip:${IP}"
|
||||
- "GETH_PORT=10461"
|
||||
- "GETH_WS_PORT=8545"
|
||||
- "GETH_HTTP=true"
|
||||
- "GETH_HTTP_ADDR=0.0.0.0"
|
||||
- "GETH_HTTP_VHOSTS=*"
|
||||
- "GETH_WS=true"
|
||||
- "GETH_WS_ADDR=0.0.0.0"
|
||||
- "GETH_WS_ORIGINS=*"
|
||||
- "GETH_HTTP_API=eth,net,debug,admin,web3"
|
||||
entrypoint: ["geth"]
|
||||
command: --goat=testnet3
|
||||
image: ${GOAT_GETH_IMAGE:-ghcr.io/goatnetwork/goat-geth}:${GOAT_TESTNET3_GETH_VERSION:-v0.1.7}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
volumes:
|
||||
- "goat-testnet3-geth-archive-leveldb-hash:/root/.ethereum"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.goat-testnet3-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/goat-testnet3-archive"
|
||||
- "traefik.http.services.goat-testnet3-geth-archive-leveldb-hash.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.entrypoints=websecure"
|
||||
- "traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-testnet3-archive`)"
|
||||
- "traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.middlewares=goat-testnet3-geth-archive-leveldb-hash-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- 8551
|
||||
|
||||
goat-testnet3-archive-node:
|
||||
image: ghcr.io/goatnetwork/goat:testnet3
|
||||
stop_grace_period: 30s
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
volumes:
|
||||
- "goat-testnet3-geth-archive-leveldb-hash_node:/root/.goat"
|
||||
- "goat-testnet3-geth-archive-leveldb-hash:/geth"
|
||||
depends_on:
|
||||
- goat-testnet3-archive
|
||||
ports:
|
||||
- "15461:15461"
|
||||
- "15461:15461/udp"
|
||||
entrypoint: ["goatd", "start"]
|
||||
command: >
|
||||
- --chain-id goat-testnet3
|
||||
- --goat.geth "/geth/geth.ipc"
|
||||
- --p2p.external-address "${IP}:15461"
|
||||
- --p2p.laddr "0.0.0.0:15461"
|
||||
- 10272:10272
|
||||
- 10272:10272/udp
|
||||
volumes:
|
||||
- ${GOAT_TESTNET3_GETH_ARCHIVE_LEVELDB_HASH_DATA:-goat-testnet3-geth-archive-leveldb-hash}:/root/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command: --goat=testnet3
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.goat-testnet3-geth-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/goat-testnet3-archive
|
||||
- traefik.http.services.goat-testnet3-geth-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-testnet3-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.rule=PathPrefix(`/goat-testnet3-archive`)}
|
||||
- traefik.http.routers.goat-testnet3-geth-archive-leveldb-hash.middlewares=goat-testnet3-geth-archive-leveldb-hash-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
goat-testnet3-geth-archive-leveldb-hash:
|
||||
goat-testnet3-geth-archive-leveldb-hash_node:
|
||||
goat-testnet3-geth-archive-leveldb-hash_node:
|
||||
|
||||
x-upstreams:
|
||||
- chain: goat-testnet3
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
@@ -1,68 +1,79 @@
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
goat-testnet3:
|
||||
image: ghcr.io/goatnetwork/goat-geth:v0.1.7
|
||||
stop_grace_period: 5m
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "10272:10272"
|
||||
- "10272:10272/udp"
|
||||
environment:
|
||||
- "GETH_GCMODE=full"
|
||||
- "GETH_SYNCMODE=snap"
|
||||
- "GETH_STATE_SCHEME=path"
|
||||
- "GETH_DB_ENGINE=pebble"
|
||||
- "GETH_NAT=extip:${IP}"
|
||||
- "GETH_PORT=10272"
|
||||
- "GETH_WS_PORT=8545"
|
||||
- "GETH_HTTP=true"
|
||||
- "GETH_HTTP_ADDR=0.0.0.0"
|
||||
- "GETH_HTTP_VHOSTS=*"
|
||||
- "GETH_WS=true"
|
||||
- "GETH_WS_ADDR=0.0.0.0"
|
||||
- "GETH_WS_ORIGINS=*"
|
||||
- "GETH_HTTP_API=eth,net,debug,admin,web3"
|
||||
entrypoint: ["geth"]
|
||||
command: --goat=testnet3
|
||||
image: ${GOAT_GETH_IMAGE:-ghcr.io/goatnetwork/goat-geth}:${GOAT_TESTNET3_GETH_VERSION:-v0.1.7}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
volumes:
|
||||
- "goat-testnet3-geth-pruned-pebble-path:/root/.ethereum"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.goat-testnet3-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/goat-testnet3"
|
||||
- "traefik.http.services.goat-testnet3-geth-pruned-pebble-path.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.entrypoints=websecure"
|
||||
- "traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-testnet3`)"
|
||||
- "traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.middlewares=goat-testnet3-geth-pruned-pebble-path-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
- 8551
|
||||
|
||||
goat-testnet3-node:
|
||||
image: ghcr.io/goatnetwork/goat:testnet3
|
||||
stop_grace_period: 30s
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
volumes:
|
||||
- "goat-testnet3-geth-pruned-pebble-path_node:/root/.goat"
|
||||
- "goat-testnet3-geth-pruned-pebble-path:/geth"
|
||||
depends_on:
|
||||
- goat-testnet3
|
||||
ports:
|
||||
- "15272:15272"
|
||||
- "15272:15272/udp"
|
||||
entrypoint: ["goatd", "start"]
|
||||
command: >
|
||||
- --chain-id goat-testnet3
|
||||
- --goat.geth "/geth/geth.ipc"
|
||||
- --p2p.external-address "${IP}:15272"
|
||||
- --p2p.laddr "0.0.0.0:15272"
|
||||
- 10272:10272
|
||||
- 10272:10272/udp
|
||||
volumes:
|
||||
- ${GOAT_TESTNET3_GETH_PRUNED_PEBBLE_PATH_DATA:-goat-testnet3-geth-pruned-pebble-path}:/root/.ethereum
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
command: --goat=testnet3
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.goat-testnet3-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/goat-testnet3
|
||||
- traefik.http.services.goat-testnet3-geth-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && PathPrefix(`/goat-testnet3`)}
|
||||
- ${NO_SSL:+traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.rule=PathPrefix(`/goat-testnet3`)}
|
||||
- traefik.http.routers.goat-testnet3-geth-pruned-pebble-path.middlewares=goat-testnet3-geth-pruned-pebble-path-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
goat-testnet3-geth-pruned-pebble-path:
|
||||
goat-testnet3-geth-pruned-pebble-path_node:
|
||||
goat-testnet3-geth-pruned-pebble-path_node:
|
||||
|
||||
x-upstreams:
|
||||
- chain: goat-testnet3
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
|
||||
43
harmony.yml
43
harmony.yml
@@ -1,43 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
harmony-mainnet:
|
||||
build: ./harmony/build
|
||||
command: bash -c "/harmony.sh && /binary --log.dir /harmony/log --run explorer --run.shard 0 --dns.zone t.hmny.io --http.ip 0.0.0.0 --datadir /harmony"
|
||||
sysctls:
|
||||
net.core.somaxconn: 1024
|
||||
# net.core.netdev_max_backlog: 65536
|
||||
net.ipv4.tcp_tw_reuse: 1
|
||||
net.ipv4.tcp_rmem: 4096 65536 16777216
|
||||
net.ipv4.tcp_wmem: 4096 65536 16777216
|
||||
# net.ipv4.tcp_mem: 65536 131072 262144
|
||||
ulimits:
|
||||
nproc: 65535
|
||||
nofile:
|
||||
soft: 65535
|
||||
hard: 65535
|
||||
expose:
|
||||
- "9500"
|
||||
- "9000"
|
||||
- "6000"
|
||||
- "30303"
|
||||
volumes:
|
||||
- ./harmony:/harmony/
|
||||
- ./bootstrap_skript/harmony.sh:/harmony.sh
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.harmony-mainnet-stripprefix.stripprefix.prefixes=/harmony"
|
||||
- "traefik.http.services.harmony-mainnet.loadbalancer.server.port=9500"
|
||||
- "traefik.http.routers.harmony-mainnet.entrypoints=websecure"
|
||||
- "traefik.http.routers.harmony-mainnet.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.harmony-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/harmony`)"
|
||||
- "traefik.http.routers.harmony-mainnet.middlewares=harmony-mainnet-stripprefix, ipwhitelist"
|
||||
- "prometheus-scrape.enabled=true"
|
||||
- "prometheus-scrape.port=9900"
|
||||
- "prometheus-scrape.job_name=harmony-mainnet"
|
||||
|
||||
volumes:
|
||||
harmony:
|
||||
@@ -1,59 +1,115 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
linea-mainnet-archive:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${LINEA_ERIGON3_IMAGE:-erigontech/erigon}:${LINEA_MAINNET_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10060:10060"
|
||||
- "10060:10060/udp"
|
||||
- "25060:25060"
|
||||
- "25060:25060/udp"
|
||||
- "30060:30060"
|
||||
- "30060:30060/udp"
|
||||
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10060:10060
|
||||
- 10060:10060/udp
|
||||
- 30060:30060
|
||||
- 30060:30060/udp
|
||||
- 35060:35060
|
||||
- 35060:35060/udp
|
||||
volumes:
|
||||
- linea-mainnet-erigon3-archive-trace:/root/.local/share/erigon
|
||||
- ${LINEA_MAINNET_ERIGON3_ARCHIVE_TRACE_DATA:-linea-mainnet-erigon3-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
- ./linea/shared:/config
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10060
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30060
|
||||
- --p2p.allowed-ports=35060
|
||||
- --chain=mainnet
|
||||
|
||||
- --bootnoodes=enode://069800db9e6e0ec9cadca670994ef1aea2cfd3d88133e63ecadbc1cdbd1a5847b09838ee08d8b5f02a9c32ee13abeb4d4104bb5514e5322c9d7ee19f41ff3e51@3.132.73.210:31002,enode://a8e03a71eab12ec4b47bb6e19169d8e4dc7a58373a2476969bbe463f2dded6003037fa4dd5f71e15027f7fc8d7340956fbbefed67ddd116ac19a7f74da034b61@3.132.73.210:31003,enode://97706526cf79df9d930003644f9156805f6c8bd964fc79e083444f7014ce10c9bdd2c5049e63b58040dca1d4c82ebef970822198cf0714de830cff4111534ff1@18.223.198.165:31004,enode://24e1c654a801975a96b7f54ebd7452ab15777fc635c1db25bdbd4425fdb04e7f4768e9e838a87ab724320a765e41631d5d37758c933ad0e8668693558125c8aa@18.223.198.165:31000,enode://27010891d960f73d272a553f72b6336c6698db3ade98d631f09c764e57674a797be5ebc6829ddbb65ab564f439ebc75215d20aa98b6f351d12ea623e7d139ac3@3.132.73.210:31001,enode://228e1b8a4931e46f383e30721dac21fb8fb4e5e1b32c870e13b25478c82db3dc1cd9e7ceb93d302a766466b55638cc9c5cbfc43aa48fa41ced19baf365951f76@3.1.142.64:31002,enode://c22eb0d40fc3ad5ea710aeddea906567778166bfe18c157955e8c39b23a46c45db18a0fa2ba07f2b64c81178a8c796aec2a29151533920ead06fcdfc6d8d03c6@47.128.192.57:31004,enode://8ce733abe39fd7ae0a278b9893f85c1193c611a3886168690dd843435460f22cc4d61f9e8d0ace7f5905836a665319a31cccdaacdada2acc69972c382ecce7db@3.1.142.64:31003,enode://b7c1b2bed65a855f7a2104aac9a14674dfdf018fdac763415b373b29ce18cdb81d36328ba4e5c9f12629f3a50c3e8f9ee048f22dbdbe93a82813da89c6b81334@51.20.235.126:31004,enode://95270e0550848a72fb141cf27f1c4ea10714edde365b411dc0fa06c81c0f282ce155eb9fa472b6b8bb9ee98395eeaf4c5a7b02a01fe58b37ea98ba152eda4c37@13.50.94.193:31000,enode://72013391755f24f08567b932feeeec4c893c06e0b1fb480890c83bf87fd277ad86a5ab9cb586db9ae9970371a2f8cb0c96f6c9f69045abca0fb801db7f047138@51.20.235.126:31001
|
||||
|
||||
networks:
|
||||
- chains
|
||||
entrypoint: ["/bin/sh", "-c", "[ ! -f /root/.local/share/erigon/chaindata/mdbx.dat ] && erigon init /config/genesis.json; exec erigon \"$@\""]
|
||||
command:
|
||||
- --network=goerli
|
||||
- --networkid=59144
|
||||
- --prune.mode=archive
|
||||
- --port=10060
|
||||
- --p2p.allowed-ports=25060
|
||||
- --p2p.allowed-ports=30060
|
||||
- --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
|
||||
- --bootnodes=enode://069800db9e6e0ec9cadca670994ef1aea2cfd3d88133e63ecadbc1cdbd1a5847b09838ee08d8b5f02a9c32ee13abeb4d4104bb5514e5322c9d7ee19f41ff3e51@3.132.73.210:31002,enode://a8e03a71eab12ec4b47bb6e19169d8e4dc7a58373a2476969bbe463f2dded6003037fa4dd5f71e15027f7fc8d7340956fbbefed67ddd116ac19a7f74da034b61@3.132.73.210:31003,enode://97706526cf79df9d930003644f9156805f6c8bd964fc79e083444f7014ce10c9bdd2c5049e63b58040dca1d4c82ebef970822198cf0714de830cff4111534ff1@18.223.198.165:31004,enode://24e1c654a801975a96b7f54ebd7452ab15777fc635c1db25bdbd4425fdb04e7f4768e9e838a87ab724320a765e41631d5d37758c933ad0e8668693558125c8aa@18.223.198.165:31000,enode://27010891d960f73d272a553f72b6336c6698db3ade98d631f09c764e57674a797be5ebc6829ddbb65ab564f439ebc75215d20aa98b6f351d12ea623e7d139ac3@3.132.73.210:31001,enode://228e1b8a4931e46f383e30721dac21fb8fb4e5e1b32c870e13b25478c82db3dc1cd9e7ceb93d302a766466b55638cc9c5cbfc43aa48fa41ced19baf365951f76@3.1.142.64:31002,enode://c22eb0d40fc3ad5ea710aeddea906567778166bfe18c157955e8c39b23a46c45db18a0fa2ba07f2b64c81178a8c796aec2a29151533920ead06fcdfc6d8d03c6@47.128.192.57:31004,enode://8ce733abe39fd7ae0a278b9893f85c1193c611a3886168690dd843435460f22cc4d61f9e8d0ace7f5905836a665319a31cccdaacdada2acc69972c382ecce7db@3.1.142.64:31003,enode://b7c1b2bed65a855f7a2104aac9a14674dfdf018fdac763415b373b29ce18cdb81d36328ba4e5c9f12629f3a50c3e8f9ee048f22dbdbe93a82813da89c6b81334@51.20.235.126:31004,enode://95270e0550848a72fb141cf27f1c4ea10714edde365b411dc0fa06c81c0f282ce155eb9fa472b6b8bb9ee98395eeaf4c5a7b02a01fe58b37ea98ba152eda4c37@13.50.94.193:31000,enode://72013391755f24f08567b932feeeec4c893c06e0b1fb480890c83bf87fd277ad86a5ab9cb586db9ae9970371a2f8cb0c96f6c9f69045abca0fb801db7f047138@51.20.235.126:31001
|
||||
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.linea-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/linea-mainnet-archive"
|
||||
- "traefik.http.services.linea-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-mainnet-archive`)"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-archive-trace.middlewares=linea-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.linea-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/linea-mainnet-archive
|
||||
- traefik.http.services.linea-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.linea-mainnet-erigon3-archive-trace.rule=PathPrefix(`/linea-mainnet-archive`)}
|
||||
- traefik.http.routers.linea-mainnet-erigon3-archive-trace.middlewares=linea-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
linea-mainnet-erigon3-archive-trace:
|
||||
linea-mainnet-erigon3-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,59 +1,115 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
linea-mainnet-minimal:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${LINEA_ERIGON3_IMAGE:-erigontech/erigon}:${LINEA_MAINNET_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10000:10000"
|
||||
- "10000:10000/udp"
|
||||
- "25000:25000"
|
||||
- "25000:25000/udp"
|
||||
- "30000:30000"
|
||||
- "30000:30000/udp"
|
||||
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10060:10060
|
||||
- 10060:10060/udp
|
||||
- 30060:30060
|
||||
- 30060:30060/udp
|
||||
- 35060:35060
|
||||
- 35060:35060/udp
|
||||
volumes:
|
||||
- linea-mainnet-erigon3-minimal-trace:/root/.local/share/erigon
|
||||
- ${LINEA_MAINNET_ERIGON3_MINIMAL_TRACE_DATA:-linea-mainnet-erigon3-minimal-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
- ./linea/shared:/config
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10060
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30060
|
||||
- --p2p.allowed-ports=35060
|
||||
- --chain=mainnet
|
||||
|
||||
- --bootnoodes=enode://069800db9e6e0ec9cadca670994ef1aea2cfd3d88133e63ecadbc1cdbd1a5847b09838ee08d8b5f02a9c32ee13abeb4d4104bb5514e5322c9d7ee19f41ff3e51@3.132.73.210:31002,enode://a8e03a71eab12ec4b47bb6e19169d8e4dc7a58373a2476969bbe463f2dded6003037fa4dd5f71e15027f7fc8d7340956fbbefed67ddd116ac19a7f74da034b61@3.132.73.210:31003,enode://97706526cf79df9d930003644f9156805f6c8bd964fc79e083444f7014ce10c9bdd2c5049e63b58040dca1d4c82ebef970822198cf0714de830cff4111534ff1@18.223.198.165:31004,enode://24e1c654a801975a96b7f54ebd7452ab15777fc635c1db25bdbd4425fdb04e7f4768e9e838a87ab724320a765e41631d5d37758c933ad0e8668693558125c8aa@18.223.198.165:31000,enode://27010891d960f73d272a553f72b6336c6698db3ade98d631f09c764e57674a797be5ebc6829ddbb65ab564f439ebc75215d20aa98b6f351d12ea623e7d139ac3@3.132.73.210:31001,enode://228e1b8a4931e46f383e30721dac21fb8fb4e5e1b32c870e13b25478c82db3dc1cd9e7ceb93d302a766466b55638cc9c5cbfc43aa48fa41ced19baf365951f76@3.1.142.64:31002,enode://c22eb0d40fc3ad5ea710aeddea906567778166bfe18c157955e8c39b23a46c45db18a0fa2ba07f2b64c81178a8c796aec2a29151533920ead06fcdfc6d8d03c6@47.128.192.57:31004,enode://8ce733abe39fd7ae0a278b9893f85c1193c611a3886168690dd843435460f22cc4d61f9e8d0ace7f5905836a665319a31cccdaacdada2acc69972c382ecce7db@3.1.142.64:31003,enode://b7c1b2bed65a855f7a2104aac9a14674dfdf018fdac763415b373b29ce18cdb81d36328ba4e5c9f12629f3a50c3e8f9ee048f22dbdbe93a82813da89c6b81334@51.20.235.126:31004,enode://95270e0550848a72fb141cf27f1c4ea10714edde365b411dc0fa06c81c0f282ce155eb9fa472b6b8bb9ee98395eeaf4c5a7b02a01fe58b37ea98ba152eda4c37@13.50.94.193:31000,enode://72013391755f24f08567b932feeeec4c893c06e0b1fb480890c83bf87fd277ad86a5ab9cb586db9ae9970371a2f8cb0c96f6c9f69045abca0fb801db7f047138@51.20.235.126:31001
|
||||
|
||||
networks:
|
||||
- chains
|
||||
entrypoint: ["/bin/sh", "-c", "[ ! -f /root/.local/share/erigon/chaindata/mdbx.dat ] && erigon init /config/genesis.json; exec erigon \"$@\""]
|
||||
command:
|
||||
- --network=goerli
|
||||
- --networkid=59144
|
||||
- --prune.mode=minimal
|
||||
- --port=10000
|
||||
- --p2p.allowed-ports=25000
|
||||
- --p2p.allowed-ports=30000
|
||||
- --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
|
||||
- --bootnodes=enode://069800db9e6e0ec9cadca670994ef1aea2cfd3d88133e63ecadbc1cdbd1a5847b09838ee08d8b5f02a9c32ee13abeb4d4104bb5514e5322c9d7ee19f41ff3e51@3.132.73.210:31002,enode://a8e03a71eab12ec4b47bb6e19169d8e4dc7a58373a2476969bbe463f2dded6003037fa4dd5f71e15027f7fc8d7340956fbbefed67ddd116ac19a7f74da034b61@3.132.73.210:31003,enode://97706526cf79df9d930003644f9156805f6c8bd964fc79e083444f7014ce10c9bdd2c5049e63b58040dca1d4c82ebef970822198cf0714de830cff4111534ff1@18.223.198.165:31004,enode://24e1c654a801975a96b7f54ebd7452ab15777fc635c1db25bdbd4425fdb04e7f4768e9e838a87ab724320a765e41631d5d37758c933ad0e8668693558125c8aa@18.223.198.165:31000,enode://27010891d960f73d272a553f72b6336c6698db3ade98d631f09c764e57674a797be5ebc6829ddbb65ab564f439ebc75215d20aa98b6f351d12ea623e7d139ac3@3.132.73.210:31001,enode://228e1b8a4931e46f383e30721dac21fb8fb4e5e1b32c870e13b25478c82db3dc1cd9e7ceb93d302a766466b55638cc9c5cbfc43aa48fa41ced19baf365951f76@3.1.142.64:31002,enode://c22eb0d40fc3ad5ea710aeddea906567778166bfe18c157955e8c39b23a46c45db18a0fa2ba07f2b64c81178a8c796aec2a29151533920ead06fcdfc6d8d03c6@47.128.192.57:31004,enode://8ce733abe39fd7ae0a278b9893f85c1193c611a3886168690dd843435460f22cc4d61f9e8d0ace7f5905836a665319a31cccdaacdada2acc69972c382ecce7db@3.1.142.64:31003,enode://b7c1b2bed65a855f7a2104aac9a14674dfdf018fdac763415b373b29ce18cdb81d36328ba4e5c9f12629f3a50c3e8f9ee048f22dbdbe93a82813da89c6b81334@51.20.235.126:31004,enode://95270e0550848a72fb141cf27f1c4ea10714edde365b411dc0fa06c81c0f282ce155eb9fa472b6b8bb9ee98395eeaf4c5a7b02a01fe58b37ea98ba152eda4c37@13.50.94.193:31000,enode://72013391755f24f08567b932feeeec4c893c06e0b1fb480890c83bf87fd277ad86a5ab9cb586db9ae9970371a2f8cb0c96f6c9f69045abca0fb801db7f047138@51.20.235.126:31001
|
||||
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.linea-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/linea-mainnet-minimal"
|
||||
- "traefik.http.services.linea-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-minimal-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-mainnet-minimal`)"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-minimal-trace.middlewares=linea-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.linea-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/linea-mainnet-minimal
|
||||
- traefik.http.services.linea-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-minimal-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-mainnet-minimal`)}
|
||||
- ${NO_SSL:+traefik.http.routers.linea-mainnet-erigon3-minimal-trace.rule=PathPrefix(`/linea-mainnet-minimal`)}
|
||||
- traefik.http.routers.linea-mainnet-erigon3-minimal-trace.middlewares=linea-mainnet-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
linea-mainnet-erigon3-minimal-trace:
|
||||
linea-mainnet-erigon3-minimal-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,59 +1,115 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
linea-mainnet:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${LINEA_ERIGON3_IMAGE:-erigontech/erigon}:${LINEA_MAINNET_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10622:10622"
|
||||
- "10622:10622/udp"
|
||||
- "25622:25622"
|
||||
- "25622:25622/udp"
|
||||
- "30622:30622"
|
||||
- "30622:30622/udp"
|
||||
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10060:10060
|
||||
- 10060:10060/udp
|
||||
- 30060:30060
|
||||
- 30060:30060/udp
|
||||
- 35060:35060
|
||||
- 35060:35060/udp
|
||||
volumes:
|
||||
- linea-mainnet-erigon3-pruned-trace:/root/.local/share/erigon
|
||||
- ${LINEA_MAINNET_ERIGON3_PRUNED_TRACE_DATA:-linea-mainnet-erigon3-pruned-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
- ./linea/shared:/config
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10060
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30060
|
||||
- --p2p.allowed-ports=35060
|
||||
- --chain=mainnet
|
||||
|
||||
- --bootnoodes=enode://069800db9e6e0ec9cadca670994ef1aea2cfd3d88133e63ecadbc1cdbd1a5847b09838ee08d8b5f02a9c32ee13abeb4d4104bb5514e5322c9d7ee19f41ff3e51@3.132.73.210:31002,enode://a8e03a71eab12ec4b47bb6e19169d8e4dc7a58373a2476969bbe463f2dded6003037fa4dd5f71e15027f7fc8d7340956fbbefed67ddd116ac19a7f74da034b61@3.132.73.210:31003,enode://97706526cf79df9d930003644f9156805f6c8bd964fc79e083444f7014ce10c9bdd2c5049e63b58040dca1d4c82ebef970822198cf0714de830cff4111534ff1@18.223.198.165:31004,enode://24e1c654a801975a96b7f54ebd7452ab15777fc635c1db25bdbd4425fdb04e7f4768e9e838a87ab724320a765e41631d5d37758c933ad0e8668693558125c8aa@18.223.198.165:31000,enode://27010891d960f73d272a553f72b6336c6698db3ade98d631f09c764e57674a797be5ebc6829ddbb65ab564f439ebc75215d20aa98b6f351d12ea623e7d139ac3@3.132.73.210:31001,enode://228e1b8a4931e46f383e30721dac21fb8fb4e5e1b32c870e13b25478c82db3dc1cd9e7ceb93d302a766466b55638cc9c5cbfc43aa48fa41ced19baf365951f76@3.1.142.64:31002,enode://c22eb0d40fc3ad5ea710aeddea906567778166bfe18c157955e8c39b23a46c45db18a0fa2ba07f2b64c81178a8c796aec2a29151533920ead06fcdfc6d8d03c6@47.128.192.57:31004,enode://8ce733abe39fd7ae0a278b9893f85c1193c611a3886168690dd843435460f22cc4d61f9e8d0ace7f5905836a665319a31cccdaacdada2acc69972c382ecce7db@3.1.142.64:31003,enode://b7c1b2bed65a855f7a2104aac9a14674dfdf018fdac763415b373b29ce18cdb81d36328ba4e5c9f12629f3a50c3e8f9ee048f22dbdbe93a82813da89c6b81334@51.20.235.126:31004,enode://95270e0550848a72fb141cf27f1c4ea10714edde365b411dc0fa06c81c0f282ce155eb9fa472b6b8bb9ee98395eeaf4c5a7b02a01fe58b37ea98ba152eda4c37@13.50.94.193:31000,enode://72013391755f24f08567b932feeeec4c893c06e0b1fb480890c83bf87fd277ad86a5ab9cb586db9ae9970371a2f8cb0c96f6c9f69045abca0fb801db7f047138@51.20.235.126:31001
|
||||
|
||||
networks:
|
||||
- chains
|
||||
entrypoint: ["/bin/sh", "-c", "[ ! -f /root/.local/share/erigon/chaindata/mdbx.dat ] && erigon init /config/genesis.json; exec erigon \"$@\""]
|
||||
command:
|
||||
- --network=goerli
|
||||
- --networkid=59144
|
||||
- --prune.mode=full
|
||||
- --port=10622
|
||||
- --p2p.allowed-ports=25622
|
||||
- --p2p.allowed-ports=30622
|
||||
- --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
|
||||
- --bootnodes=enode://069800db9e6e0ec9cadca670994ef1aea2cfd3d88133e63ecadbc1cdbd1a5847b09838ee08d8b5f02a9c32ee13abeb4d4104bb5514e5322c9d7ee19f41ff3e51@3.132.73.210:31002,enode://a8e03a71eab12ec4b47bb6e19169d8e4dc7a58373a2476969bbe463f2dded6003037fa4dd5f71e15027f7fc8d7340956fbbefed67ddd116ac19a7f74da034b61@3.132.73.210:31003,enode://97706526cf79df9d930003644f9156805f6c8bd964fc79e083444f7014ce10c9bdd2c5049e63b58040dca1d4c82ebef970822198cf0714de830cff4111534ff1@18.223.198.165:31004,enode://24e1c654a801975a96b7f54ebd7452ab15777fc635c1db25bdbd4425fdb04e7f4768e9e838a87ab724320a765e41631d5d37758c933ad0e8668693558125c8aa@18.223.198.165:31000,enode://27010891d960f73d272a553f72b6336c6698db3ade98d631f09c764e57674a797be5ebc6829ddbb65ab564f439ebc75215d20aa98b6f351d12ea623e7d139ac3@3.132.73.210:31001,enode://228e1b8a4931e46f383e30721dac21fb8fb4e5e1b32c870e13b25478c82db3dc1cd9e7ceb93d302a766466b55638cc9c5cbfc43aa48fa41ced19baf365951f76@3.1.142.64:31002,enode://c22eb0d40fc3ad5ea710aeddea906567778166bfe18c157955e8c39b23a46c45db18a0fa2ba07f2b64c81178a8c796aec2a29151533920ead06fcdfc6d8d03c6@47.128.192.57:31004,enode://8ce733abe39fd7ae0a278b9893f85c1193c611a3886168690dd843435460f22cc4d61f9e8d0ace7f5905836a665319a31cccdaacdada2acc69972c382ecce7db@3.1.142.64:31003,enode://b7c1b2bed65a855f7a2104aac9a14674dfdf018fdac763415b373b29ce18cdb81d36328ba4e5c9f12629f3a50c3e8f9ee048f22dbdbe93a82813da89c6b81334@51.20.235.126:31004,enode://95270e0550848a72fb141cf27f1c4ea10714edde365b411dc0fa06c81c0f282ce155eb9fa472b6b8bb9ee98395eeaf4c5a7b02a01fe58b37ea98ba152eda4c37@13.50.94.193:31000,enode://72013391755f24f08567b932feeeec4c893c06e0b1fb480890c83bf87fd277ad86a5ab9cb586db9ae9970371a2f8cb0c96f6c9f69045abca0fb801db7f047138@51.20.235.126:31001
|
||||
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.linea-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/linea-mainnet"
|
||||
- "traefik.http.services.linea-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-pruned-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-mainnet`)"
|
||||
- "traefik.http.routers.linea-mainnet-erigon3-pruned-trace.middlewares=linea-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.linea-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/linea-mainnet
|
||||
- traefik.http.services.linea-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-mainnet`)}
|
||||
- ${NO_SSL:+traefik.http.routers.linea-mainnet-erigon3-pruned-trace.rule=PathPrefix(`/linea-mainnet`)}
|
||||
- traefik.http.routers.linea-mainnet-erigon3-pruned-trace.middlewares=linea-mainnet-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
linea-mainnet-erigon3-pruned-trace:
|
||||
linea-mainnet-erigon3-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,59 +1,115 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
linea-sepolia-archive:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${LINEA_ERIGON3_IMAGE:-erigontech/erigon}:${LINEA_SEPOLIA_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10235:10235"
|
||||
- "10235:10235/udp"
|
||||
- "25235:25235"
|
||||
- "25235:25235/udp"
|
||||
- "30235:30235"
|
||||
- "30235:30235/udp"
|
||||
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10235:10235
|
||||
- 10235:10235/udp
|
||||
- 30235:30235
|
||||
- 30235:30235/udp
|
||||
- 35235:35235
|
||||
- 35235:35235/udp
|
||||
volumes:
|
||||
- linea-sepolia-erigon3-archive-trace:/root/.local/share/erigon
|
||||
- ${LINEA_SEPOLIA_ERIGON3_ARCHIVE_TRACE_DATA:-linea-sepolia-erigon3-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
- ./linea/sepolia/shared:/config
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10235
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30235
|
||||
- --p2p.allowed-ports=35235
|
||||
- --chain=sepolia
|
||||
|
||||
- --bootnoodes=enode://6f20afbe4397e51b717a7c1ad3095e79aee48c835eebd9237a3e8a16951ade1fe0e66e981e30ea269849fcb6ba03d838da37f524fabd2a557474194a2e2604fa@18.221.100.27:31002,enode://ce1e0d8e0500cb5c0ac56bdcdafb2d6320c3a2c5125b5ccf12f5dfc9b47ee74acbcafc32559017613136c9c36a0ce74ba4f83b7fb8244f099f3b15708d9d3129@3.23.75.47:31000,enode://1b026a5eb0ae74300f58987d235ef0e3a550df963345cb3574be3b0b54378bd11f14dfd515a8976f2c2d2826090e9507b8ccc24f896a9ffffffcabcfd996a733@3.129.120.128:31001
|
||||
|
||||
networks:
|
||||
- chains
|
||||
entrypoint: ["/bin/sh", "-c", "[ ! -f /root/.local/share/erigon/chaindata/mdbx.dat ] && erigon init /config/genesis.json; exec erigon \"$@\""]
|
||||
command:
|
||||
- --network=goerli
|
||||
- --networkid=59141
|
||||
- --prune.mode=archive
|
||||
- --port=10235
|
||||
- --p2p.allowed-ports=25235
|
||||
- --p2p.allowed-ports=30235
|
||||
- --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
|
||||
- --bootnodes=enode://6f20afbe4397e51b717a7c1ad3095e79aee48c835eebd9237a3e8a16951ade1fe0e66e981e30ea269849fcb6ba03d838da37f524fabd2a557474194a2e2604fa@18.221.100.27:31002,enode://ce1e0d8e0500cb5c0ac56bdcdafb2d6320c3a2c5125b5ccf12f5dfc9b47ee74acbcafc32559017613136c9c36a0ce74ba4f83b7fb8244f099f3b15708d9d3129@3.23.75.47:31000,enode://1b026a5eb0ae74300f58987d235ef0e3a550df963345cb3574be3b0b54378bd11f14dfd515a8976f2c2d2826090e9507b8ccc24f896a9ffffffcabcfd996a733@3.129.120.128:31001
|
||||
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.linea-sepolia-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/linea-sepolia-archive"
|
||||
- "traefik.http.services.linea-sepolia-erigon3-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-sepolia-archive`)"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-archive-trace.middlewares=linea-sepolia-erigon3-archive-trace-stripprefix, ipwhitelist"
|
||||
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.linea-sepolia-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/linea-sepolia-archive
|
||||
- traefik.http.services.linea-sepolia-erigon3-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.linea-sepolia-erigon3-archive-trace.rule=PathPrefix(`/linea-sepolia-archive`)}
|
||||
- traefik.http.routers.linea-sepolia-erigon3-archive-trace.middlewares=linea-sepolia-erigon3-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
linea-sepolia-erigon3-archive-trace:
|
||||
linea-sepolia-erigon3-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,59 +1,115 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
linea-sepolia-minimal:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${LINEA_ERIGON3_IMAGE:-erigontech/erigon}:${LINEA_SEPOLIA_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10410:10410"
|
||||
- "10410:10410/udp"
|
||||
- "25410:25410"
|
||||
- "25410:25410/udp"
|
||||
- "30410:30410"
|
||||
- "30410:30410/udp"
|
||||
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10235:10235
|
||||
- 10235:10235/udp
|
||||
- 30235:30235
|
||||
- 30235:30235/udp
|
||||
- 35235:35235
|
||||
- 35235:35235/udp
|
||||
volumes:
|
||||
- linea-sepolia-erigon3-minimal-trace:/root/.local/share/erigon
|
||||
- ${LINEA_SEPOLIA_ERIGON3_MINIMAL_TRACE_DATA:-linea-sepolia-erigon3-minimal-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
- ./linea/sepolia/shared:/config
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10235
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30235
|
||||
- --p2p.allowed-ports=35235
|
||||
- --chain=sepolia
|
||||
|
||||
- --bootnoodes=enode://6f20afbe4397e51b717a7c1ad3095e79aee48c835eebd9237a3e8a16951ade1fe0e66e981e30ea269849fcb6ba03d838da37f524fabd2a557474194a2e2604fa@18.221.100.27:31002,enode://ce1e0d8e0500cb5c0ac56bdcdafb2d6320c3a2c5125b5ccf12f5dfc9b47ee74acbcafc32559017613136c9c36a0ce74ba4f83b7fb8244f099f3b15708d9d3129@3.23.75.47:31000,enode://1b026a5eb0ae74300f58987d235ef0e3a550df963345cb3574be3b0b54378bd11f14dfd515a8976f2c2d2826090e9507b8ccc24f896a9ffffffcabcfd996a733@3.129.120.128:31001
|
||||
|
||||
networks:
|
||||
- chains
|
||||
entrypoint: ["/bin/sh", "-c", "[ ! -f /root/.local/share/erigon/chaindata/mdbx.dat ] && erigon init /config/genesis.json; exec erigon \"$@\""]
|
||||
command:
|
||||
- --network=goerli
|
||||
- --networkid=59141
|
||||
- --prune.mode=minimal
|
||||
- --port=10410
|
||||
- --p2p.allowed-ports=25410
|
||||
- --p2p.allowed-ports=30410
|
||||
- --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
|
||||
- --bootnodes=enode://6f20afbe4397e51b717a7c1ad3095e79aee48c835eebd9237a3e8a16951ade1fe0e66e981e30ea269849fcb6ba03d838da37f524fabd2a557474194a2e2604fa@18.221.100.27:31002,enode://ce1e0d8e0500cb5c0ac56bdcdafb2d6320c3a2c5125b5ccf12f5dfc9b47ee74acbcafc32559017613136c9c36a0ce74ba4f83b7fb8244f099f3b15708d9d3129@3.23.75.47:31000,enode://1b026a5eb0ae74300f58987d235ef0e3a550df963345cb3574be3b0b54378bd11f14dfd515a8976f2c2d2826090e9507b8ccc24f896a9ffffffcabcfd996a733@3.129.120.128:31001
|
||||
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.linea-sepolia-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/linea-sepolia-minimal"
|
||||
- "traefik.http.services.linea-sepolia-erigon3-minimal-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-minimal-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-minimal-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-sepolia-minimal`)"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-minimal-trace.middlewares=linea-sepolia-erigon3-minimal-trace-stripprefix, ipwhitelist"
|
||||
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.linea-sepolia-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/linea-sepolia-minimal
|
||||
- traefik.http.services.linea-sepolia-erigon3-minimal-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-minimal-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-minimal-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-minimal-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-sepolia-minimal`)}
|
||||
- ${NO_SSL:+traefik.http.routers.linea-sepolia-erigon3-minimal-trace.rule=PathPrefix(`/linea-sepolia-minimal`)}
|
||||
- traefik.http.routers.linea-sepolia-erigon3-minimal-trace.middlewares=linea-sepolia-erigon3-minimal-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
linea-sepolia-erigon3-minimal-trace:
|
||||
linea-sepolia-erigon3-minimal-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,59 +1,115 @@
|
||||
|
||||
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
linea-sepolia:
|
||||
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0}
|
||||
image: ${LINEA_ERIGON3_IMAGE:-erigontech/erigon}:${LINEA_SEPOLIA_ERIGON3_VERSION:-v3.0.0}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- "8545"
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10620:10620"
|
||||
- "10620:10620/udp"
|
||||
- "25620:25620"
|
||||
- "25620:25620/udp"
|
||||
- "30620:30620"
|
||||
- "30620:30620/udp"
|
||||
|
||||
environment:
|
||||
- "IP=${IP}"
|
||||
- 10235:10235
|
||||
- 10235:10235/udp
|
||||
- 30235:30235
|
||||
- 30235:30235/udp
|
||||
- 35235:35235
|
||||
- 35235:35235/udp
|
||||
volumes:
|
||||
- linea-sepolia-erigon3-pruned-trace:/root/.local/share/erigon
|
||||
- ${LINEA_SEPOLIA_ERIGON3_PRUNED_TRACE_DATA:-linea-sepolia-erigon3-pruned-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
- ./linea/sepolia/shared:/config
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10235
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --prune.mode=
|
||||
|
||||
- --p2p.allowed-ports=30235
|
||||
- --p2p.allowed-ports=35235
|
||||
- --chain=sepolia
|
||||
|
||||
- --bootnoodes=enode://6f20afbe4397e51b717a7c1ad3095e79aee48c835eebd9237a3e8a16951ade1fe0e66e981e30ea269849fcb6ba03d838da37f524fabd2a557474194a2e2604fa@18.221.100.27:31002,enode://ce1e0d8e0500cb5c0ac56bdcdafb2d6320c3a2c5125b5ccf12f5dfc9b47ee74acbcafc32559017613136c9c36a0ce74ba4f83b7fb8244f099f3b15708d9d3129@3.23.75.47:31000,enode://1b026a5eb0ae74300f58987d235ef0e3a550df963345cb3574be3b0b54378bd11f14dfd515a8976f2c2d2826090e9507b8ccc24f896a9ffffffcabcfd996a733@3.129.120.128:31001
|
||||
|
||||
networks:
|
||||
- chains
|
||||
entrypoint: ["/bin/sh", "-c", "[ ! -f /root/.local/share/erigon/chaindata/mdbx.dat ] && erigon init /config/genesis.json; exec erigon \"$@\""]
|
||||
command:
|
||||
- --network=goerli
|
||||
- --networkid=59141
|
||||
- --prune.mode=full
|
||||
- --port=10620
|
||||
- --p2p.allowed-ports=25620
|
||||
- --p2p.allowed-ports=30620
|
||||
- --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
|
||||
- --bootnodes=enode://6f20afbe4397e51b717a7c1ad3095e79aee48c835eebd9237a3e8a16951ade1fe0e66e981e30ea269849fcb6ba03d838da37f524fabd2a557474194a2e2604fa@18.221.100.27:31002,enode://ce1e0d8e0500cb5c0ac56bdcdafb2d6320c3a2c5125b5ccf12f5dfc9b47ee74acbcafc32559017613136c9c36a0ce74ba4f83b7fb8244f099f3b15708d9d3129@3.23.75.47:31000,enode://1b026a5eb0ae74300f58987d235ef0e3a550df963345cb3574be3b0b54378bd11f14dfd515a8976f2c2d2826090e9507b8ccc24f896a9ffffffcabcfd996a733@3.129.120.128:31001
|
||||
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.linea-sepolia-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/linea-sepolia"
|
||||
- "traefik.http.services.linea-sepolia-erigon3-pruned-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-pruned-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-pruned-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-sepolia`)"
|
||||
- "traefik.http.routers.linea-sepolia-erigon3-pruned-trace.middlewares=linea-sepolia-erigon3-pruned-trace-stripprefix, ipwhitelist"
|
||||
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.linea-sepolia-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/linea-sepolia
|
||||
- traefik.http.services.linea-sepolia-erigon3-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-pruned-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-sepolia`)}
|
||||
- ${NO_SSL:+traefik.http.routers.linea-sepolia-erigon3-pruned-trace.rule=PathPrefix(`/linea-sepolia`)}
|
||||
- traefik.http.routers.linea-sepolia-erigon3-pruned-trace.middlewares=linea-sepolia-erigon3-pruned-trace-stripprefix, ipwhitelist
|
||||
|
||||
volumes:
|
||||
linea-sepolia-erigon3-pruned-trace:
|
||||
linea-sepolia-erigon3-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
|
||||
nethermind-gnosis-chiado:
|
||||
image: nethermind/nethermind:${NETHERMIND_VERSION:-1.31.2}
|
||||
user: root
|
||||
volumes:
|
||||
- "gnosis-chiado-nethermind-fullnode:/data"
|
||||
- .jwtsecret:/jwtsecret
|
||||
expose:
|
||||
- "7806"
|
||||
- "9090"
|
||||
- "8545"
|
||||
- "8551"
|
||||
ports:
|
||||
- "7806:7806"
|
||||
- "7806:7806/udp"
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
#- "NETHERMIND_SYNCCONFIG_NONVALIDATORNODE=true"
|
||||
##- "NETHERMIND_SYNCCONFIG_PIVOTHASH=0x4d2eedcf61a0b19ca46b6f944e732ef6baef71b9e879912a6ae122a7c4c2bd17"
|
||||
##- "NETHERMIND_SYNCCONFIG_PIVOTNUMBER=32299602"
|
||||
- "NETHERMIND_SYNCCONFIG_FASTSYNC=true"
|
||||
#- "NETHERMIND_SYNCCONFIG_DOWNLOADRECEIPTSINFASTSYNC=false"
|
||||
#- "NETHERMIND_SYNCCONFIG_DOWNLOADBODIESINFASTSYNC=false"
|
||||
#- "NETHERMIND_SYNCCONFIG_DOWNLOADHEADERSINFASTSYNC=false"
|
||||
command: |
|
||||
--config=chiado
|
||||
--datadir=/data
|
||||
--log=INFO
|
||||
--JsonRpc.Enabled=true
|
||||
--JsonRpc.Host=0.0.0.0
|
||||
--JsonRpc.Port=8545
|
||||
--JsonRpc.EnabledModules=[Web3,Eth,Subscribe,Net,Admin,Debug]
|
||||
--JsonRpc.JwtSecretFile=/jwtsecret
|
||||
--JsonRpc.EngineHost=0.0.0.0
|
||||
--JsonRpc.EnginePort=8551
|
||||
--Network.DiscoveryPort=7806
|
||||
--HealthChecks.Enabled=false
|
||||
--Pruning.CacheMb=2048
|
||||
stop_grace_period: 3m
|
||||
labels:
|
||||
- "prometheus-scrape.enabled=true"
|
||||
- "prometheus-scrape.port=6060"
|
||||
- "prometheus-scrape.job_name=nethermind"
|
||||
- "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.nethermind-gnosis-chiado-stripprefix.stripprefix.prefixes=/chiado"
|
||||
- "traefik.http.services.nethermind-gnosis-chiado.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.nethermind-gnosis-chiado.entrypoints=websecure"
|
||||
- "traefik.http.routers.nethermind-gnosis-chiado.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.nethermind-gnosis-chiado.rule=Host(`$DOMAIN`) && PathPrefix(`/chiado`)"
|
||||
- "traefik.http.routers.nethermind-gnosis-chiado.middlewares=nethermind-gnosis-chiado-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
logging:
|
||||
options:
|
||||
max-file: '1'
|
||||
compress: 'false'
|
||||
driver: local
|
||||
|
||||
lodestar-gnosis-chiado:
|
||||
image: chainsafe/lodestar:${LODESTAR_VERSION:-v1.27.1}
|
||||
restart: always
|
||||
networks:
|
||||
- chains
|
||||
ports:
|
||||
- 61460:61460/tcp # p2p
|
||||
- 61460:61460/udp # p2p
|
||||
expose:
|
||||
- 4000
|
||||
- 5054
|
||||
volumes:
|
||||
- lodestar-gnosis-chiado:/data
|
||||
- .jwtsecret:/jwt.hex:ro
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
environment:
|
||||
- NODE_OPTIONS=--max-old-space-size=6144
|
||||
command: |
|
||||
beacon
|
||||
--network=chiado
|
||||
--dataDir=/data
|
||||
--eth1=true
|
||||
--execution.urls=http://nethermind-gnosis-chiado:8551
|
||||
--jwt-secret=/jwt.hex
|
||||
--logFile=/data/logs/beacon.log
|
||||
--logFileLevel=info
|
||||
--port=61460
|
||||
--rest=true
|
||||
--rest.address=0.0.0.0
|
||||
--rest.port=4000
|
||||
--rest.cors=*
|
||||
--discv5=true
|
||||
--targetPeers=50
|
||||
--metrics=true
|
||||
--metrics.port=5054
|
||||
--checkpointSyncUrl=https://checkpoint.chiadochain.net/
|
||||
labels:
|
||||
- "prometheus-scrape.enabled=true"
|
||||
- "prometheus-scrape.port=5054"
|
||||
- "prometheus-scrape.job_name=lodestar-gnosis-chiado"
|
||||
- "prometheus-scrape.metrics_path=/metrics"
|
||||
|
||||
volumes:
|
||||
gnosis-chiado-nethermind-fullnode:
|
||||
lodestar-gnosis-chiado:
|
||||
@@ -1,108 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
|
||||
nethermind-gnosis:
|
||||
image: nethermind/nethermind:${NETHERMIND_VERSION:-1.30.2}
|
||||
user: root
|
||||
volumes:
|
||||
- "gnosis-nethermind-fullnode:/data"
|
||||
- .jwtsecret:/jwtsecret
|
||||
expose:
|
||||
- "1550"
|
||||
- "9090"
|
||||
- "8545"
|
||||
- "8551"
|
||||
ports:
|
||||
- "1550:1550"
|
||||
- "1550:1550/udp"
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
#- "NETHERMIND_SYNCCONFIG_NONVALIDATORNODE=true"
|
||||
##- "NETHERMIND_SYNCCONFIG_PIVOTHASH=0x4d2eedcf61a0b19ca46b6f944e732ef6baef71b9e879912a6ae122a7c4c2bd17"
|
||||
##- "NETHERMIND_SYNCCONFIG_PIVOTNUMBER=32299602"
|
||||
- "NETHERMIND_SYNCCONFIG_FASTSYNC=true"
|
||||
#- "NETHERMIND_SYNCCONFIG_DOWNLOADRECEIPTSINFASTSYNC=false"
|
||||
#- "NETHERMIND_SYNCCONFIG_DOWNLOADBODIESINFASTSYNC=false"
|
||||
#- "NETHERMIND_SYNCCONFIG_DOWNLOADHEADERSINFASTSYNC=false"
|
||||
command: |
|
||||
--config=gnosis
|
||||
--datadir=/data
|
||||
--log=INFO
|
||||
--JsonRpc.Enabled=true
|
||||
--JsonRpc.Host=0.0.0.0
|
||||
--JsonRpc.Port=8545
|
||||
--JsonRpc.EnabledModules=[Web3,Eth,Subscribe,Net,Admin,Debug]
|
||||
--JsonRpc.JwtSecretFile=/jwtsecret
|
||||
--JsonRpc.EngineHost=0.0.0.0
|
||||
--JsonRpc.EnginePort=8551
|
||||
--Network.DiscoveryPort=1550
|
||||
--HealthChecks.Enabled=false
|
||||
--Pruning.CacheMb=2048
|
||||
stop_grace_period: 3m
|
||||
labels:
|
||||
- "prometheus-scrape.enabled=true"
|
||||
- "prometheus-scrape.port=6060"
|
||||
- "prometheus-scrape.job_name=nethermind"
|
||||
- "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.nethermind-gnosis-stripprefix.stripprefix.prefixes=/gnosis"
|
||||
- "traefik.http.services.nethermind-gnosis.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.nethermind-gnosis.entrypoints=websecure"
|
||||
- "traefik.http.routers.nethermind-gnosis.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.nethermind-gnosis.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis`)"
|
||||
- "traefik.http.routers.nethermind-gnosis.middlewares=nethermind-gnosis-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
logging:
|
||||
options:
|
||||
max-file: '1'
|
||||
compress: 'false'
|
||||
driver: local
|
||||
|
||||
|
||||
nimbus-gnosis:
|
||||
build:
|
||||
context: ./nimbus
|
||||
args:
|
||||
UPSTREAM_VERSION: ${NIMBUS_VERSION:-v25.3.0}
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 1m
|
||||
user: root
|
||||
volumes:
|
||||
- nimbus-gnosis:/home/user/nimbus-eth2/build/data
|
||||
- .jwtsecret:/jwt.hex:ro
|
||||
environment:
|
||||
CHECKPOINT_SYNC_URL: "https://checkpoint.gnosischain.com/"
|
||||
EXECUTION_ENDPOINT: "http://nethermind-gnosis:8551"
|
||||
P2P_TCP_PORT: 54356
|
||||
P2P_UDP_PORT: 54356
|
||||
NETWORK: "gnosis"
|
||||
LOG_TYPE: INFO
|
||||
EXTRA_OPTS: --history=prune
|
||||
networks:
|
||||
- chains
|
||||
ports:
|
||||
- 54356:54356/tcp # p2p
|
||||
- 54356:54356/udp # p2p
|
||||
expose:
|
||||
- 8008 # metrics
|
||||
- 4500 # http
|
||||
- 54356 # p2p
|
||||
labels:
|
||||
- "prometheus-scrape.enabled=true"
|
||||
- "prometheus-scrape.port=8008"
|
||||
- "prometheus-scrape.job_name=nimbus-gnosis"
|
||||
- "prometheus-scrape.metrics_path=/metrics"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.nimbus-gnosis-stripprefix.stripprefix.prefixes=/nimbus-gnosis"
|
||||
- "traefik.http.services.nimbus-gnosis.loadbalancer.server.port=4500"
|
||||
- "traefik.http.routers.nimbus-gnosis.entrypoints=websecure"
|
||||
- "traefik.http.routers.nimbus-gnosis.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.nimbus-gnosis.rule=Host(`$DOMAIN`) && PathPrefix(`/nimbus-gnosis`)"
|
||||
- "traefik.http.routers.nimbus-gnosis.middlewares=nimbus-gnosis-stripprefix, ipwhitelist"
|
||||
|
||||
|
||||
volumes:
|
||||
gnosis-nethermind-fullnode:
|
||||
nimbus-gnosis:
|
||||
@@ -1,109 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
op-base-fullnode:
|
||||
build:
|
||||
context: ./op
|
||||
dockerfile: Dockerfile
|
||||
# args:
|
||||
# OP_GETH_VERSION: v1.101408.0
|
||||
# OP_NODE_VERSION: v1.9.1
|
||||
expose:
|
||||
- 8545 # RPC / Websocket
|
||||
- 8480 # P2P TCP (currently unused)
|
||||
- 8480/udp # P2P UDP (currently unused)
|
||||
- 6060 # metrics
|
||||
ports:
|
||||
- "8480:8480"
|
||||
- "8480:8480/udp"
|
||||
command: [ "sh", "./geth-entrypoint" ]
|
||||
restart: always
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- base-fullnode:/data
|
||||
- .jwtsecret:/jwtsecret
|
||||
environment:
|
||||
- "GETH_GENESIS_FILE_PATH=/app/mainnet/base/genesis.json"
|
||||
- "GETH_ROLLUP_SEQUENCERHTTP=https://mainnet-sequencer.base.org"
|
||||
- "GETH_GCMODE=full"
|
||||
- "GETH_SYNCMODE=snap"
|
||||
- "GETH_BOOTNODES=enode://87a32fd13bd596b2ffca97020e31aef4ddcc1bbd4b95bb633d16c1329f654f34049ed240a36b449fda5e5225d70fe40bc667f53c304b71f8e68fc9d448690b51@3.231.138.188:30301,enode://ca21ea8f176adb2e229ce2d700830c844af0ea941a1d8152a9513b966fe525e809c3a6c73a2c18a12b74ed6ec4380edf91662778fe0b79f6a591236e49e176f9@184.72.129.189:30301,enode://acf4507a211ba7c1e52cdf4eef62cdc3c32e7c9c47998954f7ba024026f9a6b2150cd3f0b734d9c78e507ab70d59ba61dfe5c45e1078c7ad0775fb251d7735a2@3.220.145.177:30301,enode://8a5a5006159bf079d06a04e5eceab2a1ce6e0f721875b2a9c96905336219dbe14203d38f70f3754686a6324f786c2f9852d8c0dd3adac2d080f4db35efc678c5@3.231.11.52:30301,enode://cdadbe835308ad3557f9a1de8db411da1a260a98f8421d62da90e71da66e55e98aaa8e90aa7ce01b408a54e4bd2253d701218081ded3dbe5efbbc7b41d7cef79@54.198.153.150:30301"
|
||||
- "GETH_STATE_SCHEME=path"
|
||||
- "GETH_DB_ENGINE=pebble"
|
||||
- "GETH_DISCOVERY_PORT=8480"
|
||||
- "GETH_DB_ENGINE=pebble"
|
||||
- "P2P_PORT=8480"
|
||||
- "WS_PORT=8545"
|
||||
- "IP=${IP}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
#- "GETH_OVERRIDE_CANYON=1704992401"
|
||||
#- "GETH_OVERRIDE_DELTA=1708560000"
|
||||
#- "GETH_OVERRIDE_ECOTONE=1710374401"
|
||||
#- "GETH_OVERRIDE_FJORD=1720627201"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.base-stripprefix.stripprefix.prefixes=/base"
|
||||
- "traefik.http.services.base.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.base.entrypoints=websecure"
|
||||
- "traefik.http.routers.base.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.base.rule=Host(`$DOMAIN`) && PathPrefix(`/base`)"
|
||||
- "traefik.http.routers.base.middlewares=base-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
op-base-fullnode-node:
|
||||
build:
|
||||
context: ./op
|
||||
# args:
|
||||
# OP_GETH_VERSION: v1.101408.0
|
||||
# OP_NODE_VERSION: v1.9.1
|
||||
depends_on:
|
||||
- op-base-fullnode
|
||||
expose:
|
||||
- 8545 # RPC
|
||||
- 32521 # P2P TCP
|
||||
- 32521/udp # P2P UDP
|
||||
- 7300 # metrics
|
||||
- 6060 # pprof
|
||||
ports:
|
||||
- "32521:32521"
|
||||
- "32521:32521/udp"
|
||||
command: [ "sh", "./op-node-entrypoint" ]
|
||||
restart: always
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
stop_grace_period: 30s
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=base-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${BASE_ETHEREUM_ENDPOINT}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://base-fullnode: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_AGENT=base"
|
||||
- "OP_NODE_P2P_BOOTNODES=enr:-J24QNz9lbrKbN4iSmmjtnr7SjUMk4zB7f1krHZcTZx-JRKZd0kA2gjufUROD6T3sOWDVDnFJRvqBBo62zuF-hYCohOGAYiOoEyEgmlkgnY0gmlwhAPniryHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQKNVFlCxh_B-716tTs-h1vMzZkSs1FTu_OYTNjgufplG4N0Y3CCJAaDdWRwgiQG,enr:-J24QH-f1wt99sfpHy4c0QJM-NfmsIfmlLAMMcgZCUEgKG_BBYFc6FwYgaMJMQN5dsRBJApIok0jFn-9CS842lGpLmqGAYiOoDRAgmlkgnY0gmlwhLhIgb2Hb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJ9FTIv8B9myn1MWaC_2lJ-sMoeCDkusCsk4BYHjjCq04N0Y3CCJAaDdWRwgiQG,enr:-J24QDXyyxvQYsd0yfsN0cRr1lZ1N11zGTplMNlW4xNEc7LkPXh0NAJ9iSOVdRO95GPYAIc6xmyoCCG6_0JxdL3a0zaGAYiOoAjFgmlkgnY0gmlwhAPckbGHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJwoS7tzwxqXSyFL7g0JM-KWVbgvjfB8JA__T7yY_cYboN0Y3CCJAaDdWRwgiQG,enr:-J24QHmGyBwUZXIcsGYMaUqGGSl4CFdx9Tozu-vQCn5bHIQbR7On7dZbU61vYvfrJr30t0iahSqhc64J46MnUO2JvQaGAYiOoCKKgmlkgnY0gmlwhAPnCzSHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQINc4fSijfbNIiGhcgvwjsjxVFJHUstK9L1T8OTKUjgloN0Y3CCJAaDdWRwgiQG,enr:-J24QG3ypT4xSu0gjb5PABCmVxZqBjVw9ca7pvsI8jl4KATYAnxBmfkaIuEqy9sKvDHKuNCsy57WwK9wTt2aQgcaDDyGAYiOoGAXgmlkgnY0gmlwhDbGmZaHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQIeAK_--tcLEiu7HvoUlbV52MspE0uCocsx1f_rYvRenIN0Y3CCJAaDdWRwgiQG"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=32521"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=32521"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_ROLLUP_CONFIG=/app/mainnet/base/rollup.json"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=4"
|
||||
- "OP_NODE_L1_RPC_KIND=${BASE_ETHEREUM_ENDPOINT_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${BASE_ETHEREUM_ENDPOINT_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${BASE_ETHEREUM_ENDPOINT_BEACON}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${BASE_MAINNET_L1_BEACON_ARCHIVER}"
|
||||
#- "OP_NODE_OVERRIDE_CANYON=1704992401"
|
||||
#- "OP_NODE_OVERRIDE_DELTA=1708560000"
|
||||
#- "OP_NODE_OVERRIDE_ECOTONE=1710374401"
|
||||
#- "OP_NODE_OVERRIDE_FJORD=1720627201"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
base-fullnode:
|
||||
@@ -1,108 +0,0 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
op-mode-mainnet: # this is Optimism's geth client
|
||||
build:
|
||||
context: ./op
|
||||
expose:
|
||||
- 8545 # RPC / Websocket
|
||||
- 34542 # P2P TCP (currently unused)
|
||||
- 34542/udp # P2P UDP (currently unused)
|
||||
- 6060 # metrics
|
||||
ports:
|
||||
- "34542:34542"
|
||||
- "34542:34542/udp"
|
||||
command: [ "sh", "./geth-entrypoint" ]
|
||||
restart: always
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- mode-mainnet:/data
|
||||
- .jwtsecret:/jwtsecret
|
||||
environment:
|
||||
- "GETH_GENESIS_FILE_PATH=/app/mainnet/mode/genesis.json"
|
||||
- "GETH_ROLLUP_SEQUENCERHTTP=https://rpc-mode-mainnet-0.t.conduit.xyz"
|
||||
- "GETH_GCMODE=full"
|
||||
- "GETH_SYNCMODE=snap"
|
||||
- "GETH_STATE_SCHEME=path"
|
||||
- "GETH_DB_ENGINE=pebble"
|
||||
- "P2P_PORT=34542"
|
||||
- "WS_PORT=8545"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "IP=${IP}"
|
||||
- "GETH_OVERRIDE_CANYON=1704992401"
|
||||
- "GETH_OVERRIDE_DELTA=1708560000"
|
||||
- "GETH_OVERRIDE_ECOTONE=1710374401"
|
||||
- "GETH_OVERRIDE_FJORD=1720627201"
|
||||
- "GETH_OVERRIDE_GRANITE=1726070401"
|
||||
- "GETH_OVERRIDE_HOLOCENE=1736445601"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.mode-stripprefix.stripprefix.prefixes=/mode-mainnet"
|
||||
- "traefik.http.services.mode.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.mode.entrypoints=websecure"
|
||||
- "traefik.http.routers.mode.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.mode.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-mainnet`)"
|
||||
- "traefik.http.routers.mode.middlewares=mode-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
|
||||
op-mode-mainnet-node:
|
||||
#image: stakesquid/op-mode-mainnet:v0.1
|
||||
build:
|
||||
context: ./op
|
||||
depends_on:
|
||||
- op-mode-mainnet
|
||||
expose:
|
||||
- 8545 # RPC
|
||||
- 3306 # P2P TCP
|
||||
- 29687/udp # P2P UDP
|
||||
- 7300 # metrics
|
||||
- 6060 # pprof
|
||||
ports:
|
||||
- "29687:29687"
|
||||
- "29687:29687/udp"
|
||||
command: [ "sh", "./op-node-entrypoint" ]
|
||||
restart: always
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
stop_grace_period: 30s
|
||||
environment:
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${MODE_MAINNET_L1_ENDPOINT}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://op-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_BOOTNODES=enode://cd3730ae0a02324d4f529b1a0b492a4047552025c48dc8c9d6685af386dbe8de7780cb35567f76b9542537e96b9a5b160bee79edbd15fefa5a90371c12e57bed@34.127.98.251:9222?discport=30301,enode://d25ce99435982b04d60c4b41ba256b84b888626db7bee45a9419382300fbe907359ae5ef250346785bff8d3b9d07cd3e017a27e2ee3cfda3bcbb0ba762ac9674@bootnode.conduit.xyz:0?discport=30301,enode://2d4e7e9d48f4dd4efe9342706dd1b0024681bd4c3300d021f86fc75eab7865d4e0cbec6fbc883f011cfd6a57423e7e2f6e104baad2b744c3cafaec6bc7dc92c1@34.65.43.171:0?discport=30305,enode://9d7a3efefe442351217e73b3a593bcb8efffb55b4807699972145324eab5e6b382152f8d24f6301baebbfb5ecd4127bd3faab2842c04cd432bdf50ba092f6645@34.65.109.126:0?discport=30305"
|
||||
- "OP_NODE_P2P_STATIC=/ip4/34.127.98.251/tcp/9222/p2p/16Uiu2HAmSU4jpfL8pPf6Z1bFS5SgNTAffNuvz1goX8MgTakkgAfP"
|
||||
- "OP_NODE_P2P_AGENT=conduit"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=29687"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=29687"
|
||||
- "OP_NODE_ROLLUP_CONFIG=/app/mainnet/mode/rollup.json"
|
||||
- "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=${MODE_MAINNET_L1_BATCH_SIZE:-20}"
|
||||
- "OP_NODE_L1_RPC_RATE_LIMIT=${MODE_MAINNET_L1_RATE_LIMIT:-30}"
|
||||
- "OP_NODE_L1_RPC_KIND=${MODE_MAINNET_L1_ENDPOINT_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${MODE_MAINNET_L1_ENDPOINT_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${MODE_MAINNET_L1_BEACON_URL}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${MODE_MAINNET_L1_BEACON_ARCHIVER}"
|
||||
- "OP_NODE_OVERRIDE_CANYON=1704992401"
|
||||
- "OP_NODE_OVERRIDE_DELTA=1708560000"
|
||||
- "OP_NODE_OVERRIDE_ECOTONE=1710374401"
|
||||
- "OP_NODE_OVERRIDE_FJORD=1720627201"
|
||||
- "OP_NODE_OVERRIDE_GRANITE=1726070401"
|
||||
- "OP_NODE_OVERRIDE_HOLOCENE=1736445601"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
mode-mainnet:
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
base-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${BASE_ERIGON_IMAGE:-testinprod/erigon}:${BASE_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10092:10092"
|
||||
- "10092:10092/udp"
|
||||
- "25092:25092"
|
||||
- "25092:25092/udp"
|
||||
- "30092:30092"
|
||||
- "30092:30092/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10092:10092
|
||||
- 10092:10092/udp
|
||||
- 30092:30092
|
||||
- 30092:30092/udp
|
||||
- 35092:35092
|
||||
- 35092:35092/udp
|
||||
volumes:
|
||||
- ${BASE_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-base-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=base-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10092
|
||||
- --p2p.allowed-ports=25092
|
||||
- --p2p.allowed-ports=30092
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- base-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.base-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-mainnet-archive"
|
||||
- "traefik.http.services.base-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-archive`)"
|
||||
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.middlewares=base-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30092
|
||||
- --p2p.allowed-ports=35092
|
||||
|
||||
- --chain=base-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.base-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-mainnet-archive
|
||||
- traefik.http.services.base-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.base-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/base-mainnet-archive`)}
|
||||
- traefik.http.routers.base-mainnet-op-erigon-archive-trace.middlewares=base-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
base-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${BASE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BASE_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15092:15092"
|
||||
- "15092:15092/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15092:15092
|
||||
- 15092:15092/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=base-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://base-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15092
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15092
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=base-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://base-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15092"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15092"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
base-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
base-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: base
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
base-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${BASE_ERIGON_IMAGE:-testinprod/erigon}:${BASE_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10487:10487"
|
||||
- "10487:10487/udp"
|
||||
- "25487:25487"
|
||||
- "25487:25487/udp"
|
||||
- "30487:30487"
|
||||
- "30487:30487/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10487:10487
|
||||
- 10487:10487/udp
|
||||
- 30487:30487
|
||||
- 30487:30487/udp
|
||||
- 35487:35487
|
||||
- 35487:35487/udp
|
||||
volumes:
|
||||
- ${BASE_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-base-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=base-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10487
|
||||
- --p2p.allowed-ports=25487
|
||||
- --p2p.allowed-ports=30487
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- base-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.base-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-archive"
|
||||
- "traefik.http.services.base-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-archive`)"
|
||||
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.middlewares=base-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30487
|
||||
- --p2p.allowed-ports=35487
|
||||
|
||||
- --chain=base-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.base-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-archive
|
||||
- traefik.http.services.base-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/base-sepolia-archive`)}
|
||||
- traefik.http.routers.base-sepolia-op-erigon-archive-trace.middlewares=base-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
base-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${BASE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BASE_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15487:15487"
|
||||
- "15487:15487/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15487:15487
|
||||
- 15487:15487/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=base-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://base-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15487
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15487
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=base-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://base-sepolia-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15487"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15487"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
base-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
base-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: base-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
bob-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${BOB_ERIGON_IMAGE:-testinprod/erigon}:${BOB_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10071:10071"
|
||||
- "10071:10071/udp"
|
||||
- "25071:25071"
|
||||
- "25071:25071/udp"
|
||||
- "30071:30071"
|
||||
- "30071:30071/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10071:10071
|
||||
- 10071:10071/udp
|
||||
- 30071:30071
|
||||
- 30071:30071/udp
|
||||
- 35071:35071
|
||||
- 35071:35071/udp
|
||||
volumes:
|
||||
- ${BOB_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-bob-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=bob-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10071
|
||||
- --p2p.allowed-ports=25071
|
||||
- --p2p.allowed-ports=30071
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- bob-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.bob-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/bob-mainnet-archive"
|
||||
- "traefik.http.services.bob-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/bob-mainnet-archive`)"
|
||||
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.middlewares=bob-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30071
|
||||
- --p2p.allowed-ports=35071
|
||||
|
||||
- --chain=bob-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.bob-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/bob-mainnet-archive
|
||||
- traefik.http.services.bob-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.bob-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.bob-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.bob-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/bob-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.bob-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/bob-mainnet-archive`)}
|
||||
- traefik.http.routers.bob-mainnet-op-erigon-archive-trace.middlewares=bob-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
bob-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BOB_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15071:15071"
|
||||
- "15071:15071/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15071:15071
|
||||
- 15071:15071/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=bob-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://bob-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15071
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15071
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=bob-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://bob-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15071"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15071"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
bob-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
bob-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,87 +1,147 @@
|
||||
# The erigon db can be downloaded from
|
||||
# https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-erigon-db-1149019.tgz
|
||||
# and extracted to the DATA_DIR
|
||||
|
||||
# The jwt-secret.txt file should be a random string of32 characters and should be kept secret.
|
||||
|
||||
# The p2p-node-key.txt is the private key used for the node to identify itself.
|
||||
|
||||
# The discovery and peerstore directories are used to store the peerstore and discovery data.
|
||||
|
||||
# boba is part of the superchain registry and knows it's overrides
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
boba-mainnet-archive:
|
||||
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-erigon:${BOBAETH_ERIGON_VERSION:-v1.2.11}
|
||||
image: ${BOBA_ERIGON_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/erigon}:${BOBA_MAINNET_ERIGON_VERSION:-v1.2.11}
|
||||
user: root
|
||||
command: |
|
||||
--datadir=/db
|
||||
--port=10732
|
||||
--nat=stun
|
||||
--chain=boba-mainnet
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.compression=true
|
||||
--ws.port=8545
|
||||
--ws.compression=true
|
||||
--ws
|
||||
--http.corsdomain=*
|
||||
--http.vhosts=*
|
||||
--authrpc.addr=0.0.0.0
|
||||
--authrpc.port=8551
|
||||
--authrpc.vhosts=*
|
||||
--authrpc.jwtsecret=/jwtsecret
|
||||
--http.api=eth,debug,net,engine,web3
|
||||
--txpool.gossip.disable=true
|
||||
--rollup.sequencerhttp=https://mainnet.boba.network
|
||||
--db.size.limit=8TB
|
||||
ports:
|
||||
- "10732:10732"
|
||||
- "10732:10732/udp"
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10732:10732
|
||||
- 10732:10732/udp
|
||||
- 30732:30732
|
||||
- 30732:30732/udp
|
||||
- 35732:35732
|
||||
- 35732:35732/udp
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
- ${BOBA_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-mainnet-op-erigon-archive-trace}:/db
|
||||
networks:
|
||||
- chains
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/db
|
||||
- --port=10732
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30732
|
||||
- --p2p.allowed-ports=35732
|
||||
|
||||
- --chain=boba-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.boba-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-mainnet-archive"
|
||||
- "traefik.http.services.boba-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.entrypoints=websecure}"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-mainnet-archive`)}"
|
||||
- "${NO_SSL:+traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/boba-mainnet-archive`)}"
|
||||
- "traefik.http.routers.boba-mainnet-op-erigon-archive-trace.middlewares=boba-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.boba-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-mainnet-archive
|
||||
- traefik.http.services.boba-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/boba-mainnet-archive`)}
|
||||
- traefik.http.routers.boba-mainnet-op-erigon-archive-trace.middlewares=boba-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
boba-mainnet-archive-node:
|
||||
depends_on:
|
||||
- boba-mainnet-archive
|
||||
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-node:${BOBAETH_NODE_VERSION:-v1.6.16-rc.1}
|
||||
command: >
|
||||
op-node
|
||||
--l2=http://boba-mainnet-archive:8551
|
||||
--l2.jwt-secret=/jwtsecret
|
||||
--network=boba-mainnet
|
||||
--rpc.addr=0.0.0.0
|
||||
--rpc.port=8545
|
||||
environment:
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15732"
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
image: ${BOBA_NODE_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/node}:${BOBA_MAINNET_NODE_VERSION:-v1.6.18}
|
||||
ports:
|
||||
- "15732:15732"
|
||||
- "15732:15732/udp"
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
restart: unless-stopped
|
||||
- 15732:15732
|
||||
- 15732:15732/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=boba-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://boba-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15732
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15732
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
boba-mainnet-op-erigon-archive-trace:
|
||||
boba-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,87 +1,148 @@
|
||||
# The erigon db can be downloaded from
|
||||
# https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-erigon-db-1149019.tgz
|
||||
# and extracted to the DATA_DIR
|
||||
|
||||
# The jwt-secret.txt file should be a random string of32 characters and should be kept secret.
|
||||
|
||||
# The p2p-node-key.txt is the private key used for the node to identify itself.
|
||||
|
||||
# The discovery and peerstore directories are used to store the peerstore and discovery data.
|
||||
|
||||
# boba is part of the superchain registry and knows it's overrides
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
boba-sepolia-archive:
|
||||
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-erigon:${BOBAETH_ERIGON_VERSION:-v1.2.11}
|
||||
image: ${BOBA_ERIGON_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/erigon}:${BOBA_SEPOLIA_ERIGON_VERSION:-v1.2.11}
|
||||
user: root
|
||||
command: |
|
||||
--datadir=/db
|
||||
--port=10249
|
||||
--nat=stun
|
||||
--chain=boba-sepolia
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.compression=true
|
||||
--ws.port=8545
|
||||
--ws.compression=true
|
||||
--ws
|
||||
--http.corsdomain=*
|
||||
--http.vhosts=*
|
||||
--authrpc.addr=0.0.0.0
|
||||
--authrpc.port=8551
|
||||
--authrpc.vhosts=*
|
||||
--authrpc.jwtsecret=/jwtsecret
|
||||
--http.api=eth,debug,net,engine,web3
|
||||
--txpool.gossip.disable=true
|
||||
--rollup.sequencerhttp=https://sepolia.boba.network
|
||||
--db.size.limit=8TB
|
||||
ports:
|
||||
- "10249:10249"
|
||||
- "10249:10249/udp"
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10249:10249
|
||||
- 10249:10249/udp
|
||||
- 30249:30249
|
||||
- 30249:30249/udp
|
||||
- 35249:35249
|
||||
- 35249:35249/udp
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
- ${BOBA_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-sepolia-op-erigon-archive-trace}:/db
|
||||
networks:
|
||||
- chains
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/db
|
||||
- --port=10249
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30249
|
||||
- --p2p.allowed-ports=35249
|
||||
|
||||
- --chain=boba-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.boba-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-sepolia-archive"
|
||||
- "traefik.http.services.boba-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.entrypoints=websecure}"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-sepolia-archive`)}"
|
||||
- "${NO_SSL:+traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/boba-sepolia-archive`)}"
|
||||
- "traefik.http.routers.boba-sepolia-op-erigon-archive-trace.middlewares=boba-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.boba-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-sepolia-archive
|
||||
- traefik.http.services.boba-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/boba-sepolia-archive`)}
|
||||
- traefik.http.routers.boba-sepolia-op-erigon-archive-trace.middlewares=boba-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
boba-sepolia-archive-node:
|
||||
depends_on:
|
||||
- boba-sepolia-archive
|
||||
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-node:${BOBAETH_NODE_VERSION:-v1.6.16-rc.1}
|
||||
command: >
|
||||
op-node
|
||||
--l2=http://boba-sepolia-archive:8551
|
||||
--l2.jwt-secret=/jwtsecret
|
||||
--network=boba-sepolia
|
||||
--rpc.addr=0.0.0.0
|
||||
--rpc.port=8545
|
||||
environment:
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15249"
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
image: ${BOBA_NODE_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/node}:${BOBA_SEPOLIA_NODE_VERSION:-v1.6.18}
|
||||
ports:
|
||||
- "15249:15249"
|
||||
- "15249:15249/udp"
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
restart: unless-stopped
|
||||
- 15249:15249
|
||||
- 15249:15249/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=boba-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://boba-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15249
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15249
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
boba-sepolia-op-erigon-archive-trace:
|
||||
boba-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
hashkeychain-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${HASHKEYCHAIN_ERIGON_IMAGE:-testinprod/erigon}:${HASHKEYCHAIN_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10378:10378"
|
||||
- "10378:10378/udp"
|
||||
- "25378:25378"
|
||||
- "25378:25378/udp"
|
||||
- "30378:30378"
|
||||
- "30378:30378/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10378:10378
|
||||
- 10378:10378/udp
|
||||
- 30378:30378
|
||||
- 30378:30378/udp
|
||||
- 35378:35378
|
||||
- 35378:35378/udp
|
||||
volumes:
|
||||
- ${HASHKEYCHAIN_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-hashkeychain-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=hashkeychain-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10378
|
||||
- --p2p.allowed-ports=25378
|
||||
- --p2p.allowed-ports=30378
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- hashkeychain-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.hashkeychain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/hashkeychain-mainnet-archive"
|
||||
- "traefik.http.services.hashkeychain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/hashkeychain-mainnet-archive`)"
|
||||
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.middlewares=hashkeychain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30378
|
||||
- --p2p.allowed-ports=35378
|
||||
|
||||
- --chain=hashkeychain-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.hashkeychain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/hashkeychain-mainnet-archive
|
||||
- traefik.http.services.hashkeychain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/hashkeychain-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/hashkeychain-mainnet-archive`)}
|
||||
- traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.middlewares=hashkeychain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
hashkeychain-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${HASHKEYCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${HASHKEYCHAIN_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15378:15378"
|
||||
- "15378:15378/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15378:15378
|
||||
- 15378:15378/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=hashkeychain-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://hashkeychain-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15378
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15378
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=hashkeychain-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://hashkeychain-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15378"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15378"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
hashkeychain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
hashkeychain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: hashkey
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ink-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${INK_ERIGON_IMAGE:-testinprod/erigon}:${INK_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10990:10990"
|
||||
- "10990:10990/udp"
|
||||
- "25990:25990"
|
||||
- "25990:25990/udp"
|
||||
- "30990:30990"
|
||||
- "30990:30990/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10990:10990
|
||||
- 10990:10990/udp
|
||||
- 30990:30990
|
||||
- 30990:30990/udp
|
||||
- 35990:35990
|
||||
- 35990:35990/udp
|
||||
volumes:
|
||||
- ${INK_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-ink-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=ink-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10990
|
||||
- --p2p.allowed-ports=25990
|
||||
- --p2p.allowed-ports=30990
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- ink-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ink-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-mainnet-archive"
|
||||
- "traefik.http.services.ink-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-mainnet-archive`)"
|
||||
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.middlewares=ink-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30990
|
||||
- --p2p.allowed-ports=35990
|
||||
|
||||
- --chain=ink-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ink-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-mainnet-archive
|
||||
- traefik.http.services.ink-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ink-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ink-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ink-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ink-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/ink-mainnet-archive`)}
|
||||
- traefik.http.routers.ink-mainnet-op-erigon-archive-trace.middlewares=ink-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
ink-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${INK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${INK_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15990:15990"
|
||||
- "15990:15990/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15990:15990
|
||||
- 15990:15990/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=ink-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://ink-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15990
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15990
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=ink-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://ink-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15990"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15990"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
ink-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ink-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: ink
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ink-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${INK_ERIGON_IMAGE:-testinprod/erigon}:${INK_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10826:10826"
|
||||
- "10826:10826/udp"
|
||||
- "25826:25826"
|
||||
- "25826:25826/udp"
|
||||
- "30826:30826"
|
||||
- "30826:30826/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10826:10826
|
||||
- 10826:10826/udp
|
||||
- 30826:30826
|
||||
- 30826:30826/udp
|
||||
- 35826:35826
|
||||
- 35826:35826/udp
|
||||
volumes:
|
||||
- ${INK_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-ink-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=ink-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10826
|
||||
- --p2p.allowed-ports=25826
|
||||
- --p2p.allowed-ports=30826
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- ink-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ink-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-sepolia-archive"
|
||||
- "traefik.http.services.ink-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-sepolia-archive`)"
|
||||
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.middlewares=ink-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30826
|
||||
- --p2p.allowed-ports=35826
|
||||
|
||||
- --chain=ink-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ink-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-sepolia-archive
|
||||
- traefik.http.services.ink-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ink-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ink-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ink-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ink-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/ink-sepolia-archive`)}
|
||||
- traefik.http.routers.ink-sepolia-op-erigon-archive-trace.middlewares=ink-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
ink-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${INK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${INK_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15826:15826"
|
||||
- "15826:15826/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15826:15826
|
||||
- 15826:15826/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=ink-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://ink-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15826
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15826
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=ink-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://ink-sepolia-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15826"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15826"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
ink-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ink-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: ink-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
lisk-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${LISK_ERIGON_IMAGE:-testinprod/erigon}:${LISK_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10831:10831"
|
||||
- "10831:10831/udp"
|
||||
- "25831:25831"
|
||||
- "25831:25831/udp"
|
||||
- "30831:30831"
|
||||
- "30831:30831/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10831:10831
|
||||
- 10831:10831/udp
|
||||
- 30831:30831
|
||||
- 30831:30831/udp
|
||||
- 35831:35831
|
||||
- 35831:35831/udp
|
||||
volumes:
|
||||
- ${LISK_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-lisk-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=lisk-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10831
|
||||
- --p2p.allowed-ports=25831
|
||||
- --p2p.allowed-ports=30831
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- lisk-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.lisk-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/lisk-mainnet-archive"
|
||||
- "traefik.http.services.lisk-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/lisk-mainnet-archive`)"
|
||||
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.middlewares=lisk-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30831
|
||||
- --p2p.allowed-ports=35831
|
||||
|
||||
- --chain=lisk-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.lisk-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/lisk-mainnet-archive
|
||||
- traefik.http.services.lisk-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/lisk-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/lisk-mainnet-archive`)}
|
||||
- traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.middlewares=lisk-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
lisk-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${LISK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${LISK_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15831:15831"
|
||||
- "15831:15831/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15831:15831
|
||||
- 15831:15831/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=lisk-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://lisk-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15831
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15831
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=lisk-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://lisk-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15831"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15831"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
lisk-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
lisk-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
metal-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${METAL_ERIGON_IMAGE:-testinprod/erigon}:${METAL_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10543:10543"
|
||||
- "10543:10543/udp"
|
||||
- "25543:25543"
|
||||
- "25543:25543/udp"
|
||||
- "30543:30543"
|
||||
- "30543:30543/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10543:10543
|
||||
- 10543:10543/udp
|
||||
- 30543:30543
|
||||
- 30543:30543/udp
|
||||
- 35543:35543
|
||||
- 35543:35543/udp
|
||||
volumes:
|
||||
- ${METAL_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-metal-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=metal-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10543
|
||||
- --p2p.allowed-ports=25543
|
||||
- --p2p.allowed-ports=30543
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- metal-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.metal-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/metal-mainnet-archive"
|
||||
- "traefik.http.services.metal-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/metal-mainnet-archive`)"
|
||||
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.middlewares=metal-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30543
|
||||
- --p2p.allowed-ports=35543
|
||||
|
||||
- --chain=metal-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.metal-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/metal-mainnet-archive
|
||||
- traefik.http.services.metal-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.metal-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.metal-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.metal-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/metal-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.metal-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/metal-mainnet-archive`)}
|
||||
- traefik.http.routers.metal-mainnet-op-erigon-archive-trace.middlewares=metal-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
metal-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${METAL_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${METAL_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15543:15543"
|
||||
- "15543:15543/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15543:15543
|
||||
- 15543:15543/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=metal-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://metal-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15543
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15543
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=metal-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://metal-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15543"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15543"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
metal-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
metal-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
mode-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${MODE_ERIGON_IMAGE:-testinprod/erigon}:${MODE_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10509:10509"
|
||||
- "10509:10509/udp"
|
||||
- "25509:25509"
|
||||
- "25509:25509/udp"
|
||||
- "30509:30509"
|
||||
- "30509:30509/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10509:10509
|
||||
- 10509:10509/udp
|
||||
- 30509:30509
|
||||
- 30509:30509/udp
|
||||
- 35509:35509
|
||||
- 35509:35509/udp
|
||||
volumes:
|
||||
- ${MODE_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-mode-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=mode-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10509
|
||||
- --p2p.allowed-ports=25509
|
||||
- --p2p.allowed-ports=30509
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- mode-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.mode-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-mainnet-archive"
|
||||
- "traefik.http.services.mode-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-mainnet-archive`)"
|
||||
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.middlewares=mode-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30509
|
||||
- --p2p.allowed-ports=35509
|
||||
|
||||
- --chain=mode-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.mode-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-mainnet-archive
|
||||
- traefik.http.services.mode-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.mode-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.mode-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.mode-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.mode-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/mode-mainnet-archive`)}
|
||||
- traefik.http.routers.mode-mainnet-op-erigon-archive-trace.middlewares=mode-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
mode-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${MODE_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15509:15509"
|
||||
- "15509:15509/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15509:15509
|
||||
- 15509:15509/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=mode-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://mode-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15509
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15509
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=mode-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://mode-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15509"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15509"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
mode-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
mode-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
mode-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${MODE_ERIGON_IMAGE:-testinprod/erigon}:${MODE_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10212:10212"
|
||||
- "10212:10212/udp"
|
||||
- "25212:25212"
|
||||
- "25212:25212/udp"
|
||||
- "30212:30212"
|
||||
- "30212:30212/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10212:10212
|
||||
- 10212:10212/udp
|
||||
- 30212:30212
|
||||
- 30212:30212/udp
|
||||
- 35212:35212
|
||||
- 35212:35212/udp
|
||||
volumes:
|
||||
- ${MODE_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-mode-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=mode-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10212
|
||||
- --p2p.allowed-ports=25212
|
||||
- --p2p.allowed-ports=30212
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- mode-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.mode-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-sepolia-archive"
|
||||
- "traefik.http.services.mode-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-sepolia-archive`)"
|
||||
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.middlewares=mode-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30212
|
||||
- --p2p.allowed-ports=35212
|
||||
|
||||
- --chain=mode-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.mode-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-sepolia-archive
|
||||
- traefik.http.services.mode-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.mode-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.mode-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.mode-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.mode-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/mode-sepolia-archive`)}
|
||||
- traefik.http.routers.mode-sepolia-op-erigon-archive-trace.middlewares=mode-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
mode-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${MODE_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15212:15212"
|
||||
- "15212:15212/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15212:15212
|
||||
- 15212:15212/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=mode-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://mode-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15212
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15212
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=mode-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://mode-sepolia-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15212"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15212"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
mode-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
mode-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: mode-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
op-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${OP_ERIGON_IMAGE:-testinprod/erigon}:${OP_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10509:10509"
|
||||
- "10509:10509/udp"
|
||||
- "25509:25509"
|
||||
- "25509:25509/udp"
|
||||
- "30509:30509"
|
||||
- "30509:30509/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10509:10509
|
||||
- 10509:10509/udp
|
||||
- 30509:30509
|
||||
- 30509:30509/udp
|
||||
- 35509:35509
|
||||
- 35509:35509/udp
|
||||
volumes:
|
||||
- ${OP_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-op-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=op-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10509
|
||||
- --p2p.allowed-ports=25509
|
||||
- --p2p.allowed-ports=30509
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- op-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.op-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-mainnet-archive"
|
||||
- "traefik.http.services.op-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-mainnet-archive`)"
|
||||
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.middlewares=op-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30509
|
||||
- --p2p.allowed-ports=35509
|
||||
|
||||
- --chain=op-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.op-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-mainnet-archive
|
||||
- traefik.http.services.op-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.op-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.op-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.op-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.op-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/op-mainnet-archive`)}
|
||||
- traefik.http.routers.op-mainnet-op-erigon-archive-trace.middlewares=op-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
op-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${OP_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15509:15509"
|
||||
- "15509:15509/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15509:15509
|
||||
- 15509:15509/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=op-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://op-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15509
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15509
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=op-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://op-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15509"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15509"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
op-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
op-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: optimism
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
op-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${OP_ERIGON_IMAGE:-testinprod/erigon}:${OP_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10373:10373"
|
||||
- "10373:10373/udp"
|
||||
- "25373:25373"
|
||||
- "25373:25373/udp"
|
||||
- "30373:30373"
|
||||
- "30373:30373/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10373:10373
|
||||
- 10373:10373/udp
|
||||
- 30373:30373
|
||||
- 30373:30373/udp
|
||||
- 35373:35373
|
||||
- 35373:35373/udp
|
||||
volumes:
|
||||
- ${OP_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-op-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=op-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10373
|
||||
- --p2p.allowed-ports=25373
|
||||
- --p2p.allowed-ports=30373
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- op-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.op-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-sepolia-archive"
|
||||
- "traefik.http.services.op-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-sepolia-archive`)"
|
||||
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.middlewares=op-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30373
|
||||
- --p2p.allowed-ports=35373
|
||||
|
||||
- --chain=op-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.op-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-sepolia-archive
|
||||
- traefik.http.services.op-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.op-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.op-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.op-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.op-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/op-sepolia-archive`)}
|
||||
- traefik.http.routers.op-sepolia-op-erigon-archive-trace.middlewares=op-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
op-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${OP_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15373:15373"
|
||||
- "15373:15373/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15373:15373
|
||||
- 15373:15373/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=op-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://op-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15373
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15373
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=op-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://op-sepolia-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15373"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15373"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
op-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
op-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: optimism-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
snax-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${SNAX_ERIGON_IMAGE:-testinprod/erigon}:${SNAX_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10671:10671"
|
||||
- "10671:10671/udp"
|
||||
- "25671:25671"
|
||||
- "25671:25671/udp"
|
||||
- "30671:30671"
|
||||
- "30671:30671/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10671:10671
|
||||
- 10671:10671/udp
|
||||
- 30671:30671
|
||||
- 30671:30671/udp
|
||||
- 35671:35671
|
||||
- 35671:35671/udp
|
||||
volumes:
|
||||
- ${SNAX_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-snax-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=snax-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10671
|
||||
- --p2p.allowed-ports=25671
|
||||
- --p2p.allowed-ports=30671
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- snax-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.snax-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/snax-mainnet-archive"
|
||||
- "traefik.http.services.snax-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/snax-mainnet-archive`)"
|
||||
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.middlewares=snax-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30671
|
||||
- --p2p.allowed-ports=35671
|
||||
|
||||
- --chain=snax-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.snax-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/snax-mainnet-archive
|
||||
- traefik.http.services.snax-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.snax-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.snax-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.snax-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/snax-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.snax-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/snax-mainnet-archive`)}
|
||||
- traefik.http.routers.snax-mainnet-op-erigon-archive-trace.middlewares=snax-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
snax-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${SNAX_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${SNAX_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15671:15671"
|
||||
- "15671:15671/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15671:15671
|
||||
- 15671:15671/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=snax-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://snax-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15671
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15671
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=snax-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://snax-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15671"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15671"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
snax-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
snax-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
148
op/erigon/soneium-minato-op-erigon-archive-trace.yml
Normal file
148
op/erigon/soneium-minato-op-erigon-archive-trace.yml
Normal file
@@ -0,0 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
soneium-minato-archive:
|
||||
image: ${SONEIUM_ERIGON_IMAGE:-testinprod/erigon}:${SONEIUM_MINATO_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10314:10314
|
||||
- 10314:10314/udp
|
||||
- 30314:30314
|
||||
- 30314:30314/udp
|
||||
- 35314:35314
|
||||
- 35314:35314/udp
|
||||
volumes:
|
||||
- ${SONEIUM_MINATO_OP_ERIGON_ARCHIVE_TRACE_DATA:-soneium-minato-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10314
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30314
|
||||
- --p2p.allowed-ports=35314
|
||||
|
||||
- --chain=soneium-minato
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.soneium-minato-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/soneium-minato-archive
|
||||
- traefik.http.services.soneium-minato-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.soneium-minato-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.soneium-minato-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.soneium-minato-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/soneium-minato-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.soneium-minato-op-erigon-archive-trace.rule=PathPrefix(`/soneium-minato-archive`)}
|
||||
- traefik.http.routers.soneium-minato-op-erigon-archive-trace.middlewares=soneium-minato-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
soneium-minato-archive-node:
|
||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${SONEIUM_MINATO_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- 15314:15314
|
||||
- 15314:15314/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=soneium-minato
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://soneium-minato-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15314
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15314
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
soneium-minato-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: soneium-minato
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
swell-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${SWELL_ERIGON_IMAGE:-testinprod/erigon}:${SWELL_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10810:10810"
|
||||
- "10810:10810/udp"
|
||||
- "25810:25810"
|
||||
- "25810:25810/udp"
|
||||
- "30810:30810"
|
||||
- "30810:30810/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10810:10810
|
||||
- 10810:10810/udp
|
||||
- 30810:30810
|
||||
- 30810:30810/udp
|
||||
- 35810:35810
|
||||
- 35810:35810/udp
|
||||
volumes:
|
||||
- ${SWELL_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-swell-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=swell-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10810
|
||||
- --p2p.allowed-ports=25810
|
||||
- --p2p.allowed-ports=30810
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- swell-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.swell-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/swell-mainnet-archive"
|
||||
- "traefik.http.services.swell-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/swell-mainnet-archive`)"
|
||||
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.middlewares=swell-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30810
|
||||
- --p2p.allowed-ports=35810
|
||||
|
||||
- --chain=swell-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.swell-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/swell-mainnet-archive
|
||||
- traefik.http.services.swell-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.swell-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.swell-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.swell-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/swell-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.swell-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/swell-mainnet-archive`)}
|
||||
- traefik.http.routers.swell-mainnet-op-erigon-archive-trace.middlewares=swell-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
swell-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${SWELL_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${SWELL_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15810:15810"
|
||||
- "15810:15810/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15810:15810
|
||||
- 15810:15810/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=swell-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://swell-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15810
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15810
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=swell-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://swell-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15810"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15810"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
swell-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
swell-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: swell
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
unichain-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${UNICHAIN_ERIGON_IMAGE:-testinprod/erigon}:${UNICHAIN_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10415:10415"
|
||||
- "10415:10415/udp"
|
||||
- "25415:25415"
|
||||
- "25415:25415/udp"
|
||||
- "30415:30415"
|
||||
- "30415:30415/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10415:10415
|
||||
- 10415:10415/udp
|
||||
- 30415:30415
|
||||
- 30415:30415/udp
|
||||
- 35415:35415
|
||||
- 35415:35415/udp
|
||||
volumes:
|
||||
- ${UNICHAIN_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-unichain-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=unichain-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10415
|
||||
- --p2p.allowed-ports=25415
|
||||
- --p2p.allowed-ports=30415
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- unichain-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.unichain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-mainnet-archive"
|
||||
- "traefik.http.services.unichain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-mainnet-archive`)"
|
||||
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.middlewares=unichain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30415
|
||||
- --p2p.allowed-ports=35415
|
||||
|
||||
- --chain=unichain-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.unichain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-mainnet-archive
|
||||
- traefik.http.services.unichain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/unichain-mainnet-archive`)}
|
||||
- traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.middlewares=unichain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
unichain-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${UNICHAIN_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15415:15415"
|
||||
- "15415:15415/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15415:15415
|
||||
- 15415:15415/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=unichain-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://unichain-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15415
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15415
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=unichain-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://unichain-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15415"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15415"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
unichain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
unichain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: unichain
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
unichain-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${UNICHAIN_ERIGON_IMAGE:-testinprod/erigon}:${UNICHAIN_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10196:10196"
|
||||
- "10196:10196/udp"
|
||||
- "25196:25196"
|
||||
- "25196:25196/udp"
|
||||
- "30196:30196"
|
||||
- "30196:30196/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10196:10196
|
||||
- 10196:10196/udp
|
||||
- 30196:30196
|
||||
- 30196:30196/udp
|
||||
- 35196:35196
|
||||
- 35196:35196/udp
|
||||
volumes:
|
||||
- ${UNICHAIN_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-unichain-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=unichain-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10196
|
||||
- --p2p.allowed-ports=25196
|
||||
- --p2p.allowed-ports=30196
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- unichain-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.unichain-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-sepolia-archive"
|
||||
- "traefik.http.services.unichain-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-sepolia-archive`)"
|
||||
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.middlewares=unichain-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30196
|
||||
- --p2p.allowed-ports=35196
|
||||
|
||||
- --chain=unichain-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.unichain-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-sepolia-archive
|
||||
- traefik.http.services.unichain-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/unichain-sepolia-archive`)}
|
||||
- traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.middlewares=unichain-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
unichain-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${UNICHAIN_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15196:15196"
|
||||
- "15196:15196/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15196:15196
|
||||
- 15196:15196/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=unichain-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://unichain-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15196
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15196
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=unichain-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://unichain-sepolia-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15196"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15196"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
unichain-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
unichain-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: unichain-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
worldchain-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${WORLDCHAIN_ERIGON_IMAGE:-testinprod/erigon}:${WORLDCHAIN_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
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
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10629:10629"
|
||||
- "10629:10629/udp"
|
||||
- "25629:25629"
|
||||
- "25629:25629/udp"
|
||||
- "30629:30629"
|
||||
- "30629:30629/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10629:10629
|
||||
- 10629:10629/udp
|
||||
- 30629:30629
|
||||
- 30629:30629/udp
|
||||
- 35629:35629
|
||||
- 35629:35629/udp
|
||||
volumes:
|
||||
- ${WORLDCHAIN_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-worldchain-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=worldchain-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10629
|
||||
- --p2p.allowed-ports=25629
|
||||
- --p2p.allowed-ports=30629
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- worldchain-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.worldchain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/worldchain-mainnet-archive"
|
||||
- "traefik.http.services.worldchain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-mainnet-archive`)"
|
||||
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.middlewares=worldchain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30629
|
||||
- --p2p.allowed-ports=35629
|
||||
|
||||
- --chain=worldchain-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.worldchain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/worldchain-mainnet-archive
|
||||
- traefik.http.services.worldchain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/worldchain-mainnet-archive`)}
|
||||
- traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.middlewares=worldchain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
worldchain-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${WORLDCHAIN_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15629:15629"
|
||||
- "15629:15629/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15629:15629
|
||||
- 15629:15629/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=worldchain-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://worldchain-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15629
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15629
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- 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_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=worldchain-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://worldchain-mainnet-archive: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_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15629"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15629"
|
||||
- "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=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
worldchain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
worldchain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: worldchain
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# 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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user