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

View File

@@ -1,104 +1,148 @@
# use at your own risk
services:
base-sepolia-archive:
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
image: ${BASE_ERIGON_IMAGE:-testinprod/erigon}:${BASE_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
user: root
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- "10487:10487"
- "10487:10487/udp"
- "25487:25487"
- "25487:25487/udp"
- "30487:30487"
- "30487:30487/udp"
entrypoint: ["erigon"]
- 10487:10487
- 10487:10487/udp
- 30487:30487
- 30487:30487/udp
- 35487:35487
- 35487:35487/udp
volumes:
- ${BASE_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-base-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --chain=base-sepolia
- --datadir=/root/.local/share/erigon
- --port=10487
- --p2p.allowed-ports=25487
- --p2p.allowed-ports=30487
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http.addr=0.0.0.0
- --http
- --http.port=8545
- --http.vhosts=*
- --http.corsdomain=*
- --authrpc.addr=0.0.0.0
- --authrpc.port=8551
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/jwtsecret
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=5000000000
- --ws.port=8545
- --ws
restart: unless-stopped
stop_grace_period: 3m
volumes:
- base-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
- .jwtsecret:/jwtsecret:ro
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.base-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-archive"
- "traefik.http.services.base-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-archive`)"
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.middlewares=base-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
networks:
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30487
- --p2p.allowed-ports=35487
- --chain=base-sepolia
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- traefik.enable=true
- traefik.http.middlewares.base-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-archive
- traefik.http.services.base-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-archive`)}
- ${NO_SSL:+traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/base-sepolia-archive`)}
- traefik.http.routers.base-sepolia-op-erigon-archive-trace.middlewares=base-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
base-sepolia-archive-node:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
image: ${BASE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BASE_SEPOLIA_NODE_VERSION:-v1.12.2}
ports:
- "15487:15487"
- "15487:15487/udp"
entrypoint: [ "op-node" ]
restart: unless-stopped
- 15487:15487
- 15487:15487/udp
environment:
- OP_NODE_NETWORK=base-sepolia
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://base-sepolia-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15487
- OP_NODE_P2P_LISTEN_UDP_PORT=15487
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=base-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://base-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15487"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15487"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=0"
- "OP_NODE_STATIC_PEERS="
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
base-sepolia-op-erigon-archive-trace:
restart: unless-stopped
volumes:
base-sepolia-op-erigon-archive-trace:
x-upstreams:
- chain: base-sepolia
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
# non standard erigon only
- name: eth_getBlockReceipts
- name: eth_protocolVersion
- name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
- name: erigon_getBlockReceiptsByBlockHash
- name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
- name: erigon_forks
- name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

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

View File

@@ -1,87 +1,147 @@
# The erigon db can be downloaded from
# https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-erigon-db-1149019.tgz
# and extracted to the DATA_DIR
# The jwt-secret.txt file should be a random string of32 characters and should be kept secret.
# The p2p-node-key.txt is the private key used for the node to identify itself.
# The discovery and peerstore directories are used to store the peerstore and discovery data.
# boba is part of the superchain registry and knows it's overrides
# use at your own risk
services:
boba-mainnet-archive:
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-erigon:${BOBAETH_ERIGON_VERSION:-v1.2.11}
image: ${BOBA_ERIGON_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/erigon}:${BOBA_MAINNET_ERIGON_VERSION:-v1.2.11}
user: root
command: |
--datadir=/db
--port=10732
--nat=stun
--chain=boba-mainnet
--http.addr=0.0.0.0
--http.port=8545
--http.compression=true
--ws.port=8545
--ws.compression=true
--ws
--http.corsdomain=*
--http.vhosts=*
--authrpc.addr=0.0.0.0
--authrpc.port=8551
--authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret
--http.api=eth,debug,net,engine,web3
--txpool.gossip.disable=true
--rollup.sequencerhttp=https://mainnet.boba.network
--db.size.limit=8TB
ports:
- "10732:10732"
- "10732:10732/udp"
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- 10732:10732
- 10732:10732/udp
- 30732:30732
- 30732:30732/udp
- 35732:35732
- 35732:35732/udp
volumes:
- .jwtsecret:/jwtsecret
- ${BOBA_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-mainnet-op-erigon-archive-trace}:/db
networks:
- chains
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --datadir=/db
- --port=10732
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http
- --http.port=8545
- --http.vhosts=*
- --ws
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30732
- --p2p.allowed-ports=35732
- --chain=boba-mainnet
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.boba-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-mainnet-archive"
- "traefik.http.services.boba-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-mainnet-archive`)}"
- "${NO_SSL:+traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/boba-mainnet-archive`)}"
- "traefik.http.routers.boba-mainnet-op-erigon-archive-trace.middlewares=boba-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
- traefik.enable=true
- traefik.http.middlewares.boba-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-mainnet-archive
- traefik.http.services.boba-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-mainnet-archive`)}
- ${NO_SSL:+traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/boba-mainnet-archive`)}
- traefik.http.routers.boba-mainnet-op-erigon-archive-trace.middlewares=boba-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
boba-mainnet-archive-node:
depends_on:
- boba-mainnet-archive
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-node:${BOBAETH_NODE_VERSION:-v1.6.16-rc.1}
command: >
op-node
--l2=http://boba-mainnet-archive:8551
--l2.jwt-secret=/jwtsecret
--network=boba-mainnet
--rpc.addr=0.0.0.0
--rpc.port=8545
environment:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15732"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
image: ${BOBA_NODE_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/node}:${BOBA_MAINNET_NODE_VERSION:-v1.6.18}
ports:
- "15732:15732"
- "15732:15732/udp"
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret
restart: unless-stopped
- 15732:15732
- 15732:15732/udp
environment:
- OP_NODE_NETWORK=boba-mainnet
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://boba-mainnet-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15732
- OP_NODE_P2P_LISTEN_UDP_PORT=15732
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
restart: unless-stopped
volumes:
boba-mainnet-op-erigon-archive-trace:
boba-mainnet-op-erigon-archive-trace:
x-upstreams:
- chain:
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
# non standard erigon only
- name: eth_getBlockReceipts
- name: eth_protocolVersion
- name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
- name: erigon_getBlockReceiptsByBlockHash
- name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
- name: erigon_forks
- name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

@@ -1,87 +1,148 @@
# The erigon db can be downloaded from
# https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-erigon-db-1149019.tgz
# and extracted to the DATA_DIR
# The jwt-secret.txt file should be a random string of32 characters and should be kept secret.
# The p2p-node-key.txt is the private key used for the node to identify itself.
# The discovery and peerstore directories are used to store the peerstore and discovery data.
# boba is part of the superchain registry and knows it's overrides
# use at your own risk
services:
boba-sepolia-archive:
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-erigon:${BOBAETH_ERIGON_VERSION:-v1.2.11}
image: ${BOBA_ERIGON_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/erigon}:${BOBA_SEPOLIA_ERIGON_VERSION:-v1.2.11}
user: root
command: |
--datadir=/db
--port=10249
--nat=stun
--chain=boba-sepolia
--http.addr=0.0.0.0
--http.port=8545
--http.compression=true
--ws.port=8545
--ws.compression=true
--ws
--http.corsdomain=*
--http.vhosts=*
--authrpc.addr=0.0.0.0
--authrpc.port=8551
--authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret
--http.api=eth,debug,net,engine,web3
--txpool.gossip.disable=true
--rollup.sequencerhttp=https://sepolia.boba.network
--db.size.limit=8TB
ports:
- "10249:10249"
- "10249:10249/udp"
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- 10249:10249
- 10249:10249/udp
- 30249:30249
- 30249:30249/udp
- 35249:35249
- 35249:35249/udp
volumes:
- .jwtsecret:/jwtsecret
- ${BOBA_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-sepolia-op-erigon-archive-trace}:/db
networks:
- chains
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --datadir=/db
- --port=10249
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http
- --http.port=8545
- --http.vhosts=*
- --ws
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30249
- --p2p.allowed-ports=35249
- --chain=boba-sepolia
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.boba-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-sepolia-archive"
- "traefik.http.services.boba-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-sepolia-archive`)}"
- "${NO_SSL:+traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/boba-sepolia-archive`)}"
- "traefik.http.routers.boba-sepolia-op-erigon-archive-trace.middlewares=boba-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
- traefik.enable=true
- traefik.http.middlewares.boba-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-sepolia-archive
- traefik.http.services.boba-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-sepolia-archive`)}
- ${NO_SSL:+traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/boba-sepolia-archive`)}
- traefik.http.routers.boba-sepolia-op-erigon-archive-trace.middlewares=boba-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
boba-sepolia-archive-node:
depends_on:
- boba-sepolia-archive
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-node:${BOBAETH_NODE_VERSION:-v1.6.16-rc.1}
command: >
op-node
--l2=http://boba-sepolia-archive:8551
--l2.jwt-secret=/jwtsecret
--network=boba-sepolia
--rpc.addr=0.0.0.0
--rpc.port=8545
environment:
- "OP_NODE_P2P_LISTEN_TCP_PORT=15249"
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
image: ${BOBA_NODE_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/node}:${BOBA_SEPOLIA_NODE_VERSION:-v1.6.18}
ports:
- "15249:15249"
- "15249:15249/udp"
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret
restart: unless-stopped
- 15249:15249
- 15249:15249/udp
environment:
- OP_NODE_NETWORK=boba-sepolia
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://boba-sepolia-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15249
- OP_NODE_P2P_LISTEN_UDP_PORT=15249
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
restart: unless-stopped
volumes:
boba-sepolia-op-erigon-archive-trace:
boba-sepolia-op-erigon-archive-trace:
x-upstreams:
- chain:
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
# non standard erigon only
- name: eth_getBlockReceipts
- name: eth_protocolVersion
- name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
- name: erigon_getBlockReceiptsByBlockHash
- name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
- name: erigon_forks
- name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

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

View File

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

View File

@@ -1,104 +1,148 @@
# use at your own risk
services:
ink-sepolia-archive:
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
image: ${INK_ERIGON_IMAGE:-testinprod/erigon}:${INK_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
user: root
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- "10826:10826"
- "10826:10826/udp"
- "25826:25826"
- "25826:25826/udp"
- "30826:30826"
- "30826:30826/udp"
entrypoint: ["erigon"]
- 10826:10826
- 10826:10826/udp
- 30826:30826
- 30826:30826/udp
- 35826:35826
- 35826:35826/udp
volumes:
- ${INK_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-ink-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --chain=ink-sepolia
- --datadir=/root/.local/share/erigon
- --port=10826
- --p2p.allowed-ports=25826
- --p2p.allowed-ports=30826
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http.addr=0.0.0.0
- --http
- --http.port=8545
- --http.vhosts=*
- --http.corsdomain=*
- --authrpc.addr=0.0.0.0
- --authrpc.port=8551
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/jwtsecret
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=5000000000
- --ws.port=8545
- --ws
restart: unless-stopped
stop_grace_period: 3m
volumes:
- ink-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
- .jwtsecret:/jwtsecret:ro
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ink-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-sepolia-archive"
- "traefik.http.services.ink-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-sepolia-archive`)"
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.middlewares=ink-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
networks:
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30826
- --p2p.allowed-ports=35826
- --chain=ink-sepolia
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- traefik.enable=true
- traefik.http.middlewares.ink-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-sepolia-archive
- traefik.http.services.ink-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.ink-sepolia-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.ink-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.ink-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-sepolia-archive`)}
- ${NO_SSL:+traefik.http.routers.ink-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/ink-sepolia-archive`)}
- traefik.http.routers.ink-sepolia-op-erigon-archive-trace.middlewares=ink-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
ink-sepolia-archive-node:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
image: ${INK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${INK_SEPOLIA_NODE_VERSION:-v1.12.2}
ports:
- "15826:15826"
- "15826:15826/udp"
entrypoint: [ "op-node" ]
restart: unless-stopped
- 15826:15826
- 15826:15826/udp
environment:
- OP_NODE_NETWORK=ink-sepolia
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://ink-sepolia-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15826
- OP_NODE_P2P_LISTEN_UDP_PORT=15826
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=ink-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://ink-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15826"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15826"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=0"
- "OP_NODE_STATIC_PEERS="
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
ink-sepolia-op-erigon-archive-trace:
restart: unless-stopped
volumes:
ink-sepolia-op-erigon-archive-trace:
x-upstreams:
- chain: ink-sepolia
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
# non standard erigon only
- name: eth_getBlockReceipts
- name: eth_protocolVersion
- name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
- name: erigon_getBlockReceiptsByBlockHash
- name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
- name: erigon_forks
- name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

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

View File

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

View File

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

View File

@@ -1,104 +1,148 @@
# use at your own risk
services:
mode-sepolia-archive:
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
image: ${MODE_ERIGON_IMAGE:-testinprod/erigon}:${MODE_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
user: root
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- "10212:10212"
- "10212:10212/udp"
- "25212:25212"
- "25212:25212/udp"
- "30212:30212"
- "30212:30212/udp"
entrypoint: ["erigon"]
- 10212:10212
- 10212:10212/udp
- 30212:30212
- 30212:30212/udp
- 35212:35212
- 35212:35212/udp
volumes:
- ${MODE_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-mode-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --chain=mode-sepolia
- --datadir=/root/.local/share/erigon
- --port=10212
- --p2p.allowed-ports=25212
- --p2p.allowed-ports=30212
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http.addr=0.0.0.0
- --http
- --http.port=8545
- --http.vhosts=*
- --http.corsdomain=*
- --authrpc.addr=0.0.0.0
- --authrpc.port=8551
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/jwtsecret
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=5000000000
- --ws.port=8545
- --ws
restart: unless-stopped
stop_grace_period: 3m
volumes:
- mode-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
- .jwtsecret:/jwtsecret:ro
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.mode-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-sepolia-archive"
- "traefik.http.services.mode-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-sepolia-archive`)"
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.middlewares=mode-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
networks:
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30212
- --p2p.allowed-ports=35212
- --chain=mode-sepolia
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- traefik.enable=true
- traefik.http.middlewares.mode-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-sepolia-archive
- traefik.http.services.mode-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.mode-sepolia-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.mode-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.mode-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-sepolia-archive`)}
- ${NO_SSL:+traefik.http.routers.mode-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/mode-sepolia-archive`)}
- traefik.http.routers.mode-sepolia-op-erigon-archive-trace.middlewares=mode-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
mode-sepolia-archive-node:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${MODE_SEPOLIA_NODE_VERSION:-v1.12.2}
ports:
- "15212:15212"
- "15212:15212/udp"
entrypoint: [ "op-node" ]
restart: unless-stopped
- 15212:15212
- 15212:15212/udp
environment:
- OP_NODE_NETWORK=mode-sepolia
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://mode-sepolia-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15212
- OP_NODE_P2P_LISTEN_UDP_PORT=15212
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=mode-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://mode-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15212"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15212"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=0"
- "OP_NODE_STATIC_PEERS="
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
mode-sepolia-op-erigon-archive-trace:
restart: unless-stopped
volumes:
mode-sepolia-op-erigon-archive-trace:
x-upstreams:
- chain: mode-testnet
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
# non standard erigon only
- name: eth_getBlockReceipts
- name: eth_protocolVersion
- name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
- name: erigon_getBlockReceiptsByBlockHash
- name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
- name: erigon_forks
- name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

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

View File

@@ -1,104 +1,148 @@
# use at your own risk
services:
op-sepolia-archive:
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
image: ${OP_ERIGON_IMAGE:-testinprod/erigon}:${OP_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
user: root
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- "10373:10373"
- "10373:10373/udp"
- "25373:25373"
- "25373:25373/udp"
- "30373:30373"
- "30373:30373/udp"
entrypoint: ["erigon"]
- 10373:10373
- 10373:10373/udp
- 30373:30373
- 30373:30373/udp
- 35373:35373
- 35373:35373/udp
volumes:
- ${OP_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-op-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --chain=op-sepolia
- --datadir=/root/.local/share/erigon
- --port=10373
- --p2p.allowed-ports=25373
- --p2p.allowed-ports=30373
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http.addr=0.0.0.0
- --http
- --http.port=8545
- --http.vhosts=*
- --http.corsdomain=*
- --authrpc.addr=0.0.0.0
- --authrpc.port=8551
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/jwtsecret
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=5000000000
- --ws.port=8545
- --ws
restart: unless-stopped
stop_grace_period: 3m
volumes:
- op-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
- .jwtsecret:/jwtsecret:ro
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.op-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-sepolia-archive"
- "traefik.http.services.op-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-sepolia-archive`)"
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.middlewares=op-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
networks:
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30373
- --p2p.allowed-ports=35373
- --chain=op-sepolia
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- traefik.enable=true
- traefik.http.middlewares.op-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-sepolia-archive
- traefik.http.services.op-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.op-sepolia-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.op-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.op-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-sepolia-archive`)}
- ${NO_SSL:+traefik.http.routers.op-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/op-sepolia-archive`)}
- traefik.http.routers.op-sepolia-op-erigon-archive-trace.middlewares=op-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
op-sepolia-archive-node:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${OP_SEPOLIA_NODE_VERSION:-v1.12.2}
ports:
- "15373:15373"
- "15373:15373/udp"
entrypoint: [ "op-node" ]
restart: unless-stopped
- 15373:15373
- 15373:15373/udp
environment:
- OP_NODE_NETWORK=op-sepolia
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://op-sepolia-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15373
- OP_NODE_P2P_LISTEN_UDP_PORT=15373
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=op-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://op-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15373"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15373"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=0"
- "OP_NODE_STATIC_PEERS="
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
op-sepolia-op-erigon-archive-trace:
restart: unless-stopped
volumes:
op-sepolia-op-erigon-archive-trace:
x-upstreams:
- chain: optimism-sepolia
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
# non standard erigon only
- name: eth_getBlockReceipts
- name: eth_protocolVersion
- name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
- name: erigon_getBlockReceiptsByBlockHash
- name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
- name: erigon_forks
- name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

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

View File

@@ -0,0 +1,148 @@
# use at your own risk
services:
soneium-minato-archive:
image: ${SONEIUM_ERIGON_IMAGE:-testinprod/erigon}:${SONEIUM_MINATO_ERIGON_VERSION:-v2.61.1-0.8.3}
user: root
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- 10314:10314
- 10314:10314/udp
- 30314:30314
- 30314:30314/udp
- 35314:35314
- 35314:35314/udp
volumes:
- ${SONEIUM_MINATO_OP_ERIGON_ARCHIVE_TRACE_DATA:-soneium-minato-op-erigon-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --datadir=/root/.local/share/erigon
- --port=10314
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http
- --http.port=8545
- --http.vhosts=*
- --ws
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30314
- --p2p.allowed-ports=35314
- --chain=soneium-minato
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- traefik.enable=true
- traefik.http.middlewares.soneium-minato-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/soneium-minato-archive
- traefik.http.services.soneium-minato-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.soneium-minato-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.soneium-minato-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.soneium-minato-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/soneium-minato-archive`)}
- ${NO_SSL:+traefik.http.routers.soneium-minato-op-erigon-archive-trace.rule=PathPrefix(`/soneium-minato-archive`)}
- traefik.http.routers.soneium-minato-op-erigon-archive-trace.middlewares=soneium-minato-op-erigon-archive-trace-stripprefix, ipwhitelist
soneium-minato-archive-node:
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${SONEIUM_MINATO_NODE_VERSION:-v1.12.2}
ports:
- 15314:15314
- 15314:15314/udp
environment:
- OP_NODE_NETWORK=soneium-minato
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://soneium-minato-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15314
- OP_NODE_P2P_LISTEN_UDP_PORT=15314
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
restart: unless-stopped
volumes:
soneium-minato-op-erigon-archive-trace:
x-upstreams:
- chain: soneium-minato
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
# non standard erigon only
- name: eth_getBlockReceipts
- name: eth_protocolVersion
- name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
- name: erigon_getBlockReceiptsByBlockHash
- name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
- name: erigon_forks
- name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

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

View File

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

View File

@@ -1,104 +1,148 @@
# use at your own risk
services:
unichain-sepolia-archive:
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
image: ${UNICHAIN_ERIGON_IMAGE:-testinprod/erigon}:${UNICHAIN_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
user: root
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- "10196:10196"
- "10196:10196/udp"
- "25196:25196"
- "25196:25196/udp"
- "30196:30196"
- "30196:30196/udp"
entrypoint: ["erigon"]
- 10196:10196
- 10196:10196/udp
- 30196:30196
- 30196:30196/udp
- 35196:35196
- 35196:35196/udp
volumes:
- ${UNICHAIN_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-unichain-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --chain=unichain-sepolia
- --datadir=/root/.local/share/erigon
- --port=10196
- --p2p.allowed-ports=25196
- --p2p.allowed-ports=30196
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http.addr=0.0.0.0
- --http
- --http.port=8545
- --http.vhosts=*
- --http.corsdomain=*
- --authrpc.addr=0.0.0.0
- --authrpc.port=8551
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/jwtsecret
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=5000000000
- --ws.port=8545
- --ws
restart: unless-stopped
stop_grace_period: 3m
volumes:
- unichain-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
- .jwtsecret:/jwtsecret:ro
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.unichain-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-sepolia-archive"
- "traefik.http.services.unichain-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-sepolia-archive`)"
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.middlewares=unichain-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
networks:
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30196
- --p2p.allowed-ports=35196
- --chain=unichain-sepolia
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- traefik.enable=true
- traefik.http.middlewares.unichain-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-sepolia-archive
- traefik.http.services.unichain-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-sepolia-archive`)}
- ${NO_SSL:+traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/unichain-sepolia-archive`)}
- traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.middlewares=unichain-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
unichain-sepolia-archive-node:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${UNICHAIN_SEPOLIA_NODE_VERSION:-v1.12.2}
ports:
- "15196:15196"
- "15196:15196/udp"
entrypoint: [ "op-node" ]
restart: unless-stopped
- 15196:15196
- 15196:15196/udp
environment:
- OP_NODE_NETWORK=unichain-sepolia
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://unichain-sepolia-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15196
- OP_NODE_P2P_LISTEN_UDP_PORT=15196
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=unichain-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://unichain-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15196"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15196"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=0"
- "OP_NODE_STATIC_PEERS="
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
unichain-sepolia-op-erigon-archive-trace:
restart: unless-stopped
volumes:
unichain-sepolia-op-erigon-archive-trace:
x-upstreams:
- chain: unichain-sepolia
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
# non standard erigon only
- name: eth_getBlockReceipts
- name: eth_protocolVersion
- name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
- name: erigon_getBlockReceiptsByBlockHash
- name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
- name: erigon_forks
- name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

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

View File

@@ -1,104 +1,148 @@
# use at your own risk
services:
worldchain-sepolia-archive:
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
image: ${WORLDCHAIN_ERIGON_IMAGE:-testinprod/erigon}:${WORLDCHAIN_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
user: root
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- "10046:10046"
- "10046:10046/udp"
- "25046:25046"
- "25046:25046/udp"
- "30046:30046"
- "30046:30046/udp"
entrypoint: ["erigon"]
- 10046:10046
- 10046:10046/udp
- 30046:30046
- 30046:30046/udp
- 35046:35046
- 35046:35046/udp
volumes:
- ${WORLDCHAIN_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-worldchain-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --chain=worldchain-sepolia
- --datadir=/root/.local/share/erigon
- --port=10046
- --p2p.allowed-ports=25046
- --p2p.allowed-ports=30046
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http.addr=0.0.0.0
- --http
- --http.port=8545
- --http.vhosts=*
- --http.corsdomain=*
- --authrpc.addr=0.0.0.0
- --authrpc.port=8551
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/jwtsecret
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=5000000000
- --ws.port=8545
- --ws
restart: unless-stopped
stop_grace_period: 3m
volumes:
- worldchain-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
- .jwtsecret:/jwtsecret:ro
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.worldchain-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/worldchain-sepolia-archive"
- "traefik.http.services.worldchain-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.worldchain-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.worldchain-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.worldchain-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-sepolia-archive`)"
- "traefik.http.routers.worldchain-sepolia-op-erigon-archive-trace.middlewares=worldchain-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
networks:
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30046
- --p2p.allowed-ports=35046
- --chain=worldchain-sepolia
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- traefik.enable=true
- traefik.http.middlewares.worldchain-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/worldchain-sepolia-archive
- traefik.http.services.worldchain-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.worldchain-sepolia-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.worldchain-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.worldchain-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-sepolia-archive`)}
- ${NO_SSL:+traefik.http.routers.worldchain-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/worldchain-sepolia-archive`)}
- traefik.http.routers.worldchain-sepolia-op-erigon-archive-trace.middlewares=worldchain-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
worldchain-sepolia-archive-node:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${WORLDCHAIN_SEPOLIA_NODE_VERSION:-v1.12.2}
ports:
- "15046:15046"
- "15046:15046/udp"
entrypoint: [ "op-node" ]
restart: unless-stopped
- 15046:15046
- 15046:15046/udp
environment:
- OP_NODE_NETWORK=worldchain-sepolia
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://worldchain-sepolia-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15046
- OP_NODE_P2P_LISTEN_UDP_PORT=15046
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=worldchain-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://worldchain-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15046"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15046"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=0"
- "OP_NODE_STATIC_PEERS="
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
worldchain-sepolia-op-erigon-archive-trace:
restart: unless-stopped
volumes:
worldchain-sepolia-op-erigon-archive-trace:
x-upstreams:
- chain: worldchain-sepolia
method-groups:
enabled:
- debug
- filter
- trace
methods:
disabled:
enabled:
# standard geth and erigon
- name: debug_accountRange
- name: debug_getModifiedAccountsByNumber
- name: debug_getModifiedAccountsByHash
# non standard geth and erigon
- name: eth_getRawTransactionByHash
- name: eth_getRawTransactionByBlockHashAndIndex
# non standard erigon only
- name: eth_getBlockReceipts
- name: eth_protocolVersion
- name: eth_callMany
- name: eth_callBundle
- name: debug_accountAt
- name: debug_traceCallMany
- name: erigon_getHeaderByHash
- name: erigon_getBlockReceiptsByBlockHash
- name: erigon_getHeaderByNumber
- name: erigon_getLogsByHash
- name: erigon_forks
- name: erigon_getBlockByTimestamp
- name: erigon_BlockNumber
- name: erigon_getLatestLogs

View File

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

View File

@@ -1,104 +1,148 @@
# use at your own risk
services:
zora-sepolia-archive:
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
image: ${ZORA_ERIGON_IMAGE:-testinprod/erigon}:${ZORA_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
user: root
ulimits:
nofile: 1048576 # Max open files (for RPC/WS connections)
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
sysctls:
# TCP Performance
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
net.core.somaxconn: 32768 # Higher connection queue
# Memory/Connection Management
net.core.netdev_max_backlog: 50000 # Increase network buffer
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
expose:
- 8545
- 8551
ports:
- "10839:10839"
- "10839:10839/udp"
- "25839:25839"
- "25839:25839/udp"
- "30839:30839"
- "30839:30839/udp"
entrypoint: ["erigon"]
- 10839:10839
- 10839:10839/udp
- 30839:30839
- 30839:30839/udp
- 35839:35839
- 35839:35839/udp
volumes:
- ${ZORA_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-zora-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret:ro
entrypoint: [erigon]
command:
- --chain=zora-sepolia
- --datadir=/root/.local/share/erigon
- --port=10839
- --p2p.allowed-ports=25839
- --p2p.allowed-ports=30839
- --bind=0.0.0.0
- --nat=extip:${IP}
- --http.addr=0.0.0.0
- --http
- --http.port=8545
- --http.vhosts=*
- --http.corsdomain=*
- --authrpc.addr=0.0.0.0
- --authrpc.port=8551
- --authrpc.vhosts=*
- --authrpc.jwtsecret=/jwtsecret
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=5000000000
- --ws.port=8545
- --ws
restart: unless-stopped
stop_grace_period: 3m
volumes:
- zora-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
- .jwtsecret:/jwtsecret:ro
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.zora-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/zora-sepolia-archive"
- "traefik.http.services.zora-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.zora-sepolia-op-erigon-archive-trace.entrypoints=websecure"
- "traefik.http.routers.zora-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.zora-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/zora-sepolia-archive`)"
- "traefik.http.routers.zora-sepolia-op-erigon-archive-trace.middlewares=zora-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
networks:
- --ws.port=8545
- --ws.origins=*
- --ws.addr=0.0.0.0
- --http.addr=0.0.0.0
- --maxpeers=50
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
- --rpc.returndata.limit=1100000
- --rpc.gascap=6000000000
- --p2p.allowed-ports=30839
- --p2p.allowed-ports=35839
- --chain=zora-sepolia
networks:
- chains
restart: unless-stopped
stop_grace_period: 5m
labels:
- traefik.enable=true
- traefik.http.middlewares.zora-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/zora-sepolia-archive
- traefik.http.services.zora-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
- ${NO_SSL:-traefik.http.routers.zora-sepolia-op-erigon-archive-trace.entrypoints=websecure}
- ${NO_SSL:-traefik.http.routers.zora-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
- ${NO_SSL:-traefik.http.routers.zora-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/zora-sepolia-archive`)}
- ${NO_SSL:+traefik.http.routers.zora-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/zora-sepolia-archive`)}
- traefik.http.routers.zora-sepolia-op-erigon-archive-trace.middlewares=zora-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
zora-sepolia-archive-node:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
expose:
- 8545
- 7300
- 6060
image: ${ZORA_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${ZORA_SEPOLIA_NODE_VERSION:-v1.12.2}
ports:
- "15839:15839"
- "15839:15839/udp"
entrypoint: [ "op-node" ]
restart: unless-stopped
- 15839:15839
- 15839:15839/udp
environment:
- OP_NODE_NETWORK=zora-sepolia
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
- OP_NODE_L2_ENGINE_RPC=http://zora-sepolia-archive:8551
- OP_NODE_P2P_LISTEN_TCP_PORT=15839
- OP_NODE_P2P_LISTEN_UDP_PORT=15839
- OP_NODE_P2P_ADVERTISE_IP=${IP}
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
- OP_NODE_SYNCMODE=execution-layer
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
- OP_NODE_LOG_LEVEL=info
- OP_NODE_METRICS_ADDR=0.0.0.0
- OP_NODE_METRICS_ENABLED=true
- OP_NODE_METRICS_PORT=7300
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
- OP_NODE_RPC_ADDR=0.0.0.0
- OP_NODE_RPC_PORT=8545
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
- OP_NODE_VERIFIER_L1_CONFS=0
entrypoint: [op-node]
networks:
- chains
volumes:
- .jwtsecret:/jwtsecret:ro
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=zora-sepolia"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://zora-sepolia-archive:8551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=15839"
- "OP_NODE_P2P_LISTEN_UDP_PORT=15839"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=0"
- "OP_NODE_STATIC_PEERS="
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains
volumes:
zora-sepolia-op-erigon-archive-trace:
restart: unless-stopped
volumes:
zora-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