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: services:
alephzero-mainnet-archive: alephzero-mainnet-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'alephzero-mainnet-nitro-archive-leveldb-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/mainnet/alephzero/:/config sysctls:
- './tmp/alephzero-mainnet-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10301
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud - --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud
- --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud - --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud
- --execution.forwarding-target=https://rpc.alephzero.raas.gelato.cloud - --execution.forwarding-target=https://rpc.alephzero.raas.gelato.cloud
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
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
volumes: networks:
alephzero-mainnet-nitro-archive-leveldb-hash: - 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: services:
alephzero-mainnet: alephzero-mainnet:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'alephzero-mainnet-nitro-pruned-pebble-path:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/mainnet/alephzero/:/config sysctls:
- './tmp/alephzero-mainnet:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=path - --port=10301
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=false - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud - --node.data-availability.rest-aggregator.urls=https://das.alephzero.raas.gelato.cloud
- --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud - --node.feed.input.url=wss://feed.alephzero.raas.gelato.cloud
- --execution.forwarding-target=https://rpc.alephzero.raas.gelato.cloud - --execution.forwarding-target=https://rpc.alephzero.raas.gelato.cloud
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
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
volumes: networks:
alephzero-mainnet-nitro-pruned-pebble-path: - 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: services:
alephzero-sepolia-archive: alephzero-sepolia-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'alephzero-sepolia-nitro-archive-leveldb-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/sepolia/alephzero/:/config sysctls:
- './tmp/alephzero-sepolia-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10083
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital
- --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital - --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital
- --execution.forwarding-target=https://rpc.alephzero-testnet.gelato.digital - --execution.forwarding-target=https://rpc.alephzero-testnet.gelato.digital
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
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
volumes: networks:
alephzero-sepolia-nitro-archive-leveldb-hash: - 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: services:
alephzero-sepolia: alephzero-sepolia:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'alephzero-sepolia-nitro-pruned-pebble-path:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/sepolia/alephzero/:/config sysctls:
- './tmp/alephzero-sepolia:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=path - --port=10083
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=false - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.alephzero-testnet.gelato.digital
- --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital - --node.feed.input.url=wss://feed.alephzero-testnet.gelato.digital
- --execution.forwarding-target=https://rpc.alephzero-testnet.gelato.digital - --execution.forwarding-target=https://rpc.alephzero-testnet.gelato.digital
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
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
volumes: networks:
alephzero-sepolia-nitro-pruned-pebble-path: - 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: services:
arbitrum-nova-archive: arbitrum-nova-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'arbitrum-nova-nitro-archive-leveldb-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
sysctls:
- './tmp/arbitrum-nova-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --chain.id=42170 - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10468
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.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
volumes: - --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
arbitrum-nova-nitro-archive-leveldb-hash: - --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: services:
arbitrum-nova: arbitrum-nova:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'arbitrum-nova-nitro-pruned-pebble-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
sysctls:
- './tmp/arbitrum-nova:/tmp' # 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: expose:
- 8545 - 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: command:
- --chain.id=42170 - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10468
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=false - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.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
volumes: - --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
arbitrum-nova-nitro-pruned-pebble-hash: - --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: services:
arbitrum-one-archive: arbitrum-one-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'arbitrum-one-nitro-archive-leveldb-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
sysctls:
- './tmp/arbitrum-one-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --chain.id=42161 - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10317
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.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
volumes: - --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
arbitrum-one-nitro-archive-leveldb-hash: - --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: services:
arbitrum-one: arbitrum-one:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'arbitrum-one-nitro-pruned-pebble-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
sysctls:
- './tmp/arbitrum-one:/tmp' # 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: expose:
- 8545 - 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: command:
- --chain.id=42161 - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10317
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=false - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.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
volumes: - --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
arbitrum-one-nitro-pruned-pebble-hash: - --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: services:
arbitrum-sepolia-archive: arbitrum-sepolia-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'arbitrum-sepolia-nitro-archive-pebble-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
sysctls:
- './tmp/arbitrum-sepolia-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --chain.id=421614 - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10360
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.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
volumes: - --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
arbitrum-sepolia-nitro-archive-pebble-hash: - --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: services:
connext-sepolia-archive: connext-sepolia-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'connext-sepolia-nitro-archive-leveldb-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/sepolia/connext/:/config sysctls:
- './tmp/connext-sepolia-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10111
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital
- --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital - --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital
- --execution.forwarding-target=https://rpc.connext-sepolia.gelato.digital - --execution.forwarding-target=https://rpc.connext-sepolia.gelato.digital
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
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
volumes: networks:
connext-sepolia-nitro-archive-leveldb-hash: - 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: services:
connext-sepolia: connext-sepolia:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'connext-sepolia-nitro-pruned-pebble-path:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/sepolia/connext/:/config sysctls:
- './tmp/connext-sepolia:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=path - --port=10111
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=false - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.connext-sepolia.gelato.digital
- --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital - --node.feed.input.url=wss://feed.connext-sepolia.gelato.digital
- --execution.forwarding-target=https://rpc.connext-sepolia.gelato.digital - --execution.forwarding-target=https://rpc.connext-sepolia.gelato.digital
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
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
volumes: networks:
connext-sepolia-nitro-pruned-pebble-path: - 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: services:
everclear-mainnet-archive: everclear-mainnet-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'everclear-mainnet-nitro-archive-leveldb-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/mainnet/everclear/:/config sysctls:
- './tmp/everclear-mainnet-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10870
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud - --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud
- --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud - --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud
- --execution.forwarding-target=https://rpc.everclear.raas.gelato.cloud - --execution.forwarding-target=https://rpc.everclear.raas.gelato.cloud
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
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
volumes: networks:
everclear-mainnet-nitro-archive-leveldb-hash: - 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: services:
everclear-mainnet: everclear-mainnet:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'everclear-mainnet-nitro-pruned-pebble-path:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/mainnet/everclear/:/config sysctls:
- './tmp/everclear-mainnet:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=path - --port=10870
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=false - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud - --node.data-availability.rest-aggregator.urls=https://das.everclear.raas.gelato.cloud
- --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud - --node.feed.input.url=wss://feed.everclear.raas.gelato.cloud
- --execution.forwarding-target=https://rpc.everclear.raas.gelato.cloud - --execution.forwarding-target=https://rpc.everclear.raas.gelato.cloud
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
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
volumes: networks:
everclear-mainnet-nitro-pruned-pebble-path: - 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: services:
opencampuscodex-sepolia-archive: opencampuscodex-sepolia-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'opencampuscodex-sepolia-nitro-archive-leveldb-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/arb-sepolia/opencampuscodex/:/config sysctls:
- './tmp/opencampuscodex-sepolia-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10938
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.open-campus-codex.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.open-campus-codex.gelato.digital
- --node.feed.input.url=wss://feed.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 - --execution.forwarding-target=https://rpc.open-campus-codex.gelato.digital
- --parent-chain.connection.url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
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
volumes: networks:
opencampuscodex-sepolia-nitro-archive-leveldb-hash: - 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: services:
playblock-mainnet-archive: playblock-mainnet-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'playblock-mainnet-nitro-archive-leveldb-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/nova/real/:/config sysctls:
- './tmp/playblock-mainnet-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10728
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.playblock.io - --node.data-availability.rest-aggregator.urls=https://das.playblock.io
- --node.feed.input.url=wss://feed.playblock.io - --node.feed.input.url=wss://feed.playblock.io
- --execution.forwarding-target=https://rpc.playblock.io - --execution.forwarding-target=https://rpc.playblock.io
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
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
volumes: networks:
playblock-mainnet-nitro-archive-leveldb-hash: - 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: services:
playblock-mainnet: playblock-mainnet:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'playblock-mainnet-nitro-pruned-pebble-path:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/nova/real/:/config sysctls:
- './tmp/playblock-mainnet:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=path - --port=10728
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=false - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.playblock.io - --node.data-availability.rest-aggregator.urls=https://das.playblock.io
- --node.feed.input.url=wss://feed.playblock.io - --node.feed.input.url=wss://feed.playblock.io
- --execution.forwarding-target=https://rpc.playblock.io - --execution.forwarding-target=https://rpc.playblock.io
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
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
volumes: networks:
playblock-mainnet-nitro-pruned-pebble-path: - 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: services:
real-mainnet-archive: real-mainnet-archive:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'real-mainnet-nitro-archive-leveldb-hash:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/nova/real/:/config sysctls:
- './tmp/real-mainnet-archive:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=hash - --port=10354
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=true - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital
- --node.feed.input.url=wss://feed.realforreal.gelato.digital - --node.feed.input.url=wss://feed.realforreal.gelato.digital
- --execution.forwarding-target=https://rpc.realforreal.gelato.digital - --execution.forwarding-target=https://rpc.realforreal.gelato.digital
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
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
volumes: networks:
real-mainnet-nitro-archive-leveldb-hash: - 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: services:
real-mainnet: real-mainnet:
image: 'offchainlabs/nitro-node:${NITRO_VERSION:-v3.5.3-0a9c975}' image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.5.3-0a9c975}
stop_grace_period: 3m
user: root user: root
volumes: ulimits:
- 'real-mainnet-nitro-pruned-pebble-path:/root/.arbitrum' nofile: 1048576 # Max open files (for RPC/WS connections)
- ./arb/nova/real/:/config sysctls:
- './tmp/real-mainnet:/tmp' # 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: expose:
- 8545 - 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: command:
- --conf.file=/config/baseConfig.json - --datadir=/root/.arbitrum
- --execution.caching.state-scheme=path - --port=10354
- --execution.rpc.gas-cap=600000000 - --bind=0.0.0.0
- --execution.caching.archive=false - --nat=extip:${IP}
- --execution.sequencer.enable=false - --http
- --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
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.corsdomain=* - --ws
- --http.api=eth,net,web3,arb,txpool,debug
- --ws.port=8545 - --ws.port=8545
- --ws.addr=0.0.0.0
- --ws.origins=* - --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 - --ws.api=eth,net,web3,arb,txpool,debug
- --metrics
- --metrics-server.addr=0.0.0.0 - --rpc.gascap=600000000
- --metrics-server.port=6070 - --rpc.returndatalimit=10000000
- --log-type=json - --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.sequencer=false
- --node.staker.enable=false - --node.staker.enable=false
- --node.batch-poster.enable=false - --node.batch-poster.enable=false
- --node.data-availability.enable=true - --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.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --node.data-availability.rest-aggregator.enable=true - --node.data-availability.rest-aggregator.enable=true
- --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital - --node.data-availability.rest-aggregator.urls=https://das.realforreal.gelato.digital
- --node.feed.input.url=wss://feed.realforreal.gelato.digital - --node.feed.input.url=wss://feed.realforreal.gelato.digital
- --execution.forwarding-target=https://rpc.realforreal.gelato.digital - --execution.forwarding-target=https://rpc.realforreal.gelato.digital
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
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
volumes: networks:
real-mainnet-nitro-pruned-pebble-path: - 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: # use at your own risk
# 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
services: services:
berachain-bepolia-archive: 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 user: root
volumes: ulimits:
- "berachain-bepolia-reth-archive-trace:/root/.local/share/reth" nofile: 1048576 # Max open files (for RPC/WS connections)
- "/slowdisk:/slowdisk" memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
- ".jwtsecret:/jwtsecret:ro" sysctls:
- "./berachain/bepolia/config:/config" # 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: expose:
- 8545 - 8545
- 9001 - 8551
ports: ports:
- "10347:10347" - 10347:10347
- "10347:10347/udp" - 10347:10347/udp
restart: unless-stopped volumes:
- ${BERACHAIN_BEPOLIA_RETH_ARCHIVE_TRACE_DATA:-berachain-bepolia-reth-archive-trace}:/root/.local/share/reth
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
environment: environment:
- "IP=${IP}" - 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 \"$@\"", "--"] entrypoint: [/bin/sh, -c, 'while [ ! -f /config/eth-genesis.json ]; do sleep 1; done; exec reth node "$@"', --]
command: command:
- --chain=/config/eth-genesis.json - --datadir=/root/.local/share/reth
- --port=10347
- --bind=0.0.0.0
- --nat=extip:${IP} - --nat=extip:${IP}
- --metrics=0.0.0.0:9001
- --http - --http
- --http.addr=0.0.0.0
- --http.port=8545 - --http.port=8545
- --http.vhosts=*
- --ws - --ws
- --ws.addr=0.0.0.0
- --ws.port=8545 - --ws.port=8545
- --ws.origins=* - --ws.origins=*
- --port=10347 - --ws.addr=0.0.0.0
- --discovery.port=10347 - --http.addr=0.0.0.0
- --authrpc.addr=0.0.0.0 - --maxpeers=50
- --authrpc.jwtsecret=/jwtsecret
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin - --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
- --ws.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.max-logs-per-response=1100000
- --rpc.gascap=600000000 - --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
- --chain=/config/eth-genesis.json
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"
networks: networks:
- chains - 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: berachain-bepolia-archive-node:
image: ghcr.io/berachain/beacon-kit:v1.1.3 image: ${BERACHAIN_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}:${BERACHAIN_BEPOLIA_BEACON_KIT_VERSION:-v1.1.3}
expose:
- 26657 #rpc
ports: ports:
- "15347:15347" - 15347:15347
- "15347:15347/udp" - 15347:15347/udp
environment: environment:
- "IP=${IP}" - MONIKER=d${DOMAIN:-local}
- "MONIKER=d${DOMAIN:-local}" - P2P_PORT=15347
- "P2P_PORT=15347" - AUTH_RPC=http://berachain-bepolia-archive:8551
- "CHAINNAME=bepolia" - CHAIN_SPEC=testnet
- "CHAINID=80069" - CHAINNAME=bepolia
- "AUTH_RPC=http://berachain-bepolia-archive:8551" - CHAINID=80069
- "CHAIN_SPEC=testnet" entrypoint: [sh, /init.sh]
entrypoint: [ "sh", "/init.sh" ]
networks: networks:
- chains - 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: volumes:
berachain-bepolia-reth-archive-trace: berachain-bepolia-reth-archive-trace:
berachain-bepolia-reth-archive-trace_node: 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: # use at your own risk
# 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
services: services:
berachain-mainnet-archive: 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 user: root
volumes: ulimits:
- "berachain-mainnet-reth-archive-trace:/root/.local/share/reth" nofile: 1048576 # Max open files (for RPC/WS connections)
- "/slowdisk:/slowdisk" memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
- ".jwtsecret:/jwtsecret:ro" sysctls:
- "./berachain/mainnet/config:/config" # 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: expose:
- 8545 - 8545
- 9001 - 8551
ports: ports:
- "10881:10881" - 10881:10881
- "10881:10881/udp" - 10881:10881/udp
restart: unless-stopped volumes:
- ${BERACHAIN_MAINNET_RETH_ARCHIVE_TRACE_DATA:-berachain-mainnet-reth-archive-trace}:/root/.local/share/reth
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
environment: environment:
- "IP=${IP}" - 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 \"$@\"", "--"] entrypoint: [/bin/sh, -c, 'while [ ! -f /config/eth-genesis.json ]; do sleep 1; done; exec reth node "$@"', --]
command: command:
- --chain=/config/eth-genesis.json - --datadir=/root/.local/share/reth
- --port=10881
- --bind=0.0.0.0
- --nat=extip:${IP} - --nat=extip:${IP}
- --metrics=0.0.0.0:9001
- --http - --http
- --http.addr=0.0.0.0
- --http.port=8545 - --http.port=8545
- --http.vhosts=*
- --ws - --ws
- --ws.addr=0.0.0.0
- --ws.port=8545 - --ws.port=8545
- --ws.origins=* - --ws.origins=*
- --port=10881 - --ws.addr=0.0.0.0
- --discovery.port=10881 - --http.addr=0.0.0.0
- --authrpc.addr=0.0.0.0 - --maxpeers=50
- --authrpc.jwtsecret=/jwtsecret
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin - --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
- --ws.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.max-logs-per-response=1100000
- --rpc.gascap=600000000 - --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
- --chain=/config/eth-genesis.json
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"
networks: networks:
- chains - 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: berachain-mainnet-archive-node:
image: ghcr.io/berachain/beacon-kit:v1.1.3 image: ${BERACHAIN_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}:${BERACHAIN_MAINNET_BEACON_KIT_VERSION:-v1.1.3}
expose:
- 26657 #rpc
ports: ports:
- "15881:15881" - 15881:15881
- "15881:15881/udp" - 15881:15881/udp
environment: environment:
- "IP=${IP}" - MONIKER=d${DOMAIN:-local}
- "MONIKER=d${DOMAIN:-local}" - P2P_PORT=15881
- "P2P_PORT=15881" - AUTH_RPC=http://berachain-mainnet-archive:8551
- "CHAINNAME=mainnet" - CHAIN_SPEC=mainnet
- "CHAINID=80094" - CHAINNAME=mainnet
- "AUTH_RPC=http://berachain-mainnet-archive:8551" - CHAINID=80094
- "CHAIN_SPEC=mainnet" entrypoint: [sh, /init.sh]
entrypoint: [ "sh", "/init.sh" ]
networks: networks:
- chains - 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: volumes:
berachain-mainnet-reth-archive-trace: berachain-mainnet-reth-archive-trace:
berachain-mainnet-reth-archive-trace_node: 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: services:
bsc-chapel: bsc-chapel:
image: ghcr.io/bnb-chain/bsc:${BSC_VERSION:-1.5.8} image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_CHAPEL_BSC_VERSION:-v1.4.10}
sysctls:
net.ipv4.tcp_slow_start_after_idle: 0
net.ipv4.tcp_no_metrics_save: 1
user: root 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: ports:
- "10759:10759" - 10759:10759
- "10759:10759/udp" - 10759:10759/udp
expose: volumes:
- "8545" - ${BSC_CHAPEL_BSC_PRUNED_PEBBLE_PATH_DATA:-bsc-chapel-bsc-pruned-pebble-path}:/bsc/.ethereum
volumes:
- bsc-chapel-bsc-pruned-pebble-path:/bsc/.ethereum
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
- ./bsc-testnet/config:/config
entrypoint: [ "geth" ] - .jwtsecret:/jwtsecret:ro
command: command:
- --chapel - --datadir=/bsc/.ethereum
- --config=/config/config.toml - --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 - --db.engine=pebble
- --state.scheme=path - --state.scheme=path
- --syncmode=snap - --syncmode=snap
- --gcmode=full - --gcmode=full
- --rpc.gascap=600000000
- --nat=extip:${IP} - --config=/config/config.toml
- --http
- --http.addr=0.0.0.0 networks:
- --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:
- chains - chains
labels: restart: unless-stopped
- "traefik.enable=true" stop_grace_period: 5m
- "traefik.http.middlewares.bsc-chapel-bsc-pruned-pebble-path-stripprefix.stripprefix.prefixes=/bsc-chapel" labels:
- "traefik.http.services.bsc-chapel-bsc-pruned-pebble-path.loadbalancer.server.port=8545" - traefik.enable=true
- "traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.entrypoints=websecure" - traefik.http.middlewares.bsc-chapel-bsc-pruned-pebble-path-stripprefix.stripprefix.prefixes=/bsc-chapel
- "traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.tls.certresolver=myresolver" - traefik.http.services.bsc-chapel-bsc-pruned-pebble-path.loadbalancer.server.port=8545
- "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.entrypoints=websecure}
- "traefik.http.routers.bsc-chapel-bsc-pruned-pebble-path.middlewares=bsc-chapel-bsc-pruned-pebble-path-stripprefix, ipwhitelist" - ${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: volumes:
bsc-chapel-bsc-pruned-pebble-path: 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: services:
bsc-mainnet: bsc-mainnet:
image: ghcr.io/bnb-chain/bsc:${BSC_VERSION:-1.5.8} image: ${BSC_BSC_IMAGE:-ghcr.io/bnb-chain/bsc}:${BSC_MAINNET_BSC_VERSION:-v1.4.10}
sysctls:
net.ipv4.tcp_slow_start_after_idle: 0
net.ipv4.tcp_no_metrics_save: 1
user: root 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: ports:
- "10037:10037" - 10037:10037
- "10037:10037/udp" - 10037:10037/udp
expose: volumes:
- "8545" - ${BSC_MAINNET_BSC_PRUNED_PEBBLE_PATH_DATA:-bsc-mainnet-bsc-pruned-pebble-path}:/bsc/.ethereum
volumes:
- bsc-mainnet-bsc-pruned-pebble-path:/bsc/.ethereum
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
- ./bsc/config:/config
entrypoint: [ "geth" ] - .jwtsecret:/jwtsecret:ro
command: command:
- --mainnet - --datadir=/bsc/.ethereum
- --config=/config/config.toml - --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 - --db.engine=pebble
- --state.scheme=path - --state.scheme=path
- --syncmode=snap - --syncmode=snap
- --gcmode=full - --gcmode=full
- --rpc.gascap=600000000
- --nat=extip:${IP} - --config=/config/config.toml
- --http
- --http.addr=0.0.0.0 networks:
- --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:
- chains - chains
labels: restart: unless-stopped
- "traefik.enable=true" stop_grace_period: 5m
- "traefik.http.middlewares.bsc-mainnet-bsc-pruned-pebble-path-stripprefix.stripprefix.prefixes=/bsc-mainnet" labels:
- "traefik.http.services.bsc-mainnet-bsc-pruned-pebble-path.loadbalancer.server.port=8545" - traefik.enable=true
- "traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.entrypoints=websecure" - traefik.http.middlewares.bsc-mainnet-bsc-pruned-pebble-path-stripprefix.stripprefix.prefixes=/bsc-mainnet
- "traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.tls.certresolver=myresolver" - traefik.http.services.bsc-mainnet-bsc-pruned-pebble-path.loadbalancer.server.port=8545
- "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.entrypoints=websecure}
- "traefik.http.routers.bsc-mainnet-bsc-pruned-pebble-path.middlewares=bsc-mainnet-bsc-pruned-pebble-path-stripprefix, ipwhitelist" - ${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: volumes:
bsc-mainnet-bsc-pruned-pebble-path: 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: services:
core-buffalo: core-buffalo:
image: ghcr.io/coredao-org/core-chain:1.0.15 image: ${CORE_CORE_IMAGE:-ghcr.io/coredao-org/core-chain}:${CORE_BUFFALO_CORE_VERSION:-1.0.15}
sysctls:
net.ipv4.tcp_slow_start_after_idle: 0
net.ipv4.tcp_no_metrics_save: 1
user: root 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: ports:
- "10384:10384" - 10384:10384
- "10384:10384/udp" - 10384:10384/udp
expose: volumes:
- "8545" - ${CORE_BUFFALO_CORE_PRUNED_PEBBLE_PATH_DATA:-core-buffalo-core-pruned-pebble-path}:/core/.ethereum
volumes:
- core-buffalo-core-pruned-pebble-path:/core/.ethereum
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
- ./core-chain/testnet:/config
entrypoint: [ "geth" ] - .jwtsecret:/jwtsecret:ro
command: command:
- --buffalo - --datadir=/core/.ethereum
- --config=/config/config.toml - --port=10384
- --db.engine=pebble - --bind=0.0.0.0
- --state.scheme=path
- --syncmode=snap
- --gcmode=full
- --rpc.gascap=600000000
- --nat=extip:${IP} - --nat=extip:${IP}
- --http - --http
- --http.addr=0.0.0.0
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
- --ws - --ws
- --ws.addr=0.0.0.0
- --ws.port=8545 - --ws.port=8545
- --ws.origins=* - --ws.origins=*
- --ws.api=net,web3,eth,debug - --ws.addr=0.0.0.0
- --maxpeers=200 - --http.addr=0.0.0.0
- --nodiscover=false - --maxpeers=50
- --discovery.port=10384 - --http.api=eth,net,web3,txpool,debug,admin,satoshi
- --port=10384 - --ws.api=eth,net,web3,txpool,debug,admin,satoshi
- --rpc.gascap=600000000
restart: unless-stopped - --rpc.returndatalimit=10000000
stop_grace_period: 3m - --rpc.txfeecap=0
networks:
- --db.engine=
- --state.scheme=
- --syncmode=snap
- --gcmode=full
- --config=/config/config.toml
networks:
- chains - chains
labels: restart: unless-stopped
- "traefik.enable=true" stop_grace_period: 5m
- "traefik.http.middlewares.core-buffalo-core-pruned-pebble-path-stripprefix.stripprefix.prefixes=/core-buffalo" labels:
- "traefik.http.services.core-buffalo-core-pruned-pebble-path.loadbalancer.server.port=8545" - traefik.enable=true
- "traefik.http.routers.core-buffalo-core-pruned-pebble-path.entrypoints=websecure" - traefik.http.middlewares.core-buffalo-core-pruned-pebble-path-stripprefix.stripprefix.prefixes=/core-buffalo
- "traefik.http.routers.core-buffalo-core-pruned-pebble-path.tls.certresolver=myresolver" - traefik.http.services.core-buffalo-core-pruned-pebble-path.loadbalancer.server.port=8545
- "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.entrypoints=websecure}
- "traefik.http.routers.core-buffalo-core-pruned-pebble-path.middlewares=core-buffalo-core-pruned-pebble-path-stripprefix, ipwhitelist" - ${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: volumes:
core-buffalo-core-pruned-pebble-path: 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: services:
core-mainnet-archive: core-mainnet-archive:
image: ghcr.io/coredao-org/core-chain:1.0.15 image: ${CORE_CORE_IMAGE:-ghcr.io/coredao-org/core-chain}:${CORE_MAINNET_CORE_VERSION:-1.0.15}
sysctls:
net.ipv4.tcp_slow_start_after_idle: 0
net.ipv4.tcp_no_metrics_save: 1
user: root 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: ports:
- "10234:10234" - 10169:10169
- "10234:10234/udp" - 10169:10169/udp
expose: volumes:
- "8545" - ${CORE_MAINNET_CORE_ARCHIVE_LEVELDB_HASH_DATA:-core-mainnet-core-archive-leveldb-hash}:/core/.ethereum
volumes:
- core-mainnet-core-archive-leveldb-hash:/core/.ethereum
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
- ./core-chain/mainnet:/config
entrypoint: [ "geth" ] - .jwtsecret:/jwtsecret:ro
command: command:
- --mainnet - --datadir=/core/.ethereum
- --config=/config/config.toml - --port=10169
- --db.engine=leveldb - --bind=0.0.0.0
- --state.scheme=hash
- --syncmode=full
- --gcmode=archive
- --rpc.gascap=600000000
- --nat=extip:${IP} - --nat=extip:${IP}
- --http - --http
- --http.addr=0.0.0.0
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
- --ws - --ws
- --ws.addr=0.0.0.0
- --ws.port=8545 - --ws.port=8545
- --ws.origins=* - --ws.origins=*
- --ws.api=net,web3,eth,debug - --ws.addr=0.0.0.0
- --maxpeers=200 - --http.addr=0.0.0.0
- --nodiscover=false - --maxpeers=50
- --discovery.port=10234 - --http.api=eth,net,web3,txpool,debug,admin,satoshi
- --port=10234 - --ws.api=eth,net,web3,txpool,debug,admin,satoshi
- --rpc.gascap=600000000
restart: unless-stopped - --rpc.returndatalimit=10000000
stop_grace_period: 3m - --rpc.txfeecap=0
networks:
- --db.engine=
- --state.scheme=
- --syncmode=full
- --gcmode=archive
- --config=/config/config.toml
networks:
- chains - chains
labels: restart: unless-stopped
- "traefik.enable=true" stop_grace_period: 5m
- "traefik.http.middlewares.core-mainnet-core-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/core-mainnet-archive" labels:
- "traefik.http.services.core-mainnet-core-archive-leveldb-hash.loadbalancer.server.port=8545" - traefik.enable=true
- "traefik.http.routers.core-mainnet-core-archive-leveldb-hash.entrypoints=websecure" - traefik.http.middlewares.core-mainnet-core-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/core-mainnet-archive
- "traefik.http.routers.core-mainnet-core-archive-leveldb-hash.tls.certresolver=myresolver" - traefik.http.services.core-mainnet-core-archive-leveldb-hash.loadbalancer.server.port=8545
- "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.entrypoints=websecure}
- "traefik.http.routers.core-mainnet-core-archive-leveldb-hash.middlewares=core-mainnet-core-archive-leveldb-hash-stripprefix, ipwhitelist" - ${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: volumes:
core-mainnet-core-archive-leveldb-hash: 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: services:
core-mainnet: core-mainnet:
image: ghcr.io/coredao-org/core-chain:1.0.15 image: ${CORE_CORE_IMAGE:-ghcr.io/coredao-org/core-chain}:${CORE_MAINNET_CORE_VERSION:-1.0.15}
sysctls:
net.ipv4.tcp_slow_start_after_idle: 0
net.ipv4.tcp_no_metrics_save: 1
user: root 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: ports:
- "10169:10169" - 10169:10169
- "10169:10169/udp" - 10169:10169/udp
expose: volumes:
- "8545" - ${CORE_MAINNET_CORE_PRUNED_LEVELDB_HASH_DATA:-core-mainnet-core-pruned-leveldb-hash}:/core/.ethereum
volumes:
- core-mainnet-core-pruned-leveldb-hash:/core/.ethereum
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
- ./core-chain/mainnet:/config
entrypoint: [ "geth" ] - .jwtsecret:/jwtsecret:ro
command: command:
- --mainnet - --datadir=/core/.ethereum
- --config=/config/config.toml - --port=10169
- --db.engine=leveldb - --bind=0.0.0.0
- --state.scheme=hash
- --syncmode=snap
- --gcmode=full
- --rpc.gascap=600000000
- --nat=extip:${IP} - --nat=extip:${IP}
- --http - --http
- --http.addr=0.0.0.0
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
- --ws - --ws
- --ws.addr=0.0.0.0
- --ws.port=8545 - --ws.port=8545
- --ws.origins=* - --ws.origins=*
- --ws.api=net,web3,eth,debug - --ws.addr=0.0.0.0
- --maxpeers=200 - --http.addr=0.0.0.0
- --nodiscover=false - --maxpeers=50
- --discovery.port=10169 - --http.api=eth,net,web3,txpool,debug,admin,satoshi
- --port=10169 - --ws.api=eth,net,web3,txpool,debug,admin,satoshi
- --rpc.gascap=600000000
restart: unless-stopped - --rpc.returndatalimit=10000000
stop_grace_period: 3m - --rpc.txfeecap=0
networks:
- --db.engine=
- --state.scheme=
- --syncmode=snap
- --gcmode=full
- --config=/config/config.toml
networks:
- chains - chains
labels: restart: unless-stopped
- "traefik.enable=true" stop_grace_period: 5m
- "traefik.http.middlewares.core-mainnet-core-pruned-leveldb-hash-stripprefix.stripprefix.prefixes=/core-mainnet" labels:
- "traefik.http.services.core-mainnet-core-pruned-leveldb-hash.loadbalancer.server.port=8545" - traefik.enable=true
- "traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.entrypoints=websecure" - traefik.http.middlewares.core-mainnet-core-pruned-leveldb-hash-stripprefix.stripprefix.prefixes=/core-mainnet
- "traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.tls.certresolver=myresolver" - traefik.http.services.core-mainnet-core-pruned-leveldb-hash.loadbalancer.server.port=8545
- "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.entrypoints=websecure}
- "traefik.http.routers.core-mainnet-core-pruned-leveldb-hash.middlewares=core-mainnet-core-pruned-leveldb-hash-stripprefix, ipwhitelist" - ${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: volumes:
core-mainnet-core-pruned-leveldb-hash: 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: services:
core-pigeon: core-pigeon:
image: ghcr.io/coredao-org/core-chain:1.0.15 image: ${CORE_CORE_IMAGE:-ghcr.io/coredao-org/core-chain}:${CORE_PIGEON_CORE_VERSION:-1.0.15}
sysctls:
net.ipv4.tcp_slow_start_after_idle: 0
net.ipv4.tcp_no_metrics_save: 1
user: root 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: ports:
- "10478:10478" - 10478:10478
- "10478:10478/udp" - 10478:10478/udp
expose: volumes:
- "8545" - ${CORE_PIGEON_CORE_PRUNED_PEBBLE_PATH_DATA:-core-pigeon-core-pruned-pebble-path}:/core/.ethereum
volumes:
- core-pigeon-core-pruned-pebble-path:/core/.ethereum
- /slowdisk:/slowdisk - /slowdisk:/slowdisk
- ./core-chain/testnet2:/config
entrypoint: [ "geth" ] - .jwtsecret:/jwtsecret:ro
command: command:
- --pigeon - --datadir=/core/.ethereum
- --config=/config/config.toml - --port=10478
- --db.engine=pebble - --bind=0.0.0.0
- --state.scheme=path
- --syncmode=snap
- --gcmode=full
- --rpc.gascap=600000000
- --nat=extip:${IP} - --nat=extip:${IP}
- --http - --http
- --http.addr=0.0.0.0
- --http.port=8545 - --http.port=8545
- --http.vhosts=* - --http.vhosts=*
- --http.api=eth,net,web3,txpool,debug,admin,satoshi
- --ws - --ws
- --ws.addr=0.0.0.0
- --ws.port=8545 - --ws.port=8545
- --ws.origins=* - --ws.origins=*
- --ws.api=net,web3,eth,debug - --ws.addr=0.0.0.0
- --maxpeers=200 - --http.addr=0.0.0.0
- --nodiscover=false - --maxpeers=50
- --discovery.port=10478 - --http.api=eth,net,web3,txpool,debug,admin,satoshi
- --port=10478 - --ws.api=eth,net,web3,txpool,debug,admin,satoshi
- --rpc.gascap=600000000
restart: unless-stopped - --rpc.returndatalimit=10000000
stop_grace_period: 3m - --rpc.txfeecap=0
networks:
- --db.engine=
- --state.scheme=
- --syncmode=snap
- --gcmode=full
- --config=/config/config.toml
networks:
- chains - chains
labels: restart: unless-stopped
- "traefik.enable=true" stop_grace_period: 5m
- "traefik.http.middlewares.core-pigeon-core-pruned-pebble-path-stripprefix.stripprefix.prefixes=/core-pigeon" labels:
- "traefik.http.services.core-pigeon-core-pruned-pebble-path.loadbalancer.server.port=8545" - traefik.enable=true
- "traefik.http.routers.core-pigeon-core-pruned-pebble-path.entrypoints=websecure" - traefik.http.middlewares.core-pigeon-core-pruned-pebble-path-stripprefix.stripprefix.prefixes=/core-pigeon
- "traefik.http.routers.core-pigeon-core-pruned-pebble-path.tls.certresolver=myresolver" - traefik.http.services.core-pigeon-core-pruned-pebble-path.loadbalancer.server.port=8545
- "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.entrypoints=websecure}
- "traefik.http.routers.core-pigeon-core-pruned-pebble-path.middlewares=core-pigeon-core-pruned-pebble-path-stripprefix, ipwhitelist" - ${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: volumes:
core-pigeon-core-pruned-pebble-path: 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: services:
ethereum-holesky-archive: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10947:10947" - 10947:10947
- "10947:10947/udp" - 10947:10947/udp
- "25947:25947" - 30947:30947
- "25947:25947/udp" - 30947:30947/udp
- "30947:30947" - 35947:35947
- "30947:30947/udp" - 35947:35947/udp
- "15947:15947" - 15947:15947
- "15947:15947/udp" - 15947:15947/udp
- "20947:20947" - 25947:25947
- "20947:20947/udp" - 25947:25947/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-holesky-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-archive" - 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.services.ethereum-holesky-erigon3-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-archive-trace.rule=PathPrefix(`/ethereum-holesky-archive`)}
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.service=ethereum-holesky-erigon3-archive-trace" - 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.service=ethereum-holesky-erigon3-archive-trace-node
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.entrypoints=websecure" - traefik.http.services.ethereum-holesky-erigon3-archive-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.service=ethereum-holesky-erigon3-archive-trace-node" - ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.entrypoints=websecure}
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
ethereum-holesky-minimal: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10582:10582" - 10947:10947
- "10582:10582/udp" - 10947:10947/udp
- "25582:25582" - 30947:30947
- "25582:25582/udp" - 30947:30947/udp
- "30582:30582" - 35947:35947
- "30582:30582/udp" - 35947:35947/udp
- "15582:15582" - 15947:15947
- "15582:15582/udp" - 15947:15947/udp
- "20582:20582" - 25947:25947
- "20582:20582/udp" - 25947:25947/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-holesky-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-minimal" - 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.services.ethereum-holesky-erigon3-minimal-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.rule=PathPrefix(`/ethereum-holesky-minimal`)}
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace.service=ethereum-holesky-erigon3-minimal-trace" - 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.service=ethereum-holesky-erigon3-minimal-trace-node
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.entrypoints=websecure" - traefik.http.services.ethereum-holesky-erigon3-minimal-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.service=ethereum-holesky-erigon3-minimal-trace-node" - ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.entrypoints=websecure}
- "traefik.http.routers.ethereum-holesky-erigon3-minimal-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
ethereum-holesky: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10685:10685" - 10947:10947
- "10685:10685/udp" - 10947:10947/udp
- "25685:25685" - 30947:30947
- "25685:25685/udp" - 30947:30947/udp
- "30685:30685" - 35947:35947
- "30685:30685/udp" - 35947:35947/udp
- "15685:15685" - 15947:15947
- "15685:15685/udp" - 15947:15947/udp
- "20685:20685" - 25947:25947
- "20685:20685/udp" - 25947:25947/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-holesky-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky" - 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.services.ethereum-holesky-erigon3-pruned-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.rule=PathPrefix(`/ethereum-holesky`)}
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace.service=ethereum-holesky-erigon3-pruned-trace" - 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.service=ethereum-holesky-erigon3-pruned-trace-node
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.entrypoints=websecure" - traefik.http.services.ethereum-holesky-erigon3-pruned-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.service=ethereum-holesky-erigon3-pruned-trace-node" - ${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.entrypoints=websecure}
- "traefik.http.routers.ethereum-holesky-erigon3-pruned-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
ethereum-mainnet-archive: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10675:10675" - 10675:10675
- "10675:10675/udp" - 10675:10675/udp
- "25675:25675" - 30675:30675
- "25675:25675/udp" - 30675:30675/udp
- "30675:30675" - 35675:35675
- "30675:30675/udp" - 35675:35675/udp
- "15675:15675" - 15675:15675
- "15675:15675/udp" - 15675:15675/udp
- "20675:20675" - 25675:25675
- "20675:20675/udp" - 25675:25675/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet-archive" - 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.services.ethereum-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.rule=PathPrefix(`/ethereum-mainnet-archive`)}
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace.service=ethereum-mainnet-erigon3-archive-trace" - 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.service=ethereum-mainnet-erigon3-archive-trace-node
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.entrypoints=websecure" - traefik.http.services.ethereum-mainnet-erigon3-archive-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.service=ethereum-mainnet-erigon3-archive-trace-node" - ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.entrypoints=websecure}
- "traefik.http.routers.ethereum-mainnet-erigon3-archive-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
ethereum-mainnet-minimal: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10614:10614" - 10675:10675
- "10614:10614/udp" - 10675:10675/udp
- "25614:25614" - 30675:30675
- "25614:25614/udp" - 30675:30675/udp
- "30614:30614" - 35675:35675
- "30614:30614/udp" - 35675:35675/udp
- "15614:15614" - 15675:15675
- "15614:15614/udp" - 15675:15675/udp
- "20614:20614" - 25675:25675
- "20614:20614/udp" - 25675:25675/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet-minimal" - 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.services.ethereum-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.rule=PathPrefix(`/ethereum-mainnet-minimal`)}
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace.service=ethereum-mainnet-erigon3-minimal-trace" - 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.service=ethereum-mainnet-erigon3-minimal-trace-node
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.entrypoints=websecure" - traefik.http.services.ethereum-mainnet-erigon3-minimal-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.service=ethereum-mainnet-erigon3-minimal-trace-node" - ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.entrypoints=websecure}
- "traefik.http.routers.ethereum-mainnet-erigon3-minimal-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
ethereum-mainnet: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10616:10616" - 10675:10675
- "10616:10616/udp" - 10675:10675/udp
- "25616:25616" - 30675:30675
- "25616:25616/udp" - 30675:30675/udp
- "30616:30616" - 35675:35675
- "30616:30616/udp" - 35675:35675/udp
- "15616:15616" - 15675:15675
- "15616:15616/udp" - 15675:15675/udp
- "20616:20616" - 25675:25675
- "20616:20616/udp" - 25675:25675/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet" - 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.services.ethereum-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.rule=PathPrefix(`/ethereum-mainnet`)}
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace.service=ethereum-mainnet-erigon3-pruned-trace" - 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.service=ethereum-mainnet-erigon3-pruned-trace-node
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.entrypoints=websecure" - traefik.http.services.ethereum-mainnet-erigon3-pruned-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.service=ethereum-mainnet-erigon3-pruned-trace-node" - ${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.entrypoints=websecure}
- "traefik.http.routers.ethereum-mainnet-erigon3-pruned-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
ethereum-sepolia-archive: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10317:10317" - 10317:10317
- "10317:10317/udp" - 10317:10317/udp
- "25317:25317" - 30317:30317
- "25317:25317/udp" - 30317:30317/udp
- "30317:30317" - 35317:35317
- "30317:30317/udp" - 35317:35317/udp
- "15317:15317" - 15317:15317
- "15317:15317/udp" - 15317:15317/udp
- "20317:20317" - 25317:25317
- "20317:20317/udp" - 25317:25317/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-sepolia-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-archive" - 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.services.ethereum-sepolia-erigon3-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.rule=PathPrefix(`/ethereum-sepolia-archive`)}
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.service=ethereum-sepolia-erigon3-archive-trace" - 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.service=ethereum-sepolia-erigon3-archive-trace-node
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.entrypoints=websecure" - traefik.http.services.ethereum-sepolia-erigon3-archive-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.service=ethereum-sepolia-erigon3-archive-trace-node" - ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.entrypoints=websecure}
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
ethereum-sepolia-minimal: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10087:10087" - 10317:10317
- "10087:10087/udp" - 10317:10317/udp
- "25087:25087" - 30317:30317
- "25087:25087/udp" - 30317:30317/udp
- "30087:30087" - 35317:35317
- "30087:30087/udp" - 35317:35317/udp
- "15087:15087" - 15317:15317
- "15087:15087/udp" - 15317:15317/udp
- "20087:20087" - 25317:25317
- "20087:20087/udp" - 25317:25317/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-sepolia-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-minimal" - 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.services.ethereum-sepolia-erigon3-minimal-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.rule=PathPrefix(`/ethereum-sepolia-minimal`)}
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace.service=ethereum-sepolia-erigon3-minimal-trace" - 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.service=ethereum-sepolia-erigon3-minimal-trace-node
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.entrypoints=websecure" - traefik.http.services.ethereum-sepolia-erigon3-minimal-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.service=ethereum-sepolia-erigon3-minimal-trace-node" - ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.entrypoints=websecure}
- "traefik.http.routers.ethereum-sepolia-erigon3-minimal-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
ethereum-sepolia: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10930:10930" - 10317:10317
- "10930:10930/udp" - 10317:10317/udp
- "25930:25930" - 30317:30317
- "25930:25930/udp" - 30317:30317/udp
- "30930:30930" - 35317:35317
- "30930:30930/udp" - 35317:35317/udp
- "15930:15930" - 15317:15317
- "15930:15930/udp" - 15317:15317/udp
- "20930:20930" - 25317:25317
- "20930:20930/udp" - 25317:25317/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-sepolia-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia" - 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.services.ethereum-sepolia-erigon3-pruned-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.rule=PathPrefix(`/ethereum-sepolia`)}
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace.service=ethereum-sepolia-erigon3-pruned-trace" - 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.service=ethereum-sepolia-erigon3-pruned-trace-node
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.entrypoints=websecure" - traefik.http.services.ethereum-sepolia-erigon3-pruned-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.service=ethereum-sepolia-erigon3-pruned-trace-node" - ${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.entrypoints=websecure}
- "traefik.http.routers.ethereum-sepolia-erigon3-pruned-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
ethereum-holesky: 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: sysctls:
net.ipv4.tcp_slow_start_after_idle: 0 # TCP Performance
net.ipv4.tcp_no_metrics_save: 1 net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
expose: 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 - 8551
ports:
- "10993:10993" ports:
- "10993:10993/udp" - 10993:10993
environment: - 10993:10993/udp
- "GETH_DATADIR=/data" volumes:
- "GETH_HOLESKY=true" - ${ETHEREUM_HOLESKY_GETH_PRUNED_PEBBLE_PATH_DATA:-ethereum-holesky-geth-pruned-pebble-path}:/root/.ethereum
- "GETH_GCMODE=full" - /slowdisk:/slowdisk
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path" - .jwtsecret:/jwtsecret:ro
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}" command:
- "GETH_PORT=19809" - --datadir=/root/.ethereum
- "GETH_WS_PORT=8545" - --port=10993
- "GETH_HTTP=true" - --bind=0.0.0.0
- "GETH_HTTP_ADDR=0.0.0.0" - --nat=extip:${IP}
- "GETH_HTTP_VHOSTS=*" - --http
- "GETH_WS=true" - --http.port=8545
- "GETH_WS_ADDR=0.0.0.0" - --http.vhosts=*
- "GETH_WS_ORIGINS=*" - --ws
- "GETH_HTTP_API=eth,net,debug,admin,web3" - --ws.port=8545
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret" - --ws.origins=*
- "GETH_AUTHRPC_ADDR=0.0.0.0" - --ws.addr=0.0.0.0
- "GETH_AUTHRPC_VHOSTS=*" - --http.addr=0.0.0.0
networks: - --maxpeers=50
- chains - --http.api=eth,net,web3,debug,admin,txpool
volumes: - --ws.api=eth,net,web3,debug,admin,txpool
- "ethereum-holesky-geth-pruned-pebble-path:/data"
- ".jwtsecret:/jwtsecret:ro" - --rpc.gascap=600000000
- --rpc.returndatalimit=10000000
- --rpc.txfeecap=0
- --db.engine=pebble
- --state.scheme=path
- --syncmode=snap
- --gcmode=full
networks:
- chains
restart: unless-stopped restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-holesky-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-holesky" - 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.services.ethereum-holesky-geth-pruned-pebble-path.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.entrypoints=websecure}
- "traefik.http.routers.ethereum-holesky-geth-pruned-pebble-path.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: ports:
- "15993:15993" - 15993:15993
- "15993:15993/udp" - 15993:15993/udp
command: command:
[ - --holesky
"--holesky", - --datadir=/data
"--datadir=/data", - --jwt-secret=/jwtsecret
"--jwt-secret=/jwtsecret", - --rpc-host=0.0.0.0
"--rpc-host=0.0.0.0", - --grpc-gateway-host=0.0.0.0
"--grpc-gateway-host=0.0.0.0", - --monitoring-host=0.0.0.0
"--monitoring-host=0.0.0.0", - --p2p-tcp-port=15993
"--p2p-tcp-port=15993", - --p2p-udp-port=15993
"--p2p-udp-port=15993", - --checkpoint-sync-url=
"--checkpoint-sync-url=https://holesky.beaconstate.info", - --execution-endpoint=http://ethereum-holesky:8551
"--execution-endpoint=http://ethereum-holesky:8551", - --enable-historical-state-representation=false
"--enable-historical-state-representation=false", - --beacon-db-pruning
"--beacon-db-pruning", - --accept-terms-of-use
"--accept-terms-of-use"
]
networks:
- chains
volumes:
- "ethereum-holesky-geth-pruned-pebble-path_prysm:/data"
- ".jwtsecret:/jwtsecret:ro"
restart: unless-stopped
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: volumes:
ethereum-holesky-geth-pruned-pebble-path: ethereum-holesky-geth-pruned-pebble-path:
ethereum-holesky-geth-pruned-pebble-path_prysm: ethereum-holesky-geth-pruned-pebble-path_prysm:
x-upstreams: x-upstreams:
- id: $${ID} - chain: holesky
chain: $${CHAIN}
labels:
provider: $${PROVIDER}
method-groups: method-groups:
enabled: enabled:
- debug - debug
- filter - filter
methods: methods:
disabled: disabled:
# not compatible with path state scheme
- name: debug_traceBlockByHash - name: debug_traceBlockByHash
enabled: enabled:
- name: txpool_content # standard geth only
connection: - name: debug_getRawBlock
generic: - name: debug_getRawTransaction
rpc: - name: debug_getRawReceipts
url: "$${RPC_URL}" - name: debug_getRawHeader
ws: - name: debug_getBadBlocks
frameSize: 20Mb # non standard geth only slightly dangerous
msgSize: 50Mb - name: debug_intermediateRoots
url: "$${WS_URL}" - 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: services:
ethereum-mainnet: 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: sysctls:
net.ipv4.tcp_slow_start_after_idle: 0 # TCP Performance
net.ipv4.tcp_no_metrics_save: 1 net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
expose: 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 - 8551
ports:
- "10023:10023" ports:
- "10023:10023/udp" - 10023:10023
environment: - 10023:10023/udp
- "GETH_DATADIR=/data" volumes:
- "GETH_MAINNET=true" - ${ETHEREUM_MAINNET_GETH_PRUNED_PEBBLE_PATH_DATA:-ethereum-mainnet-geth-pruned-pebble-path}:/root/.ethereum
- "GETH_GCMODE=full" - /slowdisk:/slowdisk
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path" - .jwtsecret:/jwtsecret:ro
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}" command:
- "GETH_PORT=19809" - --datadir=/root/.ethereum
- "GETH_WS_PORT=8545" - --port=10023
- "GETH_HTTP=true" - --bind=0.0.0.0
- "GETH_HTTP_ADDR=0.0.0.0" - --nat=extip:${IP}
- "GETH_HTTP_VHOSTS=*" - --http
- "GETH_WS=true" - --http.port=8545
- "GETH_WS_ADDR=0.0.0.0" - --http.vhosts=*
- "GETH_WS_ORIGINS=*" - --ws
- "GETH_HTTP_API=eth,net,debug,admin,web3" - --ws.port=8545
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret" - --ws.origins=*
- "GETH_AUTHRPC_ADDR=0.0.0.0" - --ws.addr=0.0.0.0
- "GETH_AUTHRPC_VHOSTS=*" - --http.addr=0.0.0.0
networks: - --maxpeers=50
- chains - --http.api=eth,net,web3,debug,admin,txpool
volumes: - --ws.api=eth,net,web3,debug,admin,txpool
- "ethereum-mainnet-geth-pruned-pebble-path:/data"
- ".jwtsecret:/jwtsecret:ro" - --rpc.gascap=600000000
- --rpc.returndatalimit=10000000
- --rpc.txfeecap=0
- --db.engine=pebble
- --state.scheme=path
- --syncmode=snap
- --gcmode=full
networks:
- chains
restart: unless-stopped restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-mainnet-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-mainnet" - 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.services.ethereum-mainnet-geth-pruned-pebble-path.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.entrypoints=websecure}
- "traefik.http.routers.ethereum-mainnet-geth-pruned-pebble-path.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: ports:
- "15023:15023" - 15023:15023
- "15023:15023/udp" - 15023:15023/udp
command: command:
[ - --mainnet
"--mainnet", - --datadir=/data
"--datadir=/data", - --jwt-secret=/jwtsecret
"--jwt-secret=/jwtsecret", - --rpc-host=0.0.0.0
"--rpc-host=0.0.0.0", - --grpc-gateway-host=0.0.0.0
"--grpc-gateway-host=0.0.0.0", - --monitoring-host=0.0.0.0
"--monitoring-host=0.0.0.0", - --p2p-tcp-port=15023
"--p2p-tcp-port=15023", - --p2p-udp-port=15023
"--p2p-udp-port=15023", - --checkpoint-sync-url=
"--checkpoint-sync-url=https://sync-mainnet.beaconcha.in", - --execution-endpoint=http://ethereum-mainnet:8551
"--execution-endpoint=http://ethereum-mainnet:8551", - --enable-historical-state-representation=false
"--enable-historical-state-representation=false", - --beacon-db-pruning
"--beacon-db-pruning", - --accept-terms-of-use
"--accept-terms-of-use"
]
networks:
- chains
volumes:
- "ethereum-mainnet-geth-pruned-pebble-path_prysm:/data"
- ".jwtsecret:/jwtsecret:ro"
restart: unless-stopped
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: volumes:
ethereum-mainnet-geth-pruned-pebble-path: ethereum-mainnet-geth-pruned-pebble-path:
ethereum-mainnet-geth-pruned-pebble-path_prysm: ethereum-mainnet-geth-pruned-pebble-path_prysm:
x-upstreams: x-upstreams:
- id: $${ID} - chain: ethereum
chain: $${CHAIN}
labels:
provider: $${PROVIDER}
method-groups: method-groups:
enabled: enabled:
- debug - debug
- filter - filter
methods: methods:
disabled: disabled:
# not compatible with path state scheme
- name: debug_traceBlockByHash - name: debug_traceBlockByHash
enabled: enabled:
- name: txpool_content # standard geth only
connection: - name: debug_getRawBlock
generic: - name: debug_getRawTransaction
rpc: - name: debug_getRawReceipts
url: "$${RPC_URL}" - name: debug_getRawHeader
ws: - name: debug_getBadBlocks
frameSize: 20Mb # non standard geth only slightly dangerous
msgSize: 50Mb - name: debug_intermediateRoots
url: "$${WS_URL}" - 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: services:
ethereum-sepolia: 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: sysctls:
net.ipv4.tcp_slow_start_after_idle: 0 # TCP Performance
net.ipv4.tcp_no_metrics_save: 1 net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
expose: 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 - 8551
ports:
- "10710:10710" ports:
- "10710:10710/udp" - 10710:10710
environment: - 10710:10710/udp
- "GETH_DATADIR=/data" volumes:
- "GETH_SEPOLIA=true" - ${ETHEREUM_SEPOLIA_GETH_PRUNED_PEBBLE_PATH_DATA:-ethereum-sepolia-geth-pruned-pebble-path}:/root/.ethereum
- "GETH_GCMODE=full" - /slowdisk:/slowdisk
- "GETH_SYNCMODE=snap"
- "GETH_STATE_SCHEME=path" - .jwtsecret:/jwtsecret:ro
- "GETH_DB_ENGINE=pebble"
- "GETH_NAT=extip:${IP}" command:
- "GETH_PORT=19809" - --datadir=/root/.ethereum
- "GETH_WS_PORT=8545" - --port=10710
- "GETH_HTTP=true" - --bind=0.0.0.0
- "GETH_HTTP_ADDR=0.0.0.0" - --nat=extip:${IP}
- "GETH_HTTP_VHOSTS=*" - --http
- "GETH_WS=true" - --http.port=8545
- "GETH_WS_ADDR=0.0.0.0" - --http.vhosts=*
- "GETH_WS_ORIGINS=*" - --ws
- "GETH_HTTP_API=eth,net,debug,admin,web3" - --ws.port=8545
- "GETH_AUTHRPC_JWTSECRET=/jwtsecret" - --ws.origins=*
- "GETH_AUTHRPC_ADDR=0.0.0.0" - --ws.addr=0.0.0.0
- "GETH_AUTHRPC_VHOSTS=*" - --http.addr=0.0.0.0
networks: - --maxpeers=50
- chains - --http.api=eth,net,web3,debug,admin,txpool
volumes: - --ws.api=eth,net,web3,debug,admin,txpool
- "ethereum-sepolia-geth-pruned-pebble-path:/data"
- ".jwtsecret:/jwtsecret:ro" - --rpc.gascap=600000000
- --rpc.returndatalimit=10000000
- --rpc.txfeecap=0
- --db.engine=pebble
- --state.scheme=path
- --syncmode=snap
- --gcmode=full
networks:
- chains
restart: unless-stopped restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-sepolia-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/ethereum-sepolia" - 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.services.ethereum-sepolia-geth-pruned-pebble-path.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.entrypoints=websecure}
- "traefik.http.routers.ethereum-sepolia-geth-pruned-pebble-path.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: ports:
- "15710:15710" - 15710:15710
- "15710:15710/udp" - 15710:15710/udp
command: command:
[ - --sepolia
"--sepolia", - --datadir=/data
"--datadir=/data", - --jwt-secret=/jwtsecret
"--jwt-secret=/jwtsecret", - --rpc-host=0.0.0.0
"--rpc-host=0.0.0.0", - --grpc-gateway-host=0.0.0.0
"--grpc-gateway-host=0.0.0.0", - --monitoring-host=0.0.0.0
"--monitoring-host=0.0.0.0", - --p2p-tcp-port=15710
"--p2p-tcp-port=15710", - --p2p-udp-port=15710
"--p2p-udp-port=15710", - --checkpoint-sync-url=
"--checkpoint-sync-url=https://sepolia.beaconstate.info", - --execution-endpoint=http://ethereum-sepolia:8551
"--execution-endpoint=http://ethereum-sepolia:8551", - --enable-historical-state-representation=false
"--enable-historical-state-representation=false", - --beacon-db-pruning
"--beacon-db-pruning", - --accept-terms-of-use
"--accept-terms-of-use"
]
networks:
- chains
volumes:
- "ethereum-sepolia-geth-pruned-pebble-path_prysm:/data"
- ".jwtsecret:/jwtsecret:ro"
restart: unless-stopped
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: volumes:
ethereum-sepolia-geth-pruned-pebble-path: ethereum-sepolia-geth-pruned-pebble-path:
ethereum-sepolia-geth-pruned-pebble-path_prysm: ethereum-sepolia-geth-pruned-pebble-path_prysm:
x-upstreams: x-upstreams:
- id: $${ID} - chain: sepolia
chain: $${CHAIN}
labels:
provider: $${PROVIDER}
method-groups: method-groups:
enabled: enabled:
- debug - debug
- filter - filter
methods: methods:
disabled: disabled:
# not compatible with path state scheme
- name: debug_traceBlockByHash - name: debug_traceBlockByHash
enabled: enabled:
- name: txpool_content # standard geth only
connection: - name: debug_getRawBlock
generic: - name: debug_getRawTransaction
rpc: - name: debug_getRawReceipts
url: "$${RPC_URL}" - name: debug_getRawHeader
ws: - name: debug_getBadBlocks
frameSize: 20Mb # non standard geth only slightly dangerous
msgSize: 50Mb - name: debug_intermediateRoots
url: "$${WS_URL}" - 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: services:
ethereum-holesky-archive: 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 user: root
volumes: ulimits:
- "ethereum-holesky-reth-archive-trace:/root/.local/share/reth/holesky" nofile: 1048576 # Max open files (for RPC/WS connections)
- "/slowdisk:/slowdisk" memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
- ".jwtsecret:/jwtsecret:ro" 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: expose:
- 8545 - 8545
- 9001 - 8551
ports: ports:
- "10752:10752" - 10752:10752
- "10752:10752/udp" - 10752:10752/udp
restart: unless-stopped volumes:
entrypoint: ["reth", "node"] - ${ETHEREUM_HOLESKY_RETH_ARCHIVE_TRACE_DATA:-ethereum-holesky-reth-archive-trace}:/root/.local/share/reth
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [reth, node]
command: command:
- --chain=holesky - --datadir=/root/.local/share/reth
- --metrics=0.0.0.0:9001 - --port=10752
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http - --http
- --http.addr=0.0.0.0
- --http.port=8545 - --http.port=8545
- --http.vhosts=*
- --ws - --ws
- --ws.addr=0.0.0.0
- --ws.port=8545 - --ws.port=8545
- --ws.origins=* - --ws.origins=*
- --port=10752 - --ws.addr=0.0.0.0
- --discovery.port=10752 - --http.addr=0.0.0.0
- --authrpc.addr=0.0.0.0 - --maxpeers=50
- --authrpc.jwtsecret=/jwtsecret
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin - --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
- --ws.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.max-logs-per-response=1100000
- --rpc.gascap=600000000 - --rpc.gascap=600000000
stop_grace_period: 1m - --chain=holesky
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-holesky-reth-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-archive" - 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.services.ethereum-holesky-reth-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-holesky-reth-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-holesky-reth-archive-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-holesky-reth-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: networks:
- chains - 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: volumes:
- "ethereum-holesky-reth-archive-trace_prysm:/data" - .jwtsecret:/jwtsecret:ro
- ".jwtsecret:/jwtsecret:ro"
restart: unless-stopped
- ${ETHEREUM_HOLESKY_RETH_ARCHIVE_TRACE__PRYSM_DATA:-ethereum-holesky-reth-archive-trace_prysm}:/data
restart: unless-stopped
volumes: volumes:
ethereum-holesky-reth-archive-trace: ethereum-holesky-reth-archive-trace:
ethereum-holesky-reth-archive-trace_prysm: 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: services:
ethereum-mainnet-archive: 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 user: root
volumes: ulimits:
- "ethereum-mainnet-reth-archive-trace:/root/.local/share/reth/mainnet" nofile: 1048576 # Max open files (for RPC/WS connections)
- "/slowdisk:/slowdisk" memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
- ".jwtsecret:/jwtsecret:ro" 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: expose:
- 8545 - 8545
- 9001 - 8551
ports: ports:
- "10563:10563" - 10563:10563
- "10563:10563/udp" - 10563:10563/udp
restart: unless-stopped volumes:
entrypoint: ["reth", "node"] - ${ETHEREUM_MAINNET_RETH_ARCHIVE_TRACE_DATA:-ethereum-mainnet-reth-archive-trace}:/root/.local/share/reth
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [reth, node]
command: command:
- --chain=mainnet - --datadir=/root/.local/share/reth
- --metrics=0.0.0.0:9001 - --port=10563
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http - --http
- --http.addr=0.0.0.0
- --http.port=8545 - --http.port=8545
- --http.vhosts=*
- --ws - --ws
- --ws.addr=0.0.0.0
- --ws.port=8545 - --ws.port=8545
- --ws.origins=* - --ws.origins=*
- --port=10563 - --ws.addr=0.0.0.0
- --discovery.port=10563 - --http.addr=0.0.0.0
- --authrpc.addr=0.0.0.0 - --maxpeers=50
- --authrpc.jwtsecret=/jwtsecret
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin - --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
- --ws.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.max-logs-per-response=1100000
- --rpc.gascap=600000000 - --rpc.gascap=600000000
stop_grace_period: 1m - --chain=mainnet
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-mainnet-reth-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-mainnet-archive" - 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.services.ethereum-mainnet-reth-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-mainnet-reth-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-mainnet-reth-archive-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-mainnet-reth-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: networks:
- chains - 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: volumes:
- "ethereum-mainnet-reth-archive-trace_prysm:/data" - .jwtsecret:/jwtsecret:ro
- ".jwtsecret:/jwtsecret:ro"
restart: unless-stopped
- ${ETHEREUM_MAINNET_RETH_ARCHIVE_TRACE__PRYSM_DATA:-ethereum-mainnet-reth-archive-trace_prysm}:/data
restart: unless-stopped
volumes: volumes:
ethereum-mainnet-reth-archive-trace: ethereum-mainnet-reth-archive-trace:
ethereum-mainnet-reth-archive-trace_prysm: 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: services:
ethereum-sepolia-archive: 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 user: root
volumes: ulimits:
- "ethereum-sepolia-reth-archive-trace:/root/.local/share/reth/sepolia" nofile: 1048576 # Max open files (for RPC/WS connections)
- "/slowdisk:/slowdisk" memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
- ".jwtsecret:/jwtsecret:ro" 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: expose:
- 8545 - 8545
- 9001 - 8551
ports: ports:
- "10330:10330" - 10330:10330
- "10330:10330/udp" - 10330:10330/udp
restart: unless-stopped volumes:
entrypoint: ["reth", "node"] - ${ETHEREUM_SEPOLIA_RETH_ARCHIVE_TRACE_DATA:-ethereum-sepolia-reth-archive-trace}:/root/.local/share/reth
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [reth, node]
command: command:
- --chain=sepolia - --datadir=/root/.local/share/reth
- --metrics=0.0.0.0:9001 - --port=10330
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http - --http
- --http.addr=0.0.0.0
- --http.port=8545 - --http.port=8545
- --http.vhosts=*
- --ws - --ws
- --ws.addr=0.0.0.0
- --ws.port=8545 - --ws.port=8545
- --ws.origins=* - --ws.origins=*
- --port=10330 - --ws.addr=0.0.0.0
- --discovery.port=10330 - --http.addr=0.0.0.0
- --authrpc.addr=0.0.0.0 - --maxpeers=50
- --authrpc.jwtsecret=/jwtsecret
- --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin - --http.api=debug,eth,net,trace,txpool,web3,rpc,reth,admin
- --ws.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.max-logs-per-response=1100000
- --rpc.gascap=600000000 - --rpc.gascap=600000000
stop_grace_period: 1m - --chain=sepolia
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.ethereum-sepolia-reth-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-archive" - 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.services.ethereum-sepolia-reth-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.ethereum-sepolia-reth-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.ethereum-sepolia-reth-archive-trace.entrypoints=websecure}
- "traefik.http.routers.ethereum-sepolia-reth-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: networks:
- chains - 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: volumes:
- "ethereum-sepolia-reth-archive-trace_prysm:/data" - .jwtsecret:/jwtsecret:ro
- ".jwtsecret:/jwtsecret:ro"
restart: unless-stopped
- ${ETHEREUM_SEPOLIA_RETH_ARCHIVE_TRACE__PRYSM_DATA:-ethereum-sepolia-reth-archive-trace_prysm}:/data
restart: unless-stopped
volumes: volumes:
ethereum-sepolia-reth-archive-trace: ethereum-sepolia-reth-archive-trace:
ethereum-sepolia-reth-archive-trace_prysm: 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: services:
fantom-mainnet-archive: fantom-mainnet-archive:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.opera dockerfile: opera.Dockerfile
args: args:
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}" VERSION: release/txtracing/1.1.3-rc.5
REPO: "https://github.com/Fantom-foundation/go-opera.git" REPO: https://github.com/Fantom-foundation/go-opera.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-mainnet-opera-archive-trace:/datadir" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10897:10897" - 10897:10897
- "10897:10897/udp" - 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: networks:
- chains - chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g"
restart: unless-stopped restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-mainnet-opera-archive-trace-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive" - 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.services.fantom-mainnet-opera-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive-trace.entrypoints=websecure}
- "traefik.http.routers.fantom-mainnet-opera-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
fantom-mainnet-archive: fantom-mainnet-archive:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.opera dockerfile: opera.Dockerfile
args: args:
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}" VERSION: v1.1.3-rc.5
REPO: "https://github.com/Fantom-foundation/go-opera.git" REPO: https://github.com/Fantom-foundation/go-opera.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-mainnet-opera-archive:/datadir" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10723:10723" - 10897:10897
- "10723:10723/udp" - 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: networks:
- chains - chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g"
restart: unless-stopped restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-mainnet-opera-archive-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive" - 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.services.fantom-mainnet-opera-archive.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-mainnet-opera-archive.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive.entrypoints=websecure}
- "traefik.http.routers.fantom-mainnet-opera-archive.tls.certresolver=myresolver" - ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-archive.tls.certresolver=myresolver}
- "traefik.http.routers.fantom-mainnet-opera-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)" - ${NO_SSL:-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" - ${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: 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: services:
fantom-mainnet: fantom-mainnet:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.opera dockerfile: opera.Dockerfile
args: args:
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}" VERSION: release/txtracing/1.1.3-rc.5
REPO: "https://github.com/Fantom-foundation/go-opera.git" REPO: https://github.com/Fantom-foundation/go-opera.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-mainnet-opera-pruned-trace:/datadir" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10916:10916" - 10897:10897
- "10916:10916/udp" - 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: networks:
- chains - chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-109331-no-history.g"
restart: unless-stopped restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-mainnet-opera-pruned-trace-stripprefix.stripprefix.prefixes=/fantom-mainnet" - 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.services.fantom-mainnet-opera-pruned-trace.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-pruned-trace.entrypoints=websecure}
- "traefik.http.routers.fantom-mainnet-opera-pruned-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
fantom-mainnet: fantom-mainnet:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.opera dockerfile: opera.Dockerfile
args: args:
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}" VERSION: v1.1.3-rc.5
REPO: "https://github.com/Fantom-foundation/go-opera.git" REPO: https://github.com/Fantom-foundation/go-opera.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-mainnet-opera-pruned:/datadir" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10439:10439" - 10897:10897
- "10439:10439/udp" - 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: networks:
- chains - chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/mainnet/mainnet-109331-no-history.g"
restart: unless-stopped restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-mainnet-opera-pruned-stripprefix.stripprefix.prefixes=/fantom-mainnet" - 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.services.fantom-mainnet-opera-pruned.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-mainnet-opera-pruned.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-pruned.entrypoints=websecure}
- "traefik.http.routers.fantom-mainnet-opera-pruned.tls.certresolver=myresolver" - ${NO_SSL:-traefik.http.routers.fantom-mainnet-opera-pruned.tls.certresolver=myresolver}
- "traefik.http.routers.fantom-mainnet-opera-pruned.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet`)" - ${NO_SSL:-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" - ${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: 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: services:
fantom-testnet-archive: fantom-testnet-archive:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.opera dockerfile: opera.Dockerfile
args: args:
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}" VERSION: release/txtracing/1.1.3-rc.5
REPO: "https://github.com/Fantom-foundation/go-opera.git" REPO: https://github.com/Fantom-foundation/go-opera.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-testnet-opera-archive-trace:/datadir" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10196:10196" - 10196:10196
- "10196:10196/udp" - 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: networks:
- chains - chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-2458-full-mpt.g"
restart: unless-stopped restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-testnet-opera-archive-trace-stripprefix.stripprefix.prefixes=/fantom-testnet-archive" - 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.services.fantom-testnet-opera-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-testnet-opera-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-archive-trace.entrypoints=websecure}
- "traefik.http.routers.fantom-testnet-opera-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
fantom-testnet-archive: fantom-testnet-archive:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.opera dockerfile: opera.Dockerfile
args: args:
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}" VERSION: v1.1.3-rc.5
REPO: "https://github.com/Fantom-foundation/go-opera.git" REPO: https://github.com/Fantom-foundation/go-opera.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-testnet-opera-archive:/datadir" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10055:10055" - 10196:10196
- "10055:10055/udp" - 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: networks:
- chains - chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-2458-full-mpt.g"
restart: unless-stopped restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-testnet-opera-archive-stripprefix.stripprefix.prefixes=/fantom-testnet-archive" - 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.services.fantom-testnet-opera-archive.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-testnet-opera-archive.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-archive.entrypoints=websecure}
- "traefik.http.routers.fantom-testnet-opera-archive.tls.certresolver=myresolver" - ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-archive.tls.certresolver=myresolver}
- "traefik.http.routers.fantom-testnet-opera-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)" - ${NO_SSL:-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" - ${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: 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: services:
fantom-testnet: fantom-testnet:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.opera dockerfile: opera.Dockerfile
args: args:
VERSION: "${FANTOM_OPERA_VERSION:-release/txtracing/1.1.3-rc.5}" VERSION: release/txtracing/1.1.3-rc.5
REPO: "https://github.com/Fantom-foundation/go-opera.git" REPO: https://github.com/Fantom-foundation/go-opera.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-testnet-opera-pruned-trace:/datadir" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10037:10037" - 10196:10196
- "10037:10037/udp" - 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: networks:
- chains - chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-6226-no-history.g"
restart: unless-stopped restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-testnet-opera-pruned-trace-stripprefix.stripprefix.prefixes=/fantom-testnet" - 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.services.fantom-testnet-opera-pruned-trace.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-pruned-trace.entrypoints=websecure}
- "traefik.http.routers.fantom-testnet-opera-pruned-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
fantom-testnet: fantom-testnet:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.opera dockerfile: opera.Dockerfile
args: args:
VERSION: "${FANTOM_OPERA_VERSION:-v1.1.3-rc.5}" VERSION: v1.1.3-rc.5
REPO: "https://github.com/Fantom-foundation/go-opera.git" REPO: https://github.com/Fantom-foundation/go-opera.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-testnet-opera-pruned:/datadir" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10846:10846" - 10196:10196
- "10846:10846/udp" - 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: networks:
- chains - chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/opera/testnet/testnet-6226-no-history.g"
restart: unless-stopped restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-testnet-opera-pruned-stripprefix.stripprefix.prefixes=/fantom-testnet" - 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.services.fantom-testnet-opera-pruned.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-testnet-opera-pruned.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-pruned.entrypoints=websecure}
- "traefik.http.routers.fantom-testnet-opera-pruned.tls.certresolver=myresolver" - ${NO_SSL:-traefik.http.routers.fantom-testnet-opera-pruned.tls.certresolver=myresolver}
- "traefik.http.routers.fantom-testnet-opera-pruned.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet`)" - ${NO_SSL:-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" - ${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: 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: services:
fantom-mainnet-archive: fantom-mainnet-archive:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.sonic dockerfile: sonic.Dockerfile
args: args:
VERSION: "${FANTOM_SONIC_VERSION:-v1.2.1-h}" VERSION: v1.2.1-h
REPO: "https://github.com/Fantom-foundation/sonic.git" REPO: https://github.com/Fantom-foundation/sonic.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-mainnet-sonic-archive:/var/sonic" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10335:10335" - 10335:10335
- "10335:10335/udp" - 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: networks:
- chains - chains
environment:
- "IP=${IP}"
- "GENESIS=https://download.fantom.network/mainnet-latest-archive.g"
- "CACHE_GB=${FANTOM_MAINNET_SONIC_CACHE_GB:-28}"
restart: unless-stopped restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-mainnet-sonic-archive-stripprefix.stripprefix.prefixes=/fantom-mainnet-archive" - 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.services.fantom-mainnet-sonic-archive.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-mainnet-sonic-archive.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-mainnet-sonic-archive.entrypoints=websecure}
- "traefik.http.routers.fantom-mainnet-sonic-archive.tls.certresolver=myresolver" - ${NO_SSL:-traefik.http.routers.fantom-mainnet-sonic-archive.tls.certresolver=myresolver}
- "traefik.http.routers.fantom-mainnet-sonic-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-mainnet-archive`)" - ${NO_SSL:-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" - ${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: 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: services:
fantom-testnet-archive: fantom-testnet-archive:
build: build:
context: ./fantom context: ./fantom
dockerfile: Dockerfile.sonic dockerfile: sonic.Dockerfile
args: args:
VERSION: "${FANTOM_SONIC_VERSION:-v1.2.1-h}" VERSION: v1.2.1-h
REPO: "https://github.com/Fantom-foundation/sonic.git" REPO: https://github.com/Fantom-foundation/sonic.git
stop_grace_period: 3m user: root
volumes: ulimits:
- "fantom-testnet-sonic-archive:/var/sonic" 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10652:10652" - 10652:10652
- "10652:10652/udp" - 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: networks:
- chains - 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 restart: unless-stopped
command: > stop_grace_period: 5m
--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
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.fantom-testnet-sonic-archive-stripprefix.stripprefix.prefixes=/fantom-testnet-archive" - 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.services.fantom-testnet-sonic-archive.loadbalancer.server.port=8545
- "traefik.http.routers.fantom-testnet-sonic-archive.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.fantom-testnet-sonic-archive.entrypoints=websecure}
- "traefik.http.routers.fantom-testnet-sonic-archive.tls.certresolver=myresolver" - ${NO_SSL:-traefik.http.routers.fantom-testnet-sonic-archive.tls.certresolver=myresolver}
- "traefik.http.routers.fantom-testnet-sonic-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/fantom-testnet-archive`)" - ${NO_SSL:-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" - ${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: 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: services:
gnosis-chiado-archive: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10986:10986" - 10986:10986
- "10986:10986/udp" - 10986:10986/udp
- "25986:25986" - 30986:30986
- "25986:25986/udp" - 30986:30986/udp
- "30986:30986" - 35986:35986
- "30986:30986/udp" - 35986:35986/udp
- "15986:15986" - 15986:15986
- "15986:15986/udp" - 15986:15986/udp
- "20986:20986" - 25986:25986
- "20986:20986/udp" - 25986:25986/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.gnosis-chiado-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/gnosis-chiado-archive" - 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.services.gnosis-chiado-erigon3-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-archive-trace.entrypoints=websecure}
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.gnosis-chiado-erigon3-archive-trace.rule=PathPrefix(`/gnosis-chiado-archive`)}
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace.service=gnosis-chiado-erigon3-archive-trace" - 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.service=gnosis-chiado-erigon3-archive-trace-node
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.entrypoints=websecure" - traefik.http.services.gnosis-chiado-erigon3-archive-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.service=gnosis-chiado-erigon3-archive-trace-node" - ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.entrypoints=websecure}
- "traefik.http.routers.gnosis-chiado-erigon3-archive-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
gnosis-chiado-minimal: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10010:10010" - 10986:10986
- "10010:10010/udp" - 10986:10986/udp
- "25010:25010" - 30986:30986
- "25010:25010/udp" - 30986:30986/udp
- "30010:30010" - 35986:35986
- "30010:30010/udp" - 35986:35986/udp
- "15010:15010" - 15986:15986
- "15010:15010/udp" - 15986:15986/udp
- "20010:20010" - 25986:25986
- "20010:20010/udp" - 25986:25986/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.gnosis-chiado-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/gnosis-chiado-minimal" - 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.services.gnosis-chiado-erigon3-minimal-trace.loadbalancer.server.port=8545
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.entrypoints=websecure}
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.rule=PathPrefix(`/gnosis-chiado-minimal`)}
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace.service=gnosis-chiado-erigon3-minimal-trace" - 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.service=gnosis-chiado-erigon3-minimal-trace-node
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.entrypoints=websecure" - traefik.http.services.gnosis-chiado-erigon3-minimal-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.service=gnosis-chiado-erigon3-minimal-trace-node" - ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.entrypoints=websecure}
- "traefik.http.routers.gnosis-chiado-erigon3-minimal-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
gnosis-chiado: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10886:10886" - 10986:10986
- "10886:10886/udp" - 10986:10986/udp
- "25886:25886" - 30986:30986
- "25886:25886/udp" - 30986:30986/udp
- "30886:30886" - 35986:35986
- "30886:30886/udp" - 35986:35986/udp
- "15886:15886" - 15986:15986
- "15886:15886/udp" - 15986:15986/udp
- "20886:20886" - 25986:25986
- "20886:20886/udp" - 25986:25986/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.gnosis-chiado-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/gnosis-chiado" - 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.services.gnosis-chiado-erigon3-pruned-trace.loadbalancer.server.port=8545
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.entrypoints=websecure}
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.rule=PathPrefix(`/gnosis-chiado`)}
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace.service=gnosis-chiado-erigon3-pruned-trace" - 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.service=gnosis-chiado-erigon3-pruned-trace-node
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.entrypoints=websecure" - traefik.http.services.gnosis-chiado-erigon3-pruned-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.service=gnosis-chiado-erigon3-pruned-trace-node" - ${NO_SSL:-traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.entrypoints=websecure}
- "traefik.http.routers.gnosis-chiado-erigon3-pruned-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
gnosis-mainnet-archive: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10974:10974" - 10974:10974
- "10974:10974/udp" - 10974:10974/udp
- "25974:25974" - 30974:30974
- "25974:25974/udp" - 30974:30974/udp
- "30974:30974" - 35974:35974
- "30974:30974/udp" - 35974:35974/udp
- "15974:15974" - 15974:15974
- "15974:15974/udp" - 15974:15974/udp
- "20974:20974" - 25974:25974
- "20974:20974/udp" - 25974:25974/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.gnosis-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/gnosis-mainnet-archive" - 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.services.gnosis-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.entrypoints=websecure}
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.rule=PathPrefix(`/gnosis-mainnet-archive`)}
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.service=gnosis-mainnet-erigon3-archive-trace" - 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.service=gnosis-mainnet-erigon3-archive-trace-node
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.entrypoints=websecure" - traefik.http.services.gnosis-mainnet-erigon3-archive-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.service=gnosis-mainnet-erigon3-archive-trace-node" - ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.entrypoints=websecure}
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
gnosis-mainnet-minimal: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10429:10429" - 10974:10974
- "10429:10429/udp" - 10974:10974/udp
- "25429:25429" - 30974:30974
- "25429:25429/udp" - 30974:30974/udp
- "30429:30429" - 35974:35974
- "30429:30429/udp" - 35974:35974/udp
- "15429:15429" - 15974:15974
- "15429:15429/udp" - 15974:15974/udp
- "20429:20429" - 25974:25974
- "20429:20429/udp" - 25974:25974/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.gnosis-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/gnosis-mainnet-minimal" - 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.services.gnosis-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.entrypoints=websecure}
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.rule=PathPrefix(`/gnosis-mainnet-minimal`)}
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace.service=gnosis-mainnet-erigon3-minimal-trace" - 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.service=gnosis-mainnet-erigon3-minimal-trace-node
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.entrypoints=websecure" - traefik.http.services.gnosis-mainnet-erigon3-minimal-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.service=gnosis-mainnet-erigon3-minimal-trace-node" - ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.entrypoints=websecure}
- "traefik.http.routers.gnosis-mainnet-erigon3-minimal-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
gnosis-mainnet: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10147:10147" - 10974:10974
- "10147:10147/udp" - 10974:10974/udp
- "25147:25147" - 30974:30974
- "25147:25147/udp" - 30974:30974/udp
- "30147:30147" - 35974:35974
- "30147:30147/udp" - 35974:35974/udp
- "15147:15147" - 15974:15974
- "15147:15147/udp" - 15974:15974/udp
- "20147:20147" - 25974:25974
- "20147:20147/udp" - 25974:25974/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.gnosis-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/gnosis-mainnet" - 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.services.gnosis-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.entrypoints=websecure}
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.rule=PathPrefix(`/gnosis-mainnet`)}
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace.service=gnosis-mainnet-erigon3-pruned-trace" - 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.service=gnosis-mainnet-erigon3-pruned-trace-node
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.entrypoints=websecure" - traefik.http.services.gnosis-mainnet-erigon3-pruned-trace-node.loadbalancer.server.port=5555
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.service=gnosis-mainnet-erigon3-pruned-trace-node" - ${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.entrypoints=websecure}
- "traefik.http.routers.gnosis-mainnet-erigon3-pruned-trace-node.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
goat-mainnet-archive: goat-mainnet-archive:
image: ghcr.io/goatnetwork/goat-geth:v0.3.0 image: ${GOAT_GETH_IMAGE:-ghcr.io/goatnetwork/goat-geth}:${GOAT_MAINNET_GETH_VERSION:-v0.3.0}
stop_grace_period: 5m user: root
restart: unless-stopped ulimits:
ports: nofile: 1048576 # Max open files (for RPC/WS connections)
- "10891:10891" sysctls:
- "10891:10891/udp" # TCP Performance
environment: net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
- "GETH_GCMODE=archive" net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
- "GETH_SYNCMODE=full" net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
- "GETH_STATE_SCHEME=hash" net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
- "GETH_DB_ENGINE=leveldb" net.core.somaxconn: 32768 # Higher connection queue
- "GETH_NAT=extip:${IP}" # Memory/Connection Management
- "GETH_PORT=10891" net.core.netdev_max_backlog: 50000 # Increase network buffer
- "GETH_WS_PORT=8545" net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
- "GETH_HTTP=true" net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
- "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
expose: expose:
- 8545 - 8545
volumes: - 8551
- "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
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: ports:
- "15891:15891" - 10640:10640
- "15891:15891/udp" - 10640:10640/udp
entrypoint: ["goatd", "start"] volumes:
command: > - ${GOAT_MAINNET_GETH_ARCHIVE_LEVELDB_HASH_DATA:-goat-mainnet-geth-archive-leveldb-hash}:/root/.ethereum
- --chain-id goat-mainnet - /slowdisk:/slowdisk
- --goat.geth "/geth/geth.ipc"
- --p2p.external-address "${IP}:15891" - .jwtsecret:/jwtsecret:ro
- --p2p.laddr "0.0.0.0:15891"
command: --goat=mainnet
networks: networks:
- chains - 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: volumes:
goat-mainnet-geth-archive-leveldb-hash: 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: services:
goat-mainnet: goat-mainnet:
image: ghcr.io/goatnetwork/goat-geth:v0.3.0 image: ${GOAT_GETH_IMAGE:-ghcr.io/goatnetwork/goat-geth}:${GOAT_MAINNET_GETH_VERSION:-v0.3.0}
stop_grace_period: 5m user: root
restart: unless-stopped ulimits:
ports: nofile: 1048576 # Max open files (for RPC/WS connections)
- "10640:10640" sysctls:
- "10640:10640/udp" # TCP Performance
environment: net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
- "GETH_GCMODE=full" net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
- "GETH_SYNCMODE=snap" net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
- "GETH_STATE_SCHEME=path" net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
- "GETH_DB_ENGINE=pebble" net.core.somaxconn: 32768 # Higher connection queue
- "GETH_NAT=extip:${IP}" # Memory/Connection Management
- "GETH_PORT=10640" net.core.netdev_max_backlog: 50000 # Increase network buffer
- "GETH_WS_PORT=8545" net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
- "GETH_HTTP=true" net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
- "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
expose: expose:
- 8545 - 8545
volumes: - 8551
- "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
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: ports:
- "15640:15640" - 10640:10640
- "15640:15640/udp" - 10640:10640/udp
entrypoint: ["goatd", "start"] volumes:
command: > - ${GOAT_MAINNET_GETH_PRUNED_PEBBLE_PATH_DATA:-goat-mainnet-geth-pruned-pebble-path}:/root/.ethereum
- --chain-id goat-mainnet - /slowdisk:/slowdisk
- --goat.geth "/geth/geth.ipc"
- --p2p.external-address "${IP}:15640" - .jwtsecret:/jwtsecret:ro
- --p2p.laddr "0.0.0.0:15640"
command: --goat=mainnet
networks: networks:
- chains - 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: volumes:
goat-mainnet-geth-pruned-pebble-path: 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: services:
goat-testnet3-archive: goat-testnet3-archive:
image: ghcr.io/goatnetwork/goat-geth:v0.1.7 image: ${GOAT_GETH_IMAGE:-ghcr.io/goatnetwork/goat-geth}:${GOAT_TESTNET3_GETH_VERSION:-v0.1.7}
stop_grace_period: 5m user: root
restart: unless-stopped ulimits:
ports: nofile: 1048576 # Max open files (for RPC/WS connections)
- "10461:10461" sysctls:
- "10461:10461/udp" # TCP Performance
environment: net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
- "GETH_GCMODE=archive" net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
- "GETH_SYNCMODE=full" net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
- "GETH_STATE_SCHEME=hash" net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
- "GETH_DB_ENGINE=leveldb" net.core.somaxconn: 32768 # Higher connection queue
- "GETH_NAT=extip:${IP}" # Memory/Connection Management
- "GETH_PORT=10461" net.core.netdev_max_backlog: 50000 # Increase network buffer
- "GETH_WS_PORT=8545" net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
- "GETH_HTTP=true" net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
- "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
expose: expose:
- 8545 - 8545
volumes: - 8551
- "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
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: ports:
- "15461:15461" - 10272:10272
- "15461:15461/udp" - 10272:10272/udp
entrypoint: ["goatd", "start"] volumes:
command: > - ${GOAT_TESTNET3_GETH_ARCHIVE_LEVELDB_HASH_DATA:-goat-testnet3-geth-archive-leveldb-hash}:/root/.ethereum
- --chain-id goat-testnet3 - /slowdisk:/slowdisk
- --goat.geth "/geth/geth.ipc"
- --p2p.external-address "${IP}:15461" - .jwtsecret:/jwtsecret:ro
- --p2p.laddr "0.0.0.0:15461"
command: --goat=testnet3
networks: networks:
- chains - 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: volumes:
goat-testnet3-geth-archive-leveldb-hash: 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: services:
goat-testnet3: goat-testnet3:
image: ghcr.io/goatnetwork/goat-geth:v0.1.7 image: ${GOAT_GETH_IMAGE:-ghcr.io/goatnetwork/goat-geth}:${GOAT_TESTNET3_GETH_VERSION:-v0.1.7}
stop_grace_period: 5m user: root
restart: unless-stopped ulimits:
ports: nofile: 1048576 # Max open files (for RPC/WS connections)
- "10272:10272" sysctls:
- "10272:10272/udp" # TCP Performance
environment: net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
- "GETH_GCMODE=full" net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
- "GETH_SYNCMODE=snap" net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
- "GETH_STATE_SCHEME=path" net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
- "GETH_DB_ENGINE=pebble" net.core.somaxconn: 32768 # Higher connection queue
- "GETH_NAT=extip:${IP}" # Memory/Connection Management
- "GETH_PORT=10272" net.core.netdev_max_backlog: 50000 # Increase network buffer
- "GETH_WS_PORT=8545" net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
- "GETH_HTTP=true" net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
- "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
expose: expose:
- 8545 - 8545
volumes: - 8551
- "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
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: ports:
- "15272:15272" - 10272:10272
- "15272:15272/udp" - 10272:10272/udp
entrypoint: ["goatd", "start"] volumes:
command: > - ${GOAT_TESTNET3_GETH_PRUNED_PEBBLE_PATH_DATA:-goat-testnet3-geth-pruned-pebble-path}:/root/.ethereum
- --chain-id goat-testnet3 - /slowdisk:/slowdisk
- --goat.geth "/geth/geth.ipc"
- --p2p.external-address "${IP}:15272" - .jwtsecret:/jwtsecret:ro
- --p2p.laddr "0.0.0.0:15272"
command: --goat=testnet3
networks: networks:
- chains - 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: volumes:
goat-testnet3-geth-pruned-pebble-path: 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: services:
linea-mainnet-archive: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10060:10060" - 10060:10060
- "10060:10060/udp" - 10060:10060/udp
- "25060:25060" - 30060:30060
- "25060:25060/udp" - 30060:30060/udp
- "30060:30060" - 35060:35060
- "30060:30060/udp" - 35060:35060/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.linea-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/linea-mainnet-archive" - 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.services.linea-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.linea-mainnet-erigon3-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-archive-trace.entrypoints=websecure}
- "traefik.http.routers.linea-mainnet-erigon3-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
linea-mainnet-minimal: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10000:10000" - 10060:10060
- "10000:10000/udp" - 10060:10060/udp
- "25000:25000" - 30060:30060
- "25000:25000/udp" - 30060:30060/udp
- "30000:30000" - 35060:35060
- "30000:30000/udp" - 35060:35060/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.linea-mainnet-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/linea-mainnet-minimal" - 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.services.linea-mainnet-erigon3-minimal-trace.loadbalancer.server.port=8545
- "traefik.http.routers.linea-mainnet-erigon3-minimal-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-minimal-trace.entrypoints=websecure}
- "traefik.http.routers.linea-mainnet-erigon3-minimal-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
linea-mainnet: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10622:10622" - 10060:10060
- "10622:10622/udp" - 10060:10060/udp
- "25622:25622" - 30060:30060
- "25622:25622/udp" - 30060:30060/udp
- "30622:30622" - 35060:35060
- "30622:30622/udp" - 35060:35060/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.linea-mainnet-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/linea-mainnet" - 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.services.linea-mainnet-erigon3-pruned-trace.loadbalancer.server.port=8545
- "traefik.http.routers.linea-mainnet-erigon3-pruned-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.linea-mainnet-erigon3-pruned-trace.entrypoints=websecure}
- "traefik.http.routers.linea-mainnet-erigon3-pruned-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
linea-sepolia-archive: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10235:10235" - 10235:10235
- "10235:10235/udp" - 10235:10235/udp
- "25235:25235" - 30235:30235
- "25235:25235/udp" - 30235:30235/udp
- "30235:30235" - 35235:35235
- "30235:30235/udp" - 35235:35235/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.linea-sepolia-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/linea-sepolia-archive" - 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.services.linea-sepolia-erigon3-archive-trace.loadbalancer.server.port=8545
- "traefik.http.routers.linea-sepolia-erigon3-archive-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-archive-trace.entrypoints=websecure}
- "traefik.http.routers.linea-sepolia-erigon3-archive-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
linea-sepolia-minimal: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10410:10410" - 10235:10235
- "10410:10410/udp" - 10235:10235/udp
- "25410:25410" - 30235:30235
- "25410:25410/udp" - 30235:30235/udp
- "30410:30410" - 35235:35235
- "30410:30410/udp" - 35235:35235/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.linea-sepolia-erigon3-minimal-trace-stripprefix.stripprefix.prefixes=/linea-sepolia-minimal" - 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.services.linea-sepolia-erigon3-minimal-trace.loadbalancer.server.port=8545
- "traefik.http.routers.linea-sepolia-erigon3-minimal-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-minimal-trace.entrypoints=websecure}
- "traefik.http.routers.linea-sepolia-erigon3-minimal-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
linea-sepolia: 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 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: expose:
- "8545" - 8545
- 8551
ports: ports:
- "10620:10620" - 10235:10235
- "10620:10620/udp" - 10235:10235/udp
- "25620:25620" - 30235:30235
- "25620:25620/udp" - 30235:30235/udp
- "30620:30620" - 35235:35235
- "30620:30620/udp" - 35235:35235/udp
environment:
- "IP=${IP}"
volumes: 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 - /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: networks:
- chains - 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 restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.linea-sepolia-erigon3-pruned-trace-stripprefix.stripprefix.prefixes=/linea-sepolia" - 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.services.linea-sepolia-erigon3-pruned-trace.loadbalancer.server.port=8545
- "traefik.http.routers.linea-sepolia-erigon3-pruned-trace.entrypoints=websecure" - ${NO_SSL:-traefik.http.routers.linea-sepolia-erigon3-pruned-trace.entrypoints=websecure}
- "traefik.http.routers.linea-sepolia-erigon3-pruned-trace.tls.certresolver=myresolver" - ${NO_SSL:-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`)" - ${NO_SSL:-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" - ${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: 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: services:
base-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10092:10092" - 10092:10092
- "10092:10092/udp" - 10092:10092/udp
- "25092:25092" - 30092:30092
- "25092:25092/udp" - 30092:30092/udp
- "30092:30092" - 35092:35092
- "30092:30092/udp" - 35092:35092/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=base-mainnet - --datadir=/root/.local/share/erigon
- --port=10092 - --port=10092
- --p2p.allowed-ports=25092 - --bind=0.0.0.0
- --p2p.allowed-ports=30092
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- base-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.base-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-mainnet-archive" - --p2p.allowed-ports=30092
- "traefik.http.services.base-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35092
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=base-mainnet
- "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:
networks:
- chains - 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: base-mainnet-archive-node:
image: ${BASE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BASE_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15092:15092" - 15092:15092
- "15092:15092/udp" - 15092:15092/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: base-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=base-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain: base
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://base-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15092" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15092" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
base-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,148 @@
# use at your own risk
services: services:
base-sepolia-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10487:10487" - 10487:10487
- "10487:10487/udp" - 10487:10487/udp
- "25487:25487" - 30487:30487
- "25487:25487/udp" - 30487:30487/udp
- "30487:30487" - 35487:35487
- "30487:30487/udp" - 35487:35487/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=base-sepolia - --datadir=/root/.local/share/erigon
- --port=10487 - --port=10487
- --p2p.allowed-ports=25487 - --bind=0.0.0.0
- --p2p.allowed-ports=30487
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- base-sepolia-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.base-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-archive" - --p2p.allowed-ports=30487
- "traefik.http.services.base-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35487
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=base-sepolia
- "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:
networks:
- chains - 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: base-sepolia-archive-node:
image: ${BASE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BASE_SEPOLIA_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15487:15487" - 15487:15487
- "15487:15487/udp" - 15487:15487/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: base-sepolia-op-erigon-archive-trace:
- "OP_NODE_NETWORK=base-sepolia"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}" - chain: base-sepolia
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://base-sepolia-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15487" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15487" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400" - name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
base-sepolia-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,147 @@
# use at your own risk
services: services:
bob-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10071:10071" - 10071:10071
- "10071:10071/udp" - 10071:10071/udp
- "25071:25071" - 30071:30071
- "25071:25071/udp" - 30071:30071/udp
- "30071:30071" - 35071:35071
- "30071:30071/udp" - 35071:35071/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=bob-mainnet - --datadir=/root/.local/share/erigon
- --port=10071 - --port=10071
- --p2p.allowed-ports=25071 - --bind=0.0.0.0
- --p2p.allowed-ports=30071
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- bob-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.bob-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/bob-mainnet-archive" - --p2p.allowed-ports=30071
- "traefik.http.services.bob-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35071
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=bob-mainnet
- "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:
networks:
- chains - 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: bob-mainnet-archive-node:
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BOB_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15071:15071" - 15071:15071
- "15071:15071/udp" - 15071:15071/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: bob-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=bob-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain:
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://bob-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15071" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15071" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
bob-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,87 +1,147 @@
# The erigon db can be downloaded from # use at your own risk
# 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
services: services:
boba-mainnet-archive: 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 user: root
command: | ulimits:
--datadir=/db nofile: 1048576 # Max open files (for RPC/WS connections)
--port=10732 memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
--nat=stun sysctls:
--chain=boba-mainnet # TCP Performance
--http.addr=0.0.0.0 net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
--http.port=8545 net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
--http.compression=true net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
--ws.port=8545 net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
--ws.compression=true net.core.somaxconn: 32768 # Higher connection queue
--ws # Memory/Connection Management
--http.corsdomain=* net.core.netdev_max_backlog: 50000 # Increase network buffer
--http.vhosts=* net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
--authrpc.addr=0.0.0.0 net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
--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"
expose: expose:
- 8545 - 8545
- 8551 - 8551
ports:
- 10732:10732
- 10732:10732/udp
- 30732:30732
- 30732:30732/udp
- 35732:35732
- 35732:35732/udp
volumes: volumes:
- .jwtsecret:/jwtsecret
- ${BOBA_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-mainnet-op-erigon-archive-trace}:/db - ${BOBA_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-mainnet-op-erigon-archive-trace}:/db
networks: - /slowdisk:/slowdisk
- chains
- .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: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.boba-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-mainnet-archive" - 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" - 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.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.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=Host(`$DOMAIN`) && PathPrefix(`/boba-mainnet-archive`)}
- "${NO_SSL:+traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=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.http.routers.boba-mainnet-op-erigon-archive-trace.middlewares=boba-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
boba-mainnet-archive-node: boba-mainnet-archive-node:
depends_on: image: ${BOBA_NODE_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/node}:${BOBA_MAINNET_NODE_VERSION:-v1.6.18}
- 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}"
ports: ports:
- "15732:15732" - 15732:15732
- "15732:15732/udp" - 15732:15732/udp
networks: environment:
- chains - OP_NODE_NETWORK=boba-mainnet
volumes: - OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
- .jwtsecret:/jwtsecret - OP_NODE_L2_ENGINE_RPC=http://boba-mainnet-archive:8551
restart: unless-stopped - 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: 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 # use at your own risk
# 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
services: services:
boba-sepolia-archive: 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 user: root
command: | ulimits:
--datadir=/db nofile: 1048576 # Max open files (for RPC/WS connections)
--port=10249 memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
--nat=stun sysctls:
--chain=boba-sepolia # TCP Performance
--http.addr=0.0.0.0 net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
--http.port=8545 net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
--http.compression=true net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
--ws.port=8545 net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
--ws.compression=true net.core.somaxconn: 32768 # Higher connection queue
--ws # Memory/Connection Management
--http.corsdomain=* net.core.netdev_max_backlog: 50000 # Increase network buffer
--http.vhosts=* net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
--authrpc.addr=0.0.0.0 net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
--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"
expose: expose:
- 8545 - 8545
- 8551 - 8551
ports:
- 10249:10249
- 10249:10249/udp
- 30249:30249
- 30249:30249/udp
- 35249:35249
- 35249:35249/udp
volumes: volumes:
- .jwtsecret:/jwtsecret
- ${BOBA_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-sepolia-op-erigon-archive-trace}:/db - ${BOBA_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-sepolia-op-erigon-archive-trace}:/db
networks: - /slowdisk:/slowdisk
- chains
- .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: labels:
- "traefik.enable=true" - traefik.enable=true
- "traefik.http.middlewares.boba-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-sepolia-archive" - 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" - 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.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.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=Host(`$DOMAIN`) && PathPrefix(`/boba-sepolia-archive`)}
- "${NO_SSL:+traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=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.http.routers.boba-sepolia-op-erigon-archive-trace.middlewares=boba-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
boba-sepolia-archive-node: boba-sepolia-archive-node:
depends_on: image: ${BOBA_NODE_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/node}:${BOBA_SEPOLIA_NODE_VERSION:-v1.6.18}
- 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}"
ports: ports:
- "15249:15249" - 15249:15249
- "15249:15249/udp" - 15249:15249/udp
networks: environment:
- chains - OP_NODE_NETWORK=boba-sepolia
volumes: - OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- .jwtsecret:/jwtsecret - OP_NODE_L2_ENGINE_RPC=http://boba-sepolia-archive:8551
restart: unless-stopped - 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: 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: services:
hashkeychain-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10378:10378" - 10378:10378
- "10378:10378/udp" - 10378:10378/udp
- "25378:25378" - 30378:30378
- "25378:25378/udp" - 30378:30378/udp
- "30378:30378" - 35378:35378
- "30378:30378/udp" - 35378:35378/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=hashkeychain-mainnet - --datadir=/root/.local/share/erigon
- --port=10378 - --port=10378
- --p2p.allowed-ports=25378 - --bind=0.0.0.0
- --p2p.allowed-ports=30378
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- hashkeychain-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.hashkeychain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/hashkeychain-mainnet-archive" - --p2p.allowed-ports=30378
- "traefik.http.services.hashkeychain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35378
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=hashkeychain-mainnet
- "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:
networks:
- chains - 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: hashkeychain-mainnet-archive-node:
image: ${HASHKEYCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${HASHKEYCHAIN_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15378:15378" - 15378:15378
- "15378:15378/udp" - 15378:15378/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: hashkeychain-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=hashkeychain-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain: hashkey
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://hashkeychain-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15378" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15378" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
hashkeychain-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,147 @@
# use at your own risk
services: services:
ink-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10990:10990" - 10990:10990
- "10990:10990/udp" - 10990:10990/udp
- "25990:25990" - 30990:30990
- "25990:25990/udp" - 30990:30990/udp
- "30990:30990" - 35990:35990
- "30990:30990/udp" - 35990:35990/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=ink-mainnet - --datadir=/root/.local/share/erigon
- --port=10990 - --port=10990
- --p2p.allowed-ports=25990 - --bind=0.0.0.0
- --p2p.allowed-ports=30990
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- ink-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.ink-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-mainnet-archive" - --p2p.allowed-ports=30990
- "traefik.http.services.ink-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35990
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=ink-mainnet
- "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:
networks:
- chains - 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: ink-mainnet-archive-node:
image: ${INK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${INK_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15990:15990" - 15990:15990
- "15990:15990/udp" - 15990:15990/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: ink-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=ink-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain: ink
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://ink-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15990" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15990" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
ink-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,148 @@
# use at your own risk
services: services:
ink-sepolia-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10826:10826" - 10826:10826
- "10826:10826/udp" - 10826:10826/udp
- "25826:25826" - 30826:30826
- "25826:25826/udp" - 30826:30826/udp
- "30826:30826" - 35826:35826
- "30826:30826/udp" - 35826:35826/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=ink-sepolia - --datadir=/root/.local/share/erigon
- --port=10826 - --port=10826
- --p2p.allowed-ports=25826 - --bind=0.0.0.0
- --p2p.allowed-ports=30826
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- ink-sepolia-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.ink-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-sepolia-archive" - --p2p.allowed-ports=30826
- "traefik.http.services.ink-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35826
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=ink-sepolia
- "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:
networks:
- chains - 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: ink-sepolia-archive-node:
image: ${INK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${INK_SEPOLIA_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15826:15826" - 15826:15826
- "15826:15826/udp" - 15826:15826/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: ink-sepolia-op-erigon-archive-trace:
- "OP_NODE_NETWORK=ink-sepolia"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}" - chain: ink-sepolia
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://ink-sepolia-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15826" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15826" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400" - name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
ink-sepolia-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,147 @@
# use at your own risk
services: services:
lisk-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10831:10831" - 10831:10831
- "10831:10831/udp" - 10831:10831/udp
- "25831:25831" - 30831:30831
- "25831:25831/udp" - 30831:30831/udp
- "30831:30831" - 35831:35831
- "30831:30831/udp" - 35831:35831/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=lisk-mainnet - --datadir=/root/.local/share/erigon
- --port=10831 - --port=10831
- --p2p.allowed-ports=25831 - --bind=0.0.0.0
- --p2p.allowed-ports=30831
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- lisk-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.lisk-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/lisk-mainnet-archive" - --p2p.allowed-ports=30831
- "traefik.http.services.lisk-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35831
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=lisk-mainnet
- "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:
networks:
- chains - 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: lisk-mainnet-archive-node:
image: ${LISK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${LISK_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15831:15831" - 15831:15831
- "15831:15831/udp" - 15831:15831/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: lisk-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=lisk-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain:
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://lisk-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15831" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15831" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
lisk-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,147 @@
# use at your own risk
services: services:
metal-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10543:10543" - 10543:10543
- "10543:10543/udp" - 10543:10543/udp
- "25543:25543" - 30543:30543
- "25543:25543/udp" - 30543:30543/udp
- "30543:30543" - 35543:35543
- "30543:30543/udp" - 35543:35543/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=metal-mainnet - --datadir=/root/.local/share/erigon
- --port=10543 - --port=10543
- --p2p.allowed-ports=25543 - --bind=0.0.0.0
- --p2p.allowed-ports=30543
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- metal-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.metal-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/metal-mainnet-archive" - --p2p.allowed-ports=30543
- "traefik.http.services.metal-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35543
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=metal-mainnet
- "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:
networks:
- chains - 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: metal-mainnet-archive-node:
image: ${METAL_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${METAL_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15543:15543" - 15543:15543
- "15543:15543/udp" - 15543:15543/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: metal-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=metal-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain:
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://metal-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15543" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15543" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
metal-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,147 @@
# use at your own risk
services: services:
mode-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10509:10509" - 10509:10509
- "10509:10509/udp" - 10509:10509/udp
- "25509:25509" - 30509:30509
- "25509:25509/udp" - 30509:30509/udp
- "30509:30509" - 35509:35509
- "30509:30509/udp" - 35509:35509/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=mode-mainnet - --datadir=/root/.local/share/erigon
- --port=10509 - --port=10509
- --p2p.allowed-ports=25509 - --bind=0.0.0.0
- --p2p.allowed-ports=30509
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- mode-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.mode-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-mainnet-archive" - --p2p.allowed-ports=30509
- "traefik.http.services.mode-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35509
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=mode-mainnet
- "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:
networks:
- chains - 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: mode-mainnet-archive-node:
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${MODE_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15509:15509" - 15509:15509
- "15509:15509/udp" - 15509:15509/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: mode-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=mode-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain:
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://mode-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15509" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15509" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
mode-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,148 @@
# use at your own risk
services: services:
mode-sepolia-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10212:10212" - 10212:10212
- "10212:10212/udp" - 10212:10212/udp
- "25212:25212" - 30212:30212
- "25212:25212/udp" - 30212:30212/udp
- "30212:30212" - 35212:35212
- "30212:30212/udp" - 35212:35212/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=mode-sepolia - --datadir=/root/.local/share/erigon
- --port=10212 - --port=10212
- --p2p.allowed-ports=25212 - --bind=0.0.0.0
- --p2p.allowed-ports=30212
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- mode-sepolia-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.mode-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-sepolia-archive" - --p2p.allowed-ports=30212
- "traefik.http.services.mode-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35212
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=mode-sepolia
- "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:
networks:
- chains - 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: mode-sepolia-archive-node:
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${MODE_SEPOLIA_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15212:15212" - 15212:15212
- "15212:15212/udp" - 15212:15212/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: mode-sepolia-op-erigon-archive-trace:
- "OP_NODE_NETWORK=mode-sepolia"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}" - chain: mode-testnet
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://mode-sepolia-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15212" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15212" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400" - name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
mode-sepolia-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,147 @@
# use at your own risk
services: services:
op-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10509:10509" - 10509:10509
- "10509:10509/udp" - 10509:10509/udp
- "25509:25509" - 30509:30509
- "25509:25509/udp" - 30509:30509/udp
- "30509:30509" - 35509:35509
- "30509:30509/udp" - 35509:35509/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=op-mainnet - --datadir=/root/.local/share/erigon
- --port=10509 - --port=10509
- --p2p.allowed-ports=25509 - --bind=0.0.0.0
- --p2p.allowed-ports=30509
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- op-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.op-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-mainnet-archive" - --p2p.allowed-ports=30509
- "traefik.http.services.op-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35509
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=op-mainnet
- "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:
networks:
- chains - 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: op-mainnet-archive-node:
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${OP_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15509:15509" - 15509:15509
- "15509:15509/udp" - 15509:15509/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: op-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=op-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain: optimism
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://op-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15509" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15509" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
op-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,148 @@
# use at your own risk
services: services:
op-sepolia-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10373:10373" - 10373:10373
- "10373:10373/udp" - 10373:10373/udp
- "25373:25373" - 30373:30373
- "25373:25373/udp" - 30373:30373/udp
- "30373:30373" - 35373:35373
- "30373:30373/udp" - 35373:35373/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=op-sepolia - --datadir=/root/.local/share/erigon
- --port=10373 - --port=10373
- --p2p.allowed-ports=25373 - --bind=0.0.0.0
- --p2p.allowed-ports=30373
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- op-sepolia-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.op-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-sepolia-archive" - --p2p.allowed-ports=30373
- "traefik.http.services.op-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35373
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=op-sepolia
- "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:
networks:
- chains - 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: op-sepolia-archive-node:
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${OP_SEPOLIA_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15373:15373" - 15373:15373
- "15373:15373/udp" - 15373:15373/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: op-sepolia-op-erigon-archive-trace:
- "OP_NODE_NETWORK=op-sepolia"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}" - chain: optimism-sepolia
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://op-sepolia-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15373" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15373" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400" - name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
op-sepolia-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,147 @@
# use at your own risk
services: services:
snax-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10671:10671" - 10671:10671
- "10671:10671/udp" - 10671:10671/udp
- "25671:25671" - 30671:30671
- "25671:25671/udp" - 30671:30671/udp
- "30671:30671" - 35671:35671
- "30671:30671/udp" - 35671:35671/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=snax-mainnet - --datadir=/root/.local/share/erigon
- --port=10671 - --port=10671
- --p2p.allowed-ports=25671 - --bind=0.0.0.0
- --p2p.allowed-ports=30671
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- snax-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.snax-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/snax-mainnet-archive" - --p2p.allowed-ports=30671
- "traefik.http.services.snax-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35671
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=snax-mainnet
- "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:
networks:
- chains - 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: snax-mainnet-archive-node:
image: ${SNAX_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${SNAX_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15671:15671" - 15671:15671
- "15671:15671/udp" - 15671:15671/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: snax-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=snax-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain:
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://snax-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15671" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15671" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
snax-mainnet-op-erigon-archive-trace: - 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: services:
swell-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10810:10810" - 10810:10810
- "10810:10810/udp" - 10810:10810/udp
- "25810:25810" - 30810:30810
- "25810:25810/udp" - 30810:30810/udp
- "30810:30810" - 35810:35810
- "30810:30810/udp" - 35810:35810/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=swell-mainnet - --datadir=/root/.local/share/erigon
- --port=10810 - --port=10810
- --p2p.allowed-ports=25810 - --bind=0.0.0.0
- --p2p.allowed-ports=30810
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- swell-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.swell-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/swell-mainnet-archive" - --p2p.allowed-ports=30810
- "traefik.http.services.swell-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35810
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=swell-mainnet
- "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:
networks:
- chains - 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: swell-mainnet-archive-node:
image: ${SWELL_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${SWELL_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15810:15810" - 15810:15810
- "15810:15810/udp" - 15810:15810/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: swell-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=swell-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain: swell
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://swell-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15810" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15810" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
swell-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,147 @@
# use at your own risk
services: services:
unichain-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10415:10415" - 10415:10415
- "10415:10415/udp" - 10415:10415/udp
- "25415:25415" - 30415:30415
- "25415:25415/udp" - 30415:30415/udp
- "30415:30415" - 35415:35415
- "30415:30415/udp" - 35415:35415/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=unichain-mainnet - --datadir=/root/.local/share/erigon
- --port=10415 - --port=10415
- --p2p.allowed-ports=25415 - --bind=0.0.0.0
- --p2p.allowed-ports=30415
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- unichain-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.unichain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-mainnet-archive" - --p2p.allowed-ports=30415
- "traefik.http.services.unichain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35415
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=unichain-mainnet
- "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:
networks:
- chains - 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: unichain-mainnet-archive-node:
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${UNICHAIN_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15415:15415" - 15415:15415
- "15415:15415/udp" - 15415:15415/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: unichain-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=unichain-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain: unichain
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://unichain-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15415" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15415" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
unichain-mainnet-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,148 @@
# use at your own risk
services: services:
unichain-sepolia-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10196:10196" - 10196:10196
- "10196:10196/udp" - 10196:10196/udp
- "25196:25196" - 30196:30196
- "25196:25196/udp" - 30196:30196/udp
- "30196:30196" - 35196:35196
- "30196:30196/udp" - 35196:35196/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=unichain-sepolia - --datadir=/root/.local/share/erigon
- --port=10196 - --port=10196
- --p2p.allowed-ports=25196 - --bind=0.0.0.0
- --p2p.allowed-ports=30196
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- unichain-sepolia-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.unichain-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-sepolia-archive" - --p2p.allowed-ports=30196
- "traefik.http.services.unichain-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35196
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=unichain-sepolia
- "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:
networks:
- chains - 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: unichain-sepolia-archive-node:
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${UNICHAIN_SEPOLIA_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15196:15196" - 15196:15196
- "15196:15196/udp" - 15196:15196/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: unichain-sepolia-op-erigon-archive-trace:
- "OP_NODE_NETWORK=unichain-sepolia"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}" - chain: unichain-sepolia
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://unichain-sepolia-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15196" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15196" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400" - name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
unichain-sepolia-op-erigon-archive-trace: - name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,104 +1,147 @@
# use at your own risk
services: services:
worldchain-mainnet-archive: 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: expose:
- 8545 - 8545
- 8551 - 8551
ports: ports:
- "10629:10629" - 10629:10629
- "10629:10629/udp" - 10629:10629/udp
- "25629:25629" - 30629:30629
- "25629:25629/udp" - 30629:30629/udp
- "30629:30629" - 35629:35629
- "30629:30629/udp" - 35629:35629/udp
volumes:
entrypoint: ["erigon"] - ${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: command:
- --chain=worldchain-mainnet - --datadir=/root/.local/share/erigon
- --port=10629 - --port=10629
- --p2p.allowed-ports=25629 - --bind=0.0.0.0
- --p2p.allowed-ports=30629
- --nat=extip:${IP} - --nat=extip:${IP}
- --http.addr=0.0.0.0 - --http
- --http.port=8545
- --http.vhosts=* - --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 - --ws
- --ws.port=8545
- --ws.origins=*
restart: unless-stopped - --ws.addr=0.0.0.0
stop_grace_period: 3m - --http.addr=0.0.0.0
volumes: - --maxpeers=50
- worldchain-mainnet-op-erigon-archive-trace:/root/.local/share/erigon - --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- .jwtsecret:/jwtsecret:ro - --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
labels: - --rpc.gascap=6000000000
- "traefik.enable=true"
- "traefik.http.middlewares.worldchain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/worldchain-mainnet-archive" - --p2p.allowed-ports=30629
- "traefik.http.services.worldchain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - --p2p.allowed-ports=35629
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver" - --chain=worldchain-mainnet
- "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:
networks:
- chains - 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: worldchain-mainnet-archive-node:
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${WORLDCHAIN_MAINNET_NODE_VERSION:-v1.12.2}
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
ports: ports:
- "15629:15629" - 15629:15629
- "15629:15629/udp" - 15629:15629/udp
entrypoint: [ "op-node" ] environment:
restart: unless-stopped - 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: volumes:
- .jwtsecret:/jwtsecret:ro - .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s restart: unless-stopped
volumes:
environment: worldchain-mainnet-op-erigon-archive-trace:
- "OP_NODE_NETWORK=worldchain-mainnet"
- "OP_NODE_SYNCMODE=execution-layer" x-upstreams:
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}" - chain: worldchain
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" method-groups:
- "OP_NODE_L2_ENGINE_RPC=http://worldchain-mainnet-archive:8551" enabled:
- "OP_NODE_LOG_LEVEL=info" - debug
- "OP_NODE_METRICS_ADDR=0.0.0.0" - filter
- "OP_NODE_METRICS_ENABLED=true" - trace
- "OP_NODE_METRICS_PORT=7300" methods:
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0" disabled:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15629" enabled:
- "OP_NODE_P2P_LISTEN_UDP_PORT=15629" # standard geth and erigon
- "OP_NODE_RPC_ADDR=0.0.0.0" - name: debug_accountRange
- "OP_NODE_P2P_ADVERTISE_IP=${IP}" - name: debug_getModifiedAccountsByNumber
- "OP_NODE_RPC_PORT=8545" - name: debug_getModifiedAccountsByHash
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log" # non standard geth and erigon
- "OP_NODE_VERIFIER_L1_CONFS=0" - name: eth_getRawTransactionByHash
- "OP_NODE_STATIC_PEERS=" - name: eth_getRawTransactionByBlockHashAndIndex
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" # non standard erigon only
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - name: eth_getBlockReceipts
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}" - name: eth_protocolVersion
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}" - name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
networks: - name: erigon_getBlockReceiptsByBlockHash
- chains - name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
volumes: - name: erigon_forks
worldchain-mainnet-op-erigon-archive-trace: - 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