some progress

This commit is contained in:
Para Dox
2025-04-10 14:43:11 +07:00
parent 5ce47e35dd
commit 20e9d26d44
219 changed files with 20641 additions and 43567 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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"

View File

@@ -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:

View File

@@ -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:

View File

@@ -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
View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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