some progress
This commit is contained in:
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
base-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${BASE_ERIGON_IMAGE:-testinprod/erigon}:${BASE_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10092:10092"
|
||||
- "10092:10092/udp"
|
||||
- "25092:25092"
|
||||
- "25092:25092/udp"
|
||||
- "30092:30092"
|
||||
- "30092:30092/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10092:10092
|
||||
- 10092:10092/udp
|
||||
- 30092:30092
|
||||
- 30092:30092/udp
|
||||
- 35092:35092
|
||||
- 35092:35092/udp
|
||||
volumes:
|
||||
- ${BASE_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-base-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=base-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10092
|
||||
- --p2p.allowed-ports=25092
|
||||
- --p2p.allowed-ports=30092
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- base-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.base-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-mainnet-archive"
|
||||
- "traefik.http.services.base-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-archive`)"
|
||||
- "traefik.http.routers.base-mainnet-op-erigon-archive-trace.middlewares=base-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30092
|
||||
- --p2p.allowed-ports=35092
|
||||
|
||||
- --chain=base-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.base-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-mainnet-archive
|
||||
- traefik.http.services.base-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.base-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.base-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/base-mainnet-archive`)}
|
||||
- traefik.http.routers.base-mainnet-op-erigon-archive-trace.middlewares=base-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
base-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${BASE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BASE_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15092:15092"
|
||||
- "15092:15092/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15092:15092
|
||||
- 15092:15092/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=base-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://base-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15092
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15092
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=base-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://base-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15092"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15092"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
base-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
base-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: base
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
base-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${BASE_ERIGON_IMAGE:-testinprod/erigon}:${BASE_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10487:10487"
|
||||
- "10487:10487/udp"
|
||||
- "25487:25487"
|
||||
- "25487:25487/udp"
|
||||
- "30487:30487"
|
||||
- "30487:30487/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10487:10487
|
||||
- 10487:10487/udp
|
||||
- 30487:30487
|
||||
- 30487:30487/udp
|
||||
- 35487:35487
|
||||
- 35487:35487/udp
|
||||
volumes:
|
||||
- ${BASE_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-base-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=base-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10487
|
||||
- --p2p.allowed-ports=25487
|
||||
- --p2p.allowed-ports=30487
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- base-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.base-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-archive"
|
||||
- "traefik.http.services.base-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-archive`)"
|
||||
- "traefik.http.routers.base-sepolia-op-erigon-archive-trace.middlewares=base-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30487
|
||||
- --p2p.allowed-ports=35487
|
||||
|
||||
- --chain=base-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.base-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-sepolia-archive
|
||||
- traefik.http.services.base-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.base-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/base-sepolia-archive`)}
|
||||
- traefik.http.routers.base-sepolia-op-erigon-archive-trace.middlewares=base-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
base-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${BASE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BASE_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15487:15487"
|
||||
- "15487:15487/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15487:15487
|
||||
- 15487:15487/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=base-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://base-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15487
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15487
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=base-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://base-sepolia-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15487"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15487"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
base-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
base-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: base-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
bob-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${BOB_ERIGON_IMAGE:-testinprod/erigon}:${BOB_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10071:10071"
|
||||
- "10071:10071/udp"
|
||||
- "25071:25071"
|
||||
- "25071:25071/udp"
|
||||
- "30071:30071"
|
||||
- "30071:30071/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10071:10071
|
||||
- 10071:10071/udp
|
||||
- 30071:30071
|
||||
- 30071:30071/udp
|
||||
- 35071:35071
|
||||
- 35071:35071/udp
|
||||
volumes:
|
||||
- ${BOB_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-bob-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=bob-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10071
|
||||
- --p2p.allowed-ports=25071
|
||||
- --p2p.allowed-ports=30071
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- bob-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.bob-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/bob-mainnet-archive"
|
||||
- "traefik.http.services.bob-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/bob-mainnet-archive`)"
|
||||
- "traefik.http.routers.bob-mainnet-op-erigon-archive-trace.middlewares=bob-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30071
|
||||
- --p2p.allowed-ports=35071
|
||||
|
||||
- --chain=bob-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.bob-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/bob-mainnet-archive
|
||||
- traefik.http.services.bob-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.bob-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.bob-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.bob-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/bob-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.bob-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/bob-mainnet-archive`)}
|
||||
- traefik.http.routers.bob-mainnet-op-erigon-archive-trace.middlewares=bob-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
bob-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${BOB_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${BOB_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15071:15071"
|
||||
- "15071:15071/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15071:15071
|
||||
- 15071:15071/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=bob-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://bob-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15071
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15071
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=bob-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://bob-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15071"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15071"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
bob-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
bob-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,87 +1,147 @@
|
||||
# The erigon db can be downloaded from
|
||||
# https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-erigon-db-1149019.tgz
|
||||
# and extracted to the DATA_DIR
|
||||
|
||||
# The jwt-secret.txt file should be a random string of32 characters and should be kept secret.
|
||||
|
||||
# The p2p-node-key.txt is the private key used for the node to identify itself.
|
||||
|
||||
# The discovery and peerstore directories are used to store the peerstore and discovery data.
|
||||
|
||||
# boba is part of the superchain registry and knows it's overrides
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
boba-mainnet-archive:
|
||||
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-erigon:${BOBAETH_ERIGON_VERSION:-v1.2.11}
|
||||
image: ${BOBA_ERIGON_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/erigon}:${BOBA_MAINNET_ERIGON_VERSION:-v1.2.11}
|
||||
user: root
|
||||
command: |
|
||||
--datadir=/db
|
||||
--port=10732
|
||||
--nat=stun
|
||||
--chain=boba-mainnet
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.compression=true
|
||||
--ws.port=8545
|
||||
--ws.compression=true
|
||||
--ws
|
||||
--http.corsdomain=*
|
||||
--http.vhosts=*
|
||||
--authrpc.addr=0.0.0.0
|
||||
--authrpc.port=8551
|
||||
--authrpc.vhosts=*
|
||||
--authrpc.jwtsecret=/jwtsecret
|
||||
--http.api=eth,debug,net,engine,web3
|
||||
--txpool.gossip.disable=true
|
||||
--rollup.sequencerhttp=https://mainnet.boba.network
|
||||
--db.size.limit=8TB
|
||||
ports:
|
||||
- "10732:10732"
|
||||
- "10732:10732/udp"
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10732:10732
|
||||
- 10732:10732/udp
|
||||
- 30732:30732
|
||||
- 30732:30732/udp
|
||||
- 35732:35732
|
||||
- 35732:35732/udp
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
- ${BOBA_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-mainnet-op-erigon-archive-trace}:/db
|
||||
networks:
|
||||
- chains
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/db
|
||||
- --port=10732
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30732
|
||||
- --p2p.allowed-ports=35732
|
||||
|
||||
- --chain=boba-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.boba-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-mainnet-archive"
|
||||
- "traefik.http.services.boba-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.entrypoints=websecure}"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-mainnet-archive`)}"
|
||||
- "${NO_SSL:+traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/boba-mainnet-archive`)}"
|
||||
- "traefik.http.routers.boba-mainnet-op-erigon-archive-trace.middlewares=boba-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.boba-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-mainnet-archive
|
||||
- traefik.http.services.boba-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.boba-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/boba-mainnet-archive`)}
|
||||
- traefik.http.routers.boba-mainnet-op-erigon-archive-trace.middlewares=boba-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
boba-mainnet-archive-node:
|
||||
depends_on:
|
||||
- boba-mainnet-archive
|
||||
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-node:${BOBAETH_NODE_VERSION:-v1.6.16-rc.1}
|
||||
command: >
|
||||
op-node
|
||||
--l2=http://boba-mainnet-archive:8551
|
||||
--l2.jwt-secret=/jwtsecret
|
||||
--network=boba-mainnet
|
||||
--rpc.addr=0.0.0.0
|
||||
--rpc.port=8545
|
||||
environment:
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15732"
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
image: ${BOBA_NODE_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/node}:${BOBA_MAINNET_NODE_VERSION:-v1.6.18}
|
||||
ports:
|
||||
- "15732:15732"
|
||||
- "15732:15732/udp"
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
restart: unless-stopped
|
||||
- 15732:15732
|
||||
- 15732:15732/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=boba-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://boba-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15732
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15732
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
boba-mainnet-op-erigon-archive-trace:
|
||||
boba-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,87 +1,148 @@
|
||||
# The erigon db can be downloaded from
|
||||
# https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-erigon-db-1149019.tgz
|
||||
# and extracted to the DATA_DIR
|
||||
|
||||
# The jwt-secret.txt file should be a random string of32 characters and should be kept secret.
|
||||
|
||||
# The p2p-node-key.txt is the private key used for the node to identify itself.
|
||||
|
||||
# The discovery and peerstore directories are used to store the peerstore and discovery data.
|
||||
|
||||
# boba is part of the superchain registry and knows it's overrides
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
boba-sepolia-archive:
|
||||
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-erigon:${BOBAETH_ERIGON_VERSION:-v1.2.11}
|
||||
image: ${BOBA_ERIGON_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/erigon}:${BOBA_SEPOLIA_ERIGON_VERSION:-v1.2.11}
|
||||
user: root
|
||||
command: |
|
||||
--datadir=/db
|
||||
--port=10249
|
||||
--nat=stun
|
||||
--chain=boba-sepolia
|
||||
--http.addr=0.0.0.0
|
||||
--http.port=8545
|
||||
--http.compression=true
|
||||
--ws.port=8545
|
||||
--ws.compression=true
|
||||
--ws
|
||||
--http.corsdomain=*
|
||||
--http.vhosts=*
|
||||
--authrpc.addr=0.0.0.0
|
||||
--authrpc.port=8551
|
||||
--authrpc.vhosts=*
|
||||
--authrpc.jwtsecret=/jwtsecret
|
||||
--http.api=eth,debug,net,engine,web3
|
||||
--txpool.gossip.disable=true
|
||||
--rollup.sequencerhttp=https://sepolia.boba.network
|
||||
--db.size.limit=8TB
|
||||
ports:
|
||||
- "10249:10249"
|
||||
- "10249:10249/udp"
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10249:10249
|
||||
- 10249:10249/udp
|
||||
- 30249:30249
|
||||
- 30249:30249/udp
|
||||
- 35249:35249
|
||||
- 35249:35249/udp
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
- ${BOBA_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-boba-sepolia-op-erigon-archive-trace}:/db
|
||||
networks:
|
||||
- chains
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/db
|
||||
- --port=10249
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30249
|
||||
- --p2p.allowed-ports=35249
|
||||
|
||||
- --chain=boba-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.boba-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-sepolia-archive"
|
||||
- "traefik.http.services.boba-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.entrypoints=websecure}"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}"
|
||||
- "${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-sepolia-archive`)}"
|
||||
- "${NO_SSL:+traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/boba-sepolia-archive`)}"
|
||||
- "traefik.http.routers.boba-sepolia-op-erigon-archive-trace.middlewares=boba-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.boba-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/boba-sepolia-archive
|
||||
- traefik.http.services.boba-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.boba-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/boba-sepolia-archive`)}
|
||||
- traefik.http.routers.boba-sepolia-op-erigon-archive-trace.middlewares=boba-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
boba-sepolia-archive-node:
|
||||
depends_on:
|
||||
- boba-sepolia-archive
|
||||
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-node:${BOBAETH_NODE_VERSION:-v1.6.16-rc.1}
|
||||
command: >
|
||||
op-node
|
||||
--l2=http://boba-sepolia-archive:8551
|
||||
--l2.jwt-secret=/jwtsecret
|
||||
--network=boba-sepolia
|
||||
--rpc.addr=0.0.0.0
|
||||
--rpc.port=8545
|
||||
environment:
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15249"
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
image: ${BOBA_NODE_IMAGE:-us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/node}:${BOBA_SEPOLIA_NODE_VERSION:-v1.6.18}
|
||||
ports:
|
||||
- "15249:15249"
|
||||
- "15249:15249/udp"
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret
|
||||
restart: unless-stopped
|
||||
- 15249:15249
|
||||
- 15249:15249/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=boba-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://boba-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15249
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15249
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
boba-sepolia-op-erigon-archive-trace:
|
||||
boba-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
hashkeychain-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${HASHKEYCHAIN_ERIGON_IMAGE:-testinprod/erigon}:${HASHKEYCHAIN_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10378:10378"
|
||||
- "10378:10378/udp"
|
||||
- "25378:25378"
|
||||
- "25378:25378/udp"
|
||||
- "30378:30378"
|
||||
- "30378:30378/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10378:10378
|
||||
- 10378:10378/udp
|
||||
- 30378:30378
|
||||
- 30378:30378/udp
|
||||
- 35378:35378
|
||||
- 35378:35378/udp
|
||||
volumes:
|
||||
- ${HASHKEYCHAIN_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-hashkeychain-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=hashkeychain-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10378
|
||||
- --p2p.allowed-ports=25378
|
||||
- --p2p.allowed-ports=30378
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- hashkeychain-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.hashkeychain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/hashkeychain-mainnet-archive"
|
||||
- "traefik.http.services.hashkeychain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/hashkeychain-mainnet-archive`)"
|
||||
- "traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.middlewares=hashkeychain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30378
|
||||
- --p2p.allowed-ports=35378
|
||||
|
||||
- --chain=hashkeychain-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.hashkeychain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/hashkeychain-mainnet-archive
|
||||
- traefik.http.services.hashkeychain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/hashkeychain-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/hashkeychain-mainnet-archive`)}
|
||||
- traefik.http.routers.hashkeychain-mainnet-op-erigon-archive-trace.middlewares=hashkeychain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
hashkeychain-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${HASHKEYCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${HASHKEYCHAIN_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15378:15378"
|
||||
- "15378:15378/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15378:15378
|
||||
- 15378:15378/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=hashkeychain-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://hashkeychain-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15378
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15378
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=hashkeychain-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://hashkeychain-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15378"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15378"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
hashkeychain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
hashkeychain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: hashkey
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ink-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${INK_ERIGON_IMAGE:-testinprod/erigon}:${INK_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10990:10990"
|
||||
- "10990:10990/udp"
|
||||
- "25990:25990"
|
||||
- "25990:25990/udp"
|
||||
- "30990:30990"
|
||||
- "30990:30990/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10990:10990
|
||||
- 10990:10990/udp
|
||||
- 30990:30990
|
||||
- 30990:30990/udp
|
||||
- 35990:35990
|
||||
- 35990:35990/udp
|
||||
volumes:
|
||||
- ${INK_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-ink-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=ink-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10990
|
||||
- --p2p.allowed-ports=25990
|
||||
- --p2p.allowed-ports=30990
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- ink-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ink-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-mainnet-archive"
|
||||
- "traefik.http.services.ink-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-mainnet-archive`)"
|
||||
- "traefik.http.routers.ink-mainnet-op-erigon-archive-trace.middlewares=ink-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30990
|
||||
- --p2p.allowed-ports=35990
|
||||
|
||||
- --chain=ink-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ink-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-mainnet-archive
|
||||
- traefik.http.services.ink-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ink-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ink-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ink-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ink-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/ink-mainnet-archive`)}
|
||||
- traefik.http.routers.ink-mainnet-op-erigon-archive-trace.middlewares=ink-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
ink-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${INK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${INK_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15990:15990"
|
||||
- "15990:15990/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15990:15990
|
||||
- 15990:15990/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=ink-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://ink-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15990
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15990
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=ink-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://ink-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15990"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15990"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
ink-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ink-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: ink
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
ink-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${INK_ERIGON_IMAGE:-testinprod/erigon}:${INK_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10826:10826"
|
||||
- "10826:10826/udp"
|
||||
- "25826:25826"
|
||||
- "25826:25826/udp"
|
||||
- "30826:30826"
|
||||
- "30826:30826/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10826:10826
|
||||
- 10826:10826/udp
|
||||
- 30826:30826
|
||||
- 30826:30826/udp
|
||||
- 35826:35826
|
||||
- 35826:35826/udp
|
||||
volumes:
|
||||
- ${INK_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-ink-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=ink-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10826
|
||||
- --p2p.allowed-ports=25826
|
||||
- --p2p.allowed-ports=30826
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- ink-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ink-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-sepolia-archive"
|
||||
- "traefik.http.services.ink-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-sepolia-archive`)"
|
||||
- "traefik.http.routers.ink-sepolia-op-erigon-archive-trace.middlewares=ink-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30826
|
||||
- --p2p.allowed-ports=35826
|
||||
|
||||
- --chain=ink-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.ink-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ink-sepolia-archive
|
||||
- traefik.http.services.ink-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.ink-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.ink-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.ink-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ink-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.ink-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/ink-sepolia-archive`)}
|
||||
- traefik.http.routers.ink-sepolia-op-erigon-archive-trace.middlewares=ink-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
ink-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${INK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${INK_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15826:15826"
|
||||
- "15826:15826/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15826:15826
|
||||
- 15826:15826/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=ink-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://ink-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15826
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15826
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=ink-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://ink-sepolia-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15826"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15826"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
ink-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
ink-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: ink-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
lisk-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${LISK_ERIGON_IMAGE:-testinprod/erigon}:${LISK_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10831:10831"
|
||||
- "10831:10831/udp"
|
||||
- "25831:25831"
|
||||
- "25831:25831/udp"
|
||||
- "30831:30831"
|
||||
- "30831:30831/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10831:10831
|
||||
- 10831:10831/udp
|
||||
- 30831:30831
|
||||
- 30831:30831/udp
|
||||
- 35831:35831
|
||||
- 35831:35831/udp
|
||||
volumes:
|
||||
- ${LISK_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-lisk-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=lisk-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10831
|
||||
- --p2p.allowed-ports=25831
|
||||
- --p2p.allowed-ports=30831
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- lisk-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.lisk-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/lisk-mainnet-archive"
|
||||
- "traefik.http.services.lisk-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/lisk-mainnet-archive`)"
|
||||
- "traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.middlewares=lisk-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30831
|
||||
- --p2p.allowed-ports=35831
|
||||
|
||||
- --chain=lisk-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.lisk-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/lisk-mainnet-archive
|
||||
- traefik.http.services.lisk-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/lisk-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/lisk-mainnet-archive`)}
|
||||
- traefik.http.routers.lisk-mainnet-op-erigon-archive-trace.middlewares=lisk-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
lisk-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${LISK_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${LISK_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15831:15831"
|
||||
- "15831:15831/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15831:15831
|
||||
- 15831:15831/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=lisk-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://lisk-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15831
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15831
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=lisk-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://lisk-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15831"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15831"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
lisk-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
lisk-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
metal-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${METAL_ERIGON_IMAGE:-testinprod/erigon}:${METAL_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10543:10543"
|
||||
- "10543:10543/udp"
|
||||
- "25543:25543"
|
||||
- "25543:25543/udp"
|
||||
- "30543:30543"
|
||||
- "30543:30543/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10543:10543
|
||||
- 10543:10543/udp
|
||||
- 30543:30543
|
||||
- 30543:30543/udp
|
||||
- 35543:35543
|
||||
- 35543:35543/udp
|
||||
volumes:
|
||||
- ${METAL_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-metal-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=metal-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10543
|
||||
- --p2p.allowed-ports=25543
|
||||
- --p2p.allowed-ports=30543
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- metal-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.metal-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/metal-mainnet-archive"
|
||||
- "traefik.http.services.metal-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/metal-mainnet-archive`)"
|
||||
- "traefik.http.routers.metal-mainnet-op-erigon-archive-trace.middlewares=metal-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30543
|
||||
- --p2p.allowed-ports=35543
|
||||
|
||||
- --chain=metal-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.metal-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/metal-mainnet-archive
|
||||
- traefik.http.services.metal-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.metal-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.metal-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.metal-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/metal-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.metal-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/metal-mainnet-archive`)}
|
||||
- traefik.http.routers.metal-mainnet-op-erigon-archive-trace.middlewares=metal-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
metal-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${METAL_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${METAL_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15543:15543"
|
||||
- "15543:15543/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15543:15543
|
||||
- 15543:15543/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=metal-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://metal-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15543
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15543
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=metal-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://metal-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15543"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15543"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
metal-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
metal-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
mode-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${MODE_ERIGON_IMAGE:-testinprod/erigon}:${MODE_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10509:10509"
|
||||
- "10509:10509/udp"
|
||||
- "25509:25509"
|
||||
- "25509:25509/udp"
|
||||
- "30509:30509"
|
||||
- "30509:30509/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10509:10509
|
||||
- 10509:10509/udp
|
||||
- 30509:30509
|
||||
- 30509:30509/udp
|
||||
- 35509:35509
|
||||
- 35509:35509/udp
|
||||
volumes:
|
||||
- ${MODE_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-mode-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=mode-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10509
|
||||
- --p2p.allowed-ports=25509
|
||||
- --p2p.allowed-ports=30509
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- mode-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.mode-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-mainnet-archive"
|
||||
- "traefik.http.services.mode-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-mainnet-archive`)"
|
||||
- "traefik.http.routers.mode-mainnet-op-erigon-archive-trace.middlewares=mode-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30509
|
||||
- --p2p.allowed-ports=35509
|
||||
|
||||
- --chain=mode-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.mode-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-mainnet-archive
|
||||
- traefik.http.services.mode-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.mode-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.mode-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.mode-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.mode-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/mode-mainnet-archive`)}
|
||||
- traefik.http.routers.mode-mainnet-op-erigon-archive-trace.middlewares=mode-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
mode-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${MODE_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15509:15509"
|
||||
- "15509:15509/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15509:15509
|
||||
- 15509:15509/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=mode-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://mode-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15509
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15509
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=mode-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://mode-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15509"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15509"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
mode-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
mode-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
mode-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${MODE_ERIGON_IMAGE:-testinprod/erigon}:${MODE_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10212:10212"
|
||||
- "10212:10212/udp"
|
||||
- "25212:25212"
|
||||
- "25212:25212/udp"
|
||||
- "30212:30212"
|
||||
- "30212:30212/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10212:10212
|
||||
- 10212:10212/udp
|
||||
- 30212:30212
|
||||
- 30212:30212/udp
|
||||
- 35212:35212
|
||||
- 35212:35212/udp
|
||||
volumes:
|
||||
- ${MODE_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-mode-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=mode-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10212
|
||||
- --p2p.allowed-ports=25212
|
||||
- --p2p.allowed-ports=30212
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- mode-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.mode-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-sepolia-archive"
|
||||
- "traefik.http.services.mode-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-sepolia-archive`)"
|
||||
- "traefik.http.routers.mode-sepolia-op-erigon-archive-trace.middlewares=mode-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30212
|
||||
- --p2p.allowed-ports=35212
|
||||
|
||||
- --chain=mode-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.mode-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/mode-sepolia-archive
|
||||
- traefik.http.services.mode-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.mode-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.mode-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.mode-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/mode-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.mode-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/mode-sepolia-archive`)}
|
||||
- traefik.http.routers.mode-sepolia-op-erigon-archive-trace.middlewares=mode-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
mode-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${MODE_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${MODE_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15212:15212"
|
||||
- "15212:15212/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15212:15212
|
||||
- 15212:15212/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=mode-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://mode-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15212
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15212
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=mode-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://mode-sepolia-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15212"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15212"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
mode-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
mode-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: mode-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
op-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${OP_ERIGON_IMAGE:-testinprod/erigon}:${OP_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10509:10509"
|
||||
- "10509:10509/udp"
|
||||
- "25509:25509"
|
||||
- "25509:25509/udp"
|
||||
- "30509:30509"
|
||||
- "30509:30509/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10509:10509
|
||||
- 10509:10509/udp
|
||||
- 30509:30509
|
||||
- 30509:30509/udp
|
||||
- 35509:35509
|
||||
- 35509:35509/udp
|
||||
volumes:
|
||||
- ${OP_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-op-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=op-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10509
|
||||
- --p2p.allowed-ports=25509
|
||||
- --p2p.allowed-ports=30509
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- op-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.op-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-mainnet-archive"
|
||||
- "traefik.http.services.op-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-mainnet-archive`)"
|
||||
- "traefik.http.routers.op-mainnet-op-erigon-archive-trace.middlewares=op-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30509
|
||||
- --p2p.allowed-ports=35509
|
||||
|
||||
- --chain=op-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.op-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-mainnet-archive
|
||||
- traefik.http.services.op-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.op-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.op-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.op-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.op-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/op-mainnet-archive`)}
|
||||
- traefik.http.routers.op-mainnet-op-erigon-archive-trace.middlewares=op-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
op-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${OP_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15509:15509"
|
||||
- "15509:15509/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15509:15509
|
||||
- 15509:15509/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=op-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://op-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15509
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15509
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=op-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://op-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15509"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15509"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
op-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
op-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: optimism
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
op-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${OP_ERIGON_IMAGE:-testinprod/erigon}:${OP_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10373:10373"
|
||||
- "10373:10373/udp"
|
||||
- "25373:25373"
|
||||
- "25373:25373/udp"
|
||||
- "30373:30373"
|
||||
- "30373:30373/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10373:10373
|
||||
- 10373:10373/udp
|
||||
- 30373:30373
|
||||
- 30373:30373/udp
|
||||
- 35373:35373
|
||||
- 35373:35373/udp
|
||||
volumes:
|
||||
- ${OP_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-op-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=op-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10373
|
||||
- --p2p.allowed-ports=25373
|
||||
- --p2p.allowed-ports=30373
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- op-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.op-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-sepolia-archive"
|
||||
- "traefik.http.services.op-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-sepolia-archive`)"
|
||||
- "traefik.http.routers.op-sepolia-op-erigon-archive-trace.middlewares=op-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30373
|
||||
- --p2p.allowed-ports=35373
|
||||
|
||||
- --chain=op-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.op-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/op-sepolia-archive
|
||||
- traefik.http.services.op-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.op-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.op-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.op-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/op-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.op-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/op-sepolia-archive`)}
|
||||
- traefik.http.routers.op-sepolia-op-erigon-archive-trace.middlewares=op-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
op-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${OP_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${OP_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15373:15373"
|
||||
- "15373:15373/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15373:15373
|
||||
- 15373:15373/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=op-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://op-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15373
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15373
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=op-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://op-sepolia-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15373"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15373"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
op-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
op-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: optimism-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
snax-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${SNAX_ERIGON_IMAGE:-testinprod/erigon}:${SNAX_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10671:10671"
|
||||
- "10671:10671/udp"
|
||||
- "25671:25671"
|
||||
- "25671:25671/udp"
|
||||
- "30671:30671"
|
||||
- "30671:30671/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10671:10671
|
||||
- 10671:10671/udp
|
||||
- 30671:30671
|
||||
- 30671:30671/udp
|
||||
- 35671:35671
|
||||
- 35671:35671/udp
|
||||
volumes:
|
||||
- ${SNAX_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-snax-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=snax-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10671
|
||||
- --p2p.allowed-ports=25671
|
||||
- --p2p.allowed-ports=30671
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- snax-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.snax-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/snax-mainnet-archive"
|
||||
- "traefik.http.services.snax-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/snax-mainnet-archive`)"
|
||||
- "traefik.http.routers.snax-mainnet-op-erigon-archive-trace.middlewares=snax-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30671
|
||||
- --p2p.allowed-ports=35671
|
||||
|
||||
- --chain=snax-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.snax-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/snax-mainnet-archive
|
||||
- traefik.http.services.snax-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.snax-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.snax-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.snax-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/snax-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.snax-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/snax-mainnet-archive`)}
|
||||
- traefik.http.routers.snax-mainnet-op-erigon-archive-trace.middlewares=snax-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
snax-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${SNAX_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${SNAX_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15671:15671"
|
||||
- "15671:15671/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15671:15671
|
||||
- 15671:15671/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=snax-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://snax-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15671
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15671
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=snax-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://snax-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15671"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15671"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
snax-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
snax-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain:
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
148
op/erigon/soneium-minato-op-erigon-archive-trace.yml
Normal file
148
op/erigon/soneium-minato-op-erigon-archive-trace.yml
Normal file
@@ -0,0 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
soneium-minato-archive:
|
||||
image: ${SONEIUM_ERIGON_IMAGE:-testinprod/erigon}:${SONEIUM_MINATO_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- 10314:10314
|
||||
- 10314:10314/udp
|
||||
- 30314:30314
|
||||
- 30314:30314/udp
|
||||
- 35314:35314
|
||||
- 35314:35314/udp
|
||||
volumes:
|
||||
- ${SONEIUM_MINATO_OP_ERIGON_ARCHIVE_TRACE_DATA:-soneium-minato-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10314
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30314
|
||||
- --p2p.allowed-ports=35314
|
||||
|
||||
- --chain=soneium-minato
|
||||
|
||||
networks:
|
||||
- chains
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.soneium-minato-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/soneium-minato-archive
|
||||
- traefik.http.services.soneium-minato-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.soneium-minato-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.soneium-minato-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.soneium-minato-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/soneium-minato-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.soneium-minato-op-erigon-archive-trace.rule=PathPrefix(`/soneium-minato-archive`)}
|
||||
- traefik.http.routers.soneium-minato-op-erigon-archive-trace.middlewares=soneium-minato-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
soneium-minato-archive-node:
|
||||
image: ${SONEIUM_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${SONEIUM_MINATO_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- 15314:15314
|
||||
- 15314:15314/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=soneium-minato
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://soneium-minato-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15314
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15314
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
soneium-minato-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: soneium-minato
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
swell-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${SWELL_ERIGON_IMAGE:-testinprod/erigon}:${SWELL_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10810:10810"
|
||||
- "10810:10810/udp"
|
||||
- "25810:25810"
|
||||
- "25810:25810/udp"
|
||||
- "30810:30810"
|
||||
- "30810:30810/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10810:10810
|
||||
- 10810:10810/udp
|
||||
- 30810:30810
|
||||
- 30810:30810/udp
|
||||
- 35810:35810
|
||||
- 35810:35810/udp
|
||||
volumes:
|
||||
- ${SWELL_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-swell-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=swell-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10810
|
||||
- --p2p.allowed-ports=25810
|
||||
- --p2p.allowed-ports=30810
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- swell-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.swell-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/swell-mainnet-archive"
|
||||
- "traefik.http.services.swell-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/swell-mainnet-archive`)"
|
||||
- "traefik.http.routers.swell-mainnet-op-erigon-archive-trace.middlewares=swell-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30810
|
||||
- --p2p.allowed-ports=35810
|
||||
|
||||
- --chain=swell-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.swell-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/swell-mainnet-archive
|
||||
- traefik.http.services.swell-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.swell-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.swell-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.swell-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/swell-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.swell-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/swell-mainnet-archive`)}
|
||||
- traefik.http.routers.swell-mainnet-op-erigon-archive-trace.middlewares=swell-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
swell-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${SWELL_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${SWELL_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15810:15810"
|
||||
- "15810:15810/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15810:15810
|
||||
- 15810:15810/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=swell-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://swell-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15810
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15810
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=swell-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://swell-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15810"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15810"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
swell-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
swell-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: swell
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
unichain-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${UNICHAIN_ERIGON_IMAGE:-testinprod/erigon}:${UNICHAIN_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10415:10415"
|
||||
- "10415:10415/udp"
|
||||
- "25415:25415"
|
||||
- "25415:25415/udp"
|
||||
- "30415:30415"
|
||||
- "30415:30415/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10415:10415
|
||||
- 10415:10415/udp
|
||||
- 30415:30415
|
||||
- 30415:30415/udp
|
||||
- 35415:35415
|
||||
- 35415:35415/udp
|
||||
volumes:
|
||||
- ${UNICHAIN_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-unichain-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=unichain-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10415
|
||||
- --p2p.allowed-ports=25415
|
||||
- --p2p.allowed-ports=30415
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- unichain-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.unichain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-mainnet-archive"
|
||||
- "traefik.http.services.unichain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-mainnet-archive`)"
|
||||
- "traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.middlewares=unichain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30415
|
||||
- --p2p.allowed-ports=35415
|
||||
|
||||
- --chain=unichain-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.unichain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-mainnet-archive
|
||||
- traefik.http.services.unichain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/unichain-mainnet-archive`)}
|
||||
- traefik.http.routers.unichain-mainnet-op-erigon-archive-trace.middlewares=unichain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
unichain-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${UNICHAIN_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15415:15415"
|
||||
- "15415:15415/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15415:15415
|
||||
- 15415:15415/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=unichain-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://unichain-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15415
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15415
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=unichain-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://unichain-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15415"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15415"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
unichain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
unichain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: unichain
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,148 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
unichain-sepolia-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${UNICHAIN_ERIGON_IMAGE:-testinprod/erigon}:${UNICHAIN_SEPOLIA_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10196:10196"
|
||||
- "10196:10196/udp"
|
||||
- "25196:25196"
|
||||
- "25196:25196/udp"
|
||||
- "30196:30196"
|
||||
- "30196:30196/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10196:10196
|
||||
- 10196:10196/udp
|
||||
- 30196:30196
|
||||
- 30196:30196/udp
|
||||
- 35196:35196
|
||||
- 35196:35196/udp
|
||||
volumes:
|
||||
- ${UNICHAIN_SEPOLIA_OP_ERIGON_ARCHIVE_TRACE_DATA:-unichain-sepolia-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=unichain-sepolia
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10196
|
||||
- --p2p.allowed-ports=25196
|
||||
- --p2p.allowed-ports=30196
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- unichain-sepolia-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.unichain-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-sepolia-archive"
|
||||
- "traefik.http.services.unichain-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-sepolia-archive`)"
|
||||
- "traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.middlewares=unichain-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30196
|
||||
- --p2p.allowed-ports=35196
|
||||
|
||||
- --chain=unichain-sepolia
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.unichain-sepolia-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/unichain-sepolia-archive
|
||||
- traefik.http.services.unichain-sepolia-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/unichain-sepolia-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.rule=PathPrefix(`/unichain-sepolia-archive`)}
|
||||
- traefik.http.routers.unichain-sepolia-op-erigon-archive-trace.middlewares=unichain-sepolia-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
unichain-sepolia-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${UNICHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${UNICHAIN_SEPOLIA_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15196:15196"
|
||||
- "15196:15196/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15196:15196
|
||||
- 15196:15196/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=unichain-sepolia
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://unichain-sepolia-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15196
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15196
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}
|
||||
- OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=unichain-sepolia"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_SEPOLIA_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://unichain-sepolia-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15196"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15196"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_SEPOLIA_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_SEPOLIA_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_SEPOLIA_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_SEPOLIA_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
unichain-sepolia-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
unichain-sepolia-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: unichain-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -1,104 +1,147 @@
|
||||
# use at your own risk
|
||||
|
||||
services:
|
||||
worldchain-mainnet-archive:
|
||||
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
image: ${WORLDCHAIN_ERIGON_IMAGE:-testinprod/erigon}:${WORLDCHAIN_MAINNET_ERIGON_VERSION:-v2.61.1-0.8.3}
|
||||
user: root
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
expose:
|
||||
- 8545
|
||||
- 8551
|
||||
|
||||
ports:
|
||||
- "10629:10629"
|
||||
- "10629:10629/udp"
|
||||
- "25629:25629"
|
||||
- "25629:25629/udp"
|
||||
- "30629:30629"
|
||||
- "30629:30629/udp"
|
||||
|
||||
entrypoint: ["erigon"]
|
||||
- 10629:10629
|
||||
- 10629:10629/udp
|
||||
- 30629:30629
|
||||
- 30629:30629/udp
|
||||
- 35629:35629
|
||||
- 35629:35629/udp
|
||||
volumes:
|
||||
- ${WORLDCHAIN_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-worldchain-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=worldchain-mainnet
|
||||
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --port=10629
|
||||
- --p2p.allowed-ports=25629
|
||||
- --p2p.allowed-ports=30629
|
||||
- --bind=0.0.0.0
|
||||
- --nat=extip:${IP}
|
||||
- --http.addr=0.0.0.0
|
||||
- --http
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --http.corsdomain=*
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.port=8551
|
||||
- --authrpc.vhosts=*
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=5000000000
|
||||
- --ws.port=8545
|
||||
- --ws
|
||||
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 3m
|
||||
volumes:
|
||||
- worldchain-mainnet-op-erigon-archive-trace:/root/.local/share/erigon
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.worldchain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/worldchain-mainnet-archive"
|
||||
- "traefik.http.services.worldchain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.entrypoints=websecure"
|
||||
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-mainnet-archive`)"
|
||||
- "traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.middlewares=worldchain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist"
|
||||
networks:
|
||||
- --ws.port=8545
|
||||
- --ws.origins=*
|
||||
- --ws.addr=0.0.0.0
|
||||
- --http.addr=0.0.0.0
|
||||
- --maxpeers=50
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
- --ws.api=eth,erigon,web3,net,debug,trace,txpool,admin
|
||||
|
||||
- --rpc.returndata.limit=1100000
|
||||
- --rpc.gascap=6000000000
|
||||
|
||||
- --p2p.allowed-ports=30629
|
||||
- --p2p.allowed-ports=35629
|
||||
|
||||
- --chain=worldchain-mainnet
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.worldchain-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/worldchain-mainnet-archive
|
||||
- traefik.http.services.worldchain-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/worldchain-mainnet-archive`)}
|
||||
- ${NO_SSL:+traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.rule=PathPrefix(`/worldchain-mainnet-archive`)}
|
||||
- traefik.http.routers.worldchain-mainnet-op-erigon-archive-trace.middlewares=worldchain-mainnet-op-erigon-archive-trace-stripprefix, ipwhitelist
|
||||
|
||||
worldchain-mainnet-archive-node:
|
||||
|
||||
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.12.2
|
||||
|
||||
expose:
|
||||
- 8545
|
||||
- 7300
|
||||
- 6060
|
||||
image: ${WORLDCHAIN_NODE_IMAGE:-us-docker.pkg.dev/oplabs-tools-artifacts/images/node}:${WORLDCHAIN_MAINNET_NODE_VERSION:-v1.12.2}
|
||||
ports:
|
||||
- "15629:15629"
|
||||
- "15629:15629/udp"
|
||||
entrypoint: [ "op-node" ]
|
||||
restart: unless-stopped
|
||||
- 15629:15629
|
||||
- 15629:15629/udp
|
||||
environment:
|
||||
- OP_NODE_NETWORK=worldchain-mainnet
|
||||
- OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- OP_NODE_L2_ENGINE_RPC=http://worldchain-mainnet-archive:8551
|
||||
- OP_NODE_P2P_LISTEN_TCP_PORT=15629
|
||||
- OP_NODE_P2P_LISTEN_UDP_PORT=15629
|
||||
- OP_NODE_P2P_ADVERTISE_IP=${IP}
|
||||
- OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}
|
||||
- OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}
|
||||
- OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}
|
||||
- OP_NODE_SYNCMODE=execution-layer
|
||||
- OP_NODE_L2_ENGINE_AUTH=/jwtsecret
|
||||
- OP_NODE_LOG_LEVEL=info
|
||||
- OP_NODE_METRICS_ADDR=0.0.0.0
|
||||
- OP_NODE_METRICS_ENABLED=true
|
||||
- OP_NODE_METRICS_PORT=7300
|
||||
- OP_NODE_P2P_LISTEN_IP=0.0.0.0
|
||||
- OP_NODE_RPC_ADDR=0.0.0.0
|
||||
- OP_NODE_RPC_PORT=8545
|
||||
- OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
|
||||
- OP_NODE_VERIFIER_L1_CONFS=0
|
||||
entrypoint: [op-node]
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
|
||||
stop_grace_period: 30s
|
||||
|
||||
environment:
|
||||
- "OP_NODE_NETWORK=worldchain-mainnet"
|
||||
- "OP_NODE_SYNCMODE=execution-layer"
|
||||
- "OP_NODE_L1_ETH_RPC=${ETHEREUM_MAINNET_EXECUTION_RPC}"
|
||||
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
|
||||
- "OP_NODE_L2_ENGINE_RPC=http://worldchain-mainnet-archive:8551"
|
||||
- "OP_NODE_LOG_LEVEL=info"
|
||||
- "OP_NODE_METRICS_ADDR=0.0.0.0"
|
||||
- "OP_NODE_METRICS_ENABLED=true"
|
||||
- "OP_NODE_METRICS_PORT=7300"
|
||||
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
|
||||
- "OP_NODE_P2P_LISTEN_TCP_PORT=15629"
|
||||
- "OP_NODE_P2P_LISTEN_UDP_PORT=15629"
|
||||
- "OP_NODE_RPC_ADDR=0.0.0.0"
|
||||
- "OP_NODE_P2P_ADVERTISE_IP=${IP}"
|
||||
- "OP_NODE_RPC_PORT=8545"
|
||||
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
|
||||
- "OP_NODE_VERIFIER_L1_CONFS=0"
|
||||
- "OP_NODE_STATIC_PEERS="
|
||||
- "OP_NODE_L1_RPC_KIND=${ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
|
||||
- "OP_NODE_L1_TRUST_RPC=${ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
|
||||
- "OP_NODE_L1_BEACON=${ETHEREUM_MAINNET_BEACON_REST}"
|
||||
- "OP_NODE_L1_BEACON_ARCHIVER=${ETHEREUM_MAINNET_BEACON_ARCHIVER}"
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
- chains
|
||||
|
||||
volumes:
|
||||
worldchain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
worldchain-mainnet-op-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- chain: worldchain
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user