homecoming

This commit is contained in:
root
2025-03-18 07:18:19 +02:00
parent 33975e7a6e
commit 2eaa8f99e4
41 changed files with 988 additions and 474 deletions

View File

@@ -1,45 +0,0 @@
version: '3.1'
services:
arbitrum-classic:
image: 'offchainlabs/arb-node:v1.4.5-e97c1a4'
restart: always
stop_grace_period: 30s
user: root
volumes:
- ${ARBITRUM_CLASSIC_GETH_ARCHIVE_TRACE_DATA:-arbitrum-classic-geth-archive-trace}:/root/.arbitrum/mainnet
- ./arbitrum/classic-entrypoint.sh:/entrypoint.sh
expose:
- 8547
- 8548
entrypoint: ["/bin/bash", "/entrypoint.sh"]
command: >
--l1.url=http://eth.drpc.org
--core.checkpoint-gas-frequency=156250000
--node.rpc.enable-l1-calls
--node.cache.allow-slow-lookup
--node.rpc.tracing.enable
--node.rpc.addr=0.0.0.0
--node.rpc.tracing.namespace=trace
--node.chain-id=42161
--metrics
--metrics-server.addr=0.0.0.0
--metrics-server.port=7070
--l2.disable-upstream
--persistent.chain=/mnt/data/classic/datadir/
--persistent.global-config=/mnt/data/classic/
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.arbitrum-classic-geth-archive-trace-stripprefix.stripprefix.prefixes=/arbitrum-classic"
- "traefik.http.services.arbitrum-classic-geth-archive-trace.loadbalancer.server.port=8547"
- "${NO_SSL:-traefik.http.routers.arbitrum-classic-geth-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.arbitrum-classic-geth-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.arbitrum-classic-geth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-classic`)}"
- "${NO_SSL:+traefik.http.routers.arbitrum-classic-geth-archive-trace.rule=PathPrefix(`/arbitrum-classic`)}"
- "traefik.http.routers.arbitrum-classic-geth-archive-trace.middlewares=arbitrum-classic-geth-archive-trace-stripprefix, ipwhitelist"
networks:
- chains
volumes:
arbitrum-classic-geth-archive-trace:

View File

@@ -0,0 +1,45 @@
services:
arbitrum-classic:
image: 'offchainlabs/arb-node:v1.4.5-e97c1a4'
stop_grace_period: 30s
user: root
volumes:
- ${ARBITRUM_ONE_MAINNET_ARBNODE_ARCHIVE_TRACE_DATA:-arbitrum-one-mainnet-arbnode-archive-trace}:/data
- ./arbitrum/classic-entrypoint.sh:/entrypoint.sh
expose:
- 8547
- 8548
entrypoint: ["/bin/bash", "/entrypoint.sh"]
command: >
--l1.url=http://eth.drpc.org
--core.checkpoint-gas-frequency=156250000
--node.rpc.enable-l1-calls
--node.cache.allow-slow-lookup
--node.rpc.tracing.enable
--node.rpc.addr=0.0.0.0
--node.rpc.port=8547
--node.rpc.tracing.namespace=trace
--node.chain-id=42161
--node.ws.addr=0.0.0.0
--node.ws.port=8548
--metrics
--metrics-server.addr=0.0.0.0
--metrics-server.port=7070
--l2.disable-upstream
--persistent.chain=/data/datadir/
--persistent.global-config=/data/
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.arbitrum-one-mainnet-arbnode-archive-trace-stripprefix.stripprefix.prefixes=/arbitrum-classic"
- "traefik.http.services.arbitrum-one-mainnet-arbnode-archive-trace.loadbalancer.server.port=8547"
- "${NO_SSL:-traefik.http.routers.arbitrum-one-mainnet-arbnode-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.arbitrum-one-mainnet-arbnode-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.arbitrum-one-mainnet-arbnode-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-classic`)}"
- "${NO_SSL:+traefik.http.routers.arbitrum-one-mainnet-arbnode-archive-trace.rule=PathPrefix(`/arbitrum-classic`)}"
- "traefik.http.routers.arbitrum-one-mainnet-arbnode-archive-trace.middlewares=arbitrum-one-mainnet-arbnode-archive-trace-stripprefix, ipwhitelist"
networks:
- chains
volumes:
arbitrum-one-mainnet-arbnode-archive-trace:

View File

@@ -4,19 +4,18 @@ services:
stop_grace_period: 3m stop_grace_period: 3m
user: root user: root
volumes: volumes:
- '${ARBITRUM_ONE_NITRO_ARCHIVE_DATA:-arbitrum-one-nitro-archive:/arbitrum-node' - '${ARBITRUM_ONE_NITRO_ARCHIVE_DATA:-arbitrum-one-nitro-archive}:/arbitrum-node'
- './tmp/arbitrum-archive:/tmp' # only used to initialize from scratch and the download is HUGE - './tmp/arbitrum-archive:/tmp' # only used to initialize from scratch and the download is HUGE
expose: expose:
- 8547 - 8547
command: > command: >
--init.latest=archive --init.latest=archive
--execution.caching.archive
--chain.name=arb1 --chain.name=arb1
#--execution.caching.state-scheme=hash --persistent.chain=/arbitrum-node/datadir
#--persistent.db-engine=pebble
--persistent.chain=/arbitrum-node/datadir/
--persistent.global-config=/arbitrum-node/ --persistent.global-config=/arbitrum-node/
--parent-chain.connection.url=${ARBITRUM_L1_ETHEREUM_ONE_EXECUTION_RPC} --parent-chain.connection.url=${ARBITRUM_L1_ETHEREUM_MAINNET_EXECUTION_RPC}
--parent-chain.blob-client.beacon-url=${ARBITRUM_L1_ETHEREUM_ONE_BEACON_REST} --parent-chain.blob-client.beacon-url=${ARBITRUM_L1_ETHEREUM_MAINNET_BEACON_REST}
--chain.id=42161 --chain.id=42161
--http.api=net,web3,eth,debug,arb --http.api=net,web3,eth,debug,arb
--http.corsdomain=* --http.corsdomain=*
@@ -32,8 +31,7 @@ services:
--http.server-timeouts.write-timeout=60s --http.server-timeouts.write-timeout=60s
--rpc.batch-request-limit=0 --rpc.batch-request-limit=0
--rpc.max-batch-response-size=0 --rpc.max-batch-response-size=0
--execution.rpc.classic-redirect=${ARBITRUM_CLASSIC_RPC_URL} --execution.rpc.classic-redirect=${ARBITRUM_ONE_CLASSIC_RPC}
#--validation.wasm.allowed-wasm-module-roots=0x260f5fa5c3176a856893642e149cf128b5a8de9f828afec8d11184415dd8dc69
restart: unless-stopped restart: unless-stopped
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"

View File

@@ -1,13 +1,13 @@
#!/bin/bash #!/bin/bash
if [ -f /root/.arbitrum/mainnet/INITIALIZED ]; then #if [ -f /root/.arbitrum/mainnet/INITIALIZED ]; then
echo "datadir is already initialized" # echo "datadir is already initialized"
else #else
echo "lemme download the database quickly" # echo "lemme download the database quickly"
rm -rf /root/.arbitrum/mainnet/db # rm -rf /root/.arbitrum/mainnet/db
curl https://snapshot.arbitrum.io/mainnet/db.tar | tar -xv -C /root/.arbitrum/mainnet/ && touch /root/.arbitrum/mainnet/INITIALIZED # curl https://snapshot.arbitrum.io/arb1/classic-archive.tar | tar -xv -C /root/.arbitrum/mainnet/ && touch /root/.arbitrum/mainnet/INITIALIZED
fi #fi
echo "LFG!!!" #echo "LFG!!!"
/home/user/go/bin/arb-node $@ exec /home/user/go/bin/arb-node $@

View File

@@ -24,7 +24,7 @@ services:
restart: unless-stopped restart: unless-stopped
image: nginx image: nginx
depends_on: depends_on:
- avalanche-fuji - avalanche-archive-client
expose: expose:
- 80 - 80
environment: environment:

View File

@@ -4,6 +4,7 @@ services:
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3} image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
restart: unless-stopped restart: unless-stopped
stop_grace_period: 5m stop_grace_period: 5m
user: root
expose: expose:
- "9090" - "9090"
- "8545" - "8545"
@@ -19,7 +20,7 @@ services:
--authrpc.port=8551 --authrpc.port=8551
--authrpc.vhosts="*" --authrpc.vhosts="*"
--authrpc.jwtsecret=/jwtsecret --authrpc.jwtsecret=/jwtsecret
--rollup.sequencerhttp=https://mainnet-sequencer.base.org" --rollup.sequencerhttp="https://mainnet-sequencer.base.org"
--chain=base-mainnet --chain=base-mainnet
--ws --ws
--nodiscover --nodiscover
@@ -29,7 +30,7 @@ services:
networks: networks:
- chains - chains
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.middlewares.base-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-erigon" - "traefik.http.middlewares.base-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/base-erigon"
- "traefik.http.services.base-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - "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.entrypoints=websecure}"
@@ -64,7 +65,7 @@ services:
- "OP_NODE_L1_ETH_RPC=${BASE_L1_ETHEREUM_MAINNET_EXECUTION_RPC}" - "OP_NODE_L1_ETH_RPC=${BASE_L1_ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://base-erigon:9551" - "OP_NODE_L2_ENGINE_RPC=http://base-erigon:8551"
- "OP_NODE_LOG_LEVEL=info" - "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0" - "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true" - "OP_NODE_METRICS_ENABLED=true"

View File

@@ -0,0 +1,103 @@
services:
base-reth:
image: ghcr.io/paradigmxyz/op-reth:${OP_RETH_VERSION:-v1.3.1}
expose:
- 9551
- 8545 # RPC / Websocket
- 50138 # P2P TCP (currently unused)
- 50138/udp # P2P UDP (currently unused)
- 6060 # metrics
ports:
- "50138:50138"
- "50138:50138/udp"
restart: unless-stopped
user: root
stop_grace_period: 3m
command: >
node
--chain base
--port 50138
--discovery.port 50138
--rollup.sequencer-http https://mainnet-sequencer.base.org
--http
--ws
--authrpc.addr 0.0.0.0
--authrpc.port 9551
--authrpc.jwtsecret /jwtsecret
--http.addr 0.0.0.0
--http.port 8545
--ws.addr 0.0.0.0
--ws.port 8545
--ws.origins '*'
--http.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin"
--ws.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin"
--http.corsdomain '*'
--rpc.max-logs-per-response 1100000
--rpc.gascap 600000000
--nat extip:$IP
volumes:
- ${BASE_MAINNET_OP_RETH_ARCHIVE_TRACE_DATA:-base-mainnet-op-reth-archive-trace}:/root/.local/share/reth/base
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.base-mainnet-op-reth-archive-trace-stripprefix.stripprefix.prefixes=/base-reth"
- "traefik.http.services.base-mainnet-op-reth-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.base-mainnet-op-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/base-reth`)}"
- "${NO_SSL:+traefik.http.routers.base-mainnet-op-reth-archive-trace.rule=PathPrefix(`/base-reth`)}"
- "traefik.http.routers.base-mainnet-op-reth-archive-trace.middlewares=base-mainnet-op-reth-archive-trace-stripprefix, ipwhitelist"
networks:
- chains
base-reth-node:
build:
context: ./op
depends_on:
- base-reth
volumes:
- .jwtsecret:/jwtsecret
expose:
- 8545 # RPC
- 36755 # P2P TCP
- 36755/udp # P2P UDP
- 7300 # metrics
- 6060 # pprof
ports:
- "36755:36755"
- "36755:36755/udp"
entrypoint: ./op-node
restart: always
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=base-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${BASE_L1_ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://base-reth:9551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_AGENT=base"
- "OP_NODE_P2P_BOOTNODES=enr:-J24QNz9lbrKbN4iSmmjtnr7SjUMk4zB7f1krHZcTZx-JRKZd0kA2gjufUROD6T3sOWDVDnFJRvqBBo62zuF-hYCohOGAYiOoEyEgmlkgnY0gmlwhAPniryHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQKNVFlCxh_B-716tTs-h1vMzZkSs1FTu_OYTNjgufplG4N0Y3CCJAaDdWRwgiQG,enr:-J24QH-f1wt99sfpHy4c0QJM-NfmsIfmlLAMMcgZCUEgKG_BBYFc6FwYgaMJMQN5dsRBJApIok0jFn-9CS842lGpLmqGAYiOoDRAgmlkgnY0gmlwhLhIgb2Hb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJ9FTIv8B9myn1MWaC_2lJ-sMoeCDkusCsk4BYHjjCq04N0Y3CCJAaDdWRwgiQG,enr:-J24QDXyyxvQYsd0yfsN0cRr1lZ1N11zGTplMNlW4xNEc7LkPXh0NAJ9iSOVdRO95GPYAIc6xmyoCCG6_0JxdL3a0zaGAYiOoAjFgmlkgnY0gmlwhAPckbGHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJwoS7tzwxqXSyFL7g0JM-KWVbgvjfB8JA__T7yY_cYboN0Y3CCJAaDdWRwgiQG,enr:-J24QHmGyBwUZXIcsGYMaUqGGSl4CFdx9Tozu-vQCn5bHIQbR7On7dZbU61vYvfrJr30t0iahSqhc64J46MnUO2JvQaGAYiOoCKKgmlkgnY0gmlwhAPnCzSHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQINc4fSijfbNIiGhcgvwjsjxVFJHUstK9L1T8OTKUjgloN0Y3CCJAaDdWRwgiQG,enr:-J24QG3ypT4xSu0gjb5PABCmVxZqBjVw9ca7pvsI8jl4KATYAnxBmfkaIuEqy9sKvDHKuNCsy57WwK9wTt2aQgcaDDyGAYiOoGAXgmlkgnY0gmlwhDbGmZaHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQIeAK_--tcLEiu7HvoUlbV52MspE0uCocsx1f_rYvRenIN0Y3CCJAaDdWRwgiQG"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=36755"
- "OP_NODE_P2P_LISTEN_UDP_PORT=36755"
- "OP_NODE_ROLLUP_CONFIG=mainnet/rollup.json"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${BASE_L1_ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${BASE_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${BASE_L1_ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L2_SKIP_SYNC_START_CHECK=true"
networks:
- chains
volumes:
base-mainnet-op-reth-archive-trace:

View File

@@ -1,8 +1,6 @@
version: '3.1'
networks: networks:
chains: chains:
driver: bridge driver: bridge
ipam: ipam:
config: config:
- subnet: 192.168.0.0/26 - subnet: ${CHAINS_SUBNET:-192.168.0.0/26}

View File

@@ -1,7 +1,7 @@
services: services:
blast-archive: blast-archive:
image: blastio/blast-geth:v1.1.0-mainnet image: blastio/blast-geth:mainnet-v1.1.1
volumes: volumes:
- ${BLAST_MAINNET_GETH_ARCHIVE_DATA:-blast-mainnet-geth-archive}:/data - ${BLAST_MAINNET_GETH_ARCHIVE_DATA:-blast-mainnet-geth-archive}:/data
- ./blast-io:/config:rw - ./blast-io:/config:rw
@@ -32,6 +32,7 @@ services:
- "GETH_OVERRIDE_ECOTONE=1716843599" - "GETH_OVERRIDE_ECOTONE=1716843599"
expose: expose:
- 9545 - 9545
- 8551
restart: always restart: always
stop_grace_period: 30s stop_grace_period: 30s
entrypoint: /bin/sh entrypoint: /bin/sh
@@ -49,7 +50,7 @@ services:
- "traefik.http.routers.blast-mainnet-geth-archive.middlewares=blast-mainnet-geth-archive-stripprefix, ipwhitelist" - "traefik.http.routers.blast-mainnet-geth-archive.middlewares=blast-mainnet-geth-archive-stripprefix, ipwhitelist"
blast-archive-node: blast-archive-node:
image: blastio/blast-optimism:v1.1.0-mainnet image: blastio/blast-optimism:mainnet-v1.1.1
volumes: volumes:
- ./blast-io:/config - ./blast-io:/config
- .jwtsecret:/jwtsecret - .jwtsecret:/jwtsecret
@@ -60,13 +61,13 @@ services:
- "OP_NODE_P2P_BOOTNODES=enr:-J64QGwHl9uYLfC_cnmxSA6wQH811nkOWJDWjzxqkEUlJoZHWvI66u-BXgVcPCeMUmg0dBpFQAPotFchG67FHJMZ9OSGAY3d6wevgmlkgnY0gmlwhANizeSHb3BzdGFja4Sx_AQAiXNlY3AyNTZrMaECg4pk0cskPAyJ7pOmo9E6RqGBwV-Lex4VS9a3MQvu7PWDdGNwgnZhg3VkcIJ2YQ,enr:-J64QDge2jYBQtcNEpRqmKfci5E5BHAhNBjgv4WSdwH1_wPqbueq2bDj38-TSW8asjy5lJj1Xftui6Or8lnaYFCqCI-GAY3d6wf3gmlkgnY0gmlwhCO2D9yHb3BzdGFja4Sx_AQAiXNlY3AyNTZrMaEDo4aCTq7pCEN8om9U5n_VyWdambGnQhwHNwKc8o-OicaDdGNwgnZhg3VkcIJ2YQ" - "OP_NODE_P2P_BOOTNODES=enr:-J64QGwHl9uYLfC_cnmxSA6wQH811nkOWJDWjzxqkEUlJoZHWvI66u-BXgVcPCeMUmg0dBpFQAPotFchG67FHJMZ9OSGAY3d6wevgmlkgnY0gmlwhANizeSHb3BzdGFja4Sx_AQAiXNlY3AyNTZrMaECg4pk0cskPAyJ7pOmo9E6RqGBwV-Lex4VS9a3MQvu7PWDdGNwgnZhg3VkcIJ2YQ,enr:-J64QDge2jYBQtcNEpRqmKfci5E5BHAhNBjgv4WSdwH1_wPqbueq2bDj38-TSW8asjy5lJj1Xftui6Or8lnaYFCqCI-GAY3d6wf3gmlkgnY0gmlwhCO2D9yHb3BzdGFja4Sx_AQAiXNlY3AyNTZrMaEDo4aCTq7pCEN8om9U5n_VyWdambGnQhwHNwKc8o-OicaDdGNwgnZhg3VkcIJ2YQ"
- "OP_NODE_L1_RPC_RATE_LIMIT=0" - "OP_NODE_L1_RPC_RATE_LIMIT=0"
- "OP_NODE_L1_RPC_MAX_BATCH_SIZE=20" - "OP_NODE_L1_RPC_MAX_BATCH_SIZE=20"
- "OP_NODE_L1_RPC_KIND=${BLAST_MAINNET_L1_ETHEREUM_MAINNET_EXECUTION_KIND:-basic}" - "OP_NODE_L1_RPC_KIND=${BLAST_L1_ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${BLAST_MAINNET_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - "OP_NODE_L1_TRUST_RPC=${BLAST_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_ETH_RPC=${BLAST_L1_ETHEREUM_MAINNET_EXECUTION_RPC}" - "OP_NODE_L1_ETH_RPC=${BLAST_L1_ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L1_BEACON=${BLAST_L1_ETHEREUM_MAINNET_BEACON_REST}" - "OP_NODE_L1_BEACON=${BLAST_L1_ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${BLAST_MAINNET_L1_ETHEREUM_MAINNET_BEACON_ARCHIVER}" - "OP_NODE_L1_BEACON_ARCHIVER=${BLAST_MAINNET_L1_ETHEREUM_MAINNET_BEACON_ARCHIVER}"
- "OP_NODE_L1_TRUST_RPC=true" - "OP_NODE_L1_TRUST_RPC=true"
- "OP_NODE_L2_ENGINE_RPC=http://op-blast-mainnet-archive:8551" - "OP_NODE_L2_ENGINE_RPC=http://blast-archive:8551"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_SKIP_SYNC_START_CHECK=true" - "OP_NODE_L2_SKIP_SYNC_START_CHECK=true"
- "OP_NODE_P2P_LISTEN_TCP_PORT=25037" - "OP_NODE_P2P_LISTEN_TCP_PORT=25037"

View File

@@ -1,9 +1,14 @@
services: services:
boba-bnb-archive-dtl: boba-bnb-archive-dtl:
image: bobanetwork/data-transport-layer@sha256:33e7530795f387c660633fc855e5ea7e19de445a7985b1c8b142db26698839e6 image: bobanetwork/data-transport-layer@sha256:33e7530795f387c660633fc855e5ea7e19de445a7985b1c8b142db26698839e6
stop_grace_period: 5m
environment: environment:
DATA_TRANSPORT_LAYER__L1_RPC_ENDPOINT: 'https://bsc-dataseed.binance.org/' DATA_TRANSPORT_LAYER__L1_RPC_ENDPOINT: 'https://bsc-dataseed.binance.org'
DATA_TRANSPORT_LAYER__L2_RPC_ENDPOINT: 'https://replica.bnb.boba.network' # DATA_TRANSPORT_LAYER__L1_RPC_ENDPOINT: 'https://bsc-erigon3:8545'
# DATA_TRANSPORT_LAYER__L2_RPC_ENDPOINT: 'https://replica.bnb.boba.network'
# DATA_TRANSPORT_LAYER__L2_RPC_ENDPOINT: 'https://rpc-de-23.stakesquid.eu/bobabnb'
DATA_TRANSPORT_LAYER__L2_RPC_ENDPOINT: 'http://142.132.249.52:8547'
DATA_TRANSPORT_LAYER__SYNC_FROM_L1: 'false' DATA_TRANSPORT_LAYER__SYNC_FROM_L1: 'false'
DATA_TRANSPORT_LAYER__SYNC_FROM_L2: 'true' DATA_TRANSPORT_LAYER__SYNC_FROM_L2: 'true'
DATA_TRANSPORT_LAYER__L2_CHAIN_ID: 56288 DATA_TRANSPORT_LAYER__L2_CHAIN_ID: 56288
@@ -21,7 +26,7 @@ services:
DATA_TRANSPORT_LAYER__SERVER_HOSTNAME: '0.0.0.0' DATA_TRANSPORT_LAYER__SERVER_HOSTNAME: '0.0.0.0'
volumes: volumes:
- ./boba/bnb:/opt/optimism/packages/data-transport-layer/state-dumps/ - ./boba/bnb:/opt/optimism/packages/data-transport-layer/state-dumps/
- ${BOBA_BNB_MAINNET_GETH_ARCHIVE__DTL_DATA:-boba-bnb-geth-archive_dtl}:/db - ${BOBA_BNB_MAINNET_L2GETH_ARCHIVE__DTL_DATA:-boba-bnb-l2geth-archive_dtl}:/db
networks: networks:
- chains - chains
@@ -30,16 +35,19 @@ services:
- boba-bnb-archive-dtl - boba-bnb-archive-dtl
image: bobanetwork/l2geth@sha256:0c5c25d1db8244f819d84517aaafafbf0e73cf3dacc98051c80310d9d01a12fd image: bobanetwork/l2geth@sha256:0c5c25d1db8244f819d84517aaafafbf0e73cf3dacc98051c80310d9d01a12fd
entrypoint: sh ./geth.sh entrypoint: sh ./geth.sh
stop_grace_period: 5m
volumes: volumes:
- ${BOBA_BNB_MAINNET_GETH_ARCHIVE__CLIENT_DATA:-boba-bnb-mainnet-geth-archive_client}:/root/.ethereum/ - ${BOBA_BNB_MAINNET_L2GETH_ARCHIVE__CLIENT_DATA:-boba-bnb-mainnet-l2geth-archive_client}:/root/.ethereum/
environment: environment:
ETH1_HTTP: 'https://bsc-dataseed.binance.org/' GETH_ALLOW_INSECURE_UNLOCK: 'true'
# ETH1_HTTP: 'https://bsc-dataseed.binance.org'
ETH1_HTTP: 'https://bsc-erigon3:8545'
ETH1_CTC_DEPLOYMENT_HEIGHT: 1305672 ETH1_CTC_DEPLOYMENT_HEIGHT: 1305672
ROLLUP_TIMESTAMP_REFRESH: 5s ROLLUP_TIMESTAMP_REFRESH: 5s
ROLLUP_STATE_DUMP_PATH: http://boba-bnb-archive-dtl:8081/state-dump.latest.json ROLLUP_STATE_DUMP_PATH: http://boba-bnb-archive-dtl:8081/state-dump.latest.json
ROLLUP_CLIENT_HTTP: http://boba-bnb-archive-dtl:7878 ROLLUP_CLIENT_HTTP: http://boba-bnb-archive-dtl:7878
ROLLUP_BACKEND: 'l2' ROLLUP_BACKEND: 'l2'
ROLLUP_VERIFIER_ENABLE: 'true' ROLLUP_VERIFIER_ENABLE: 'false'
RETRIES: 60 RETRIES: 60
# no need to keep this secret, only used internally to sign blocks # no need to keep this secret, only used internally to sign blocks
BLOCK_SIGNER_KEY: "6587ae678cf4fc9a33000cdbf9f35226b71dcc6a4684a31203241f9bcfd55d27" BLOCK_SIGNER_KEY: "6587ae678cf4fc9a33000cdbf9f35226b71dcc6a4684a31203241f9bcfd55d27"
@@ -53,6 +61,7 @@ services:
BOBA_GAS_PRICE_ORACLE_ADDRESS: "0x4200000000000000000000000000000000000024" BOBA_GAS_PRICE_ORACLE_ADDRESS: "0x4200000000000000000000000000000000000024"
# sequencer http endpoint # sequencer http endpoint
SEQUENCER_CLIENT_HTTP: https://bnb.boba.network/ SEQUENCER_CLIENT_HTTP: https://bnb.boba.network/
# SEQUENCER_CIENT_HTTP: http://142.132.249.52:8547
ETH1_SYNC_SERVICE_ENABLE: true ETH1_SYNC_SERVICE_ENABLE: true
ETH1_CONFIRMATION_DEPTH: 0 ETH1_CONFIRMATION_DEPTH: 0
@@ -90,7 +99,7 @@ services:
restart: unless-stopped restart: unless-stopped
image: nginx image: nginx
depends_on: depends_on:
- op-bobabnb-archive - boba-bnb-archive-client
expose: expose:
- 80 - 80
environment: environment:
@@ -105,15 +114,15 @@ services:
- ./nginx-proxy:/etc/nginx/templates - ./nginx-proxy:/etc/nginx/templates
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.middlewares.boba-bnb-mainnet-geth-archive-stripprefix.stripprefix.prefixes=/boba-bnb-archive" - "traefik.http.middlewares.boba-bnb-mainnet-l2geth-archive-stripprefix.stripprefix.prefixes=/boba-bnb-archive"
- "traefik.http.services.boba-bnb-mainnet-geth-archive.loadbalancer.server.port=80" - "traefik.http.services.boba-bnb-mainnet-l2geth-archive.loadbalancer.server.port=80"
- "${NO_SSL:-traefik.http.routers.boba-bnb-mainnet-geth-archive.entrypoints=websecure}" - "${NO_SSL:-traefik.http.routers.boba-bnb-mainnet-l2geth-archive.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.boba-bnb-mainnet-geth-archive.tls.certresolver=myresolver}" - "${NO_SSL:-traefik.http.routers.boba-bnb-mainnet-l2geth-archive.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.boba-bnb-mainnet-geth-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-bnb-archive`)}" - "${NO_SSL:-traefik.http.routers.boba-bnb-mainnet-l2geth-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/boba-bnb-archive`)}"
- "${NO_SSL:+traefik.http.routers.boba-bnb-mainnet-geth-archive.rule=PathPrefix(`/boba-bnb-archive`)}" - "${NO_SSL:+traefik.http.routers.boba-bnb-mainnet-l2geth-archive.rule=PathPrefix(`/boba-bnb-archive`)}"
- "traefik.http.routers.boba-bnb-mainnet-geth-archive.middlewares=boba-bnb-mainnet-geth-archive-stripprefix, ipwhitelist" - "traefik.http.routers.boba-bnb-mainnet-l2geth-archive.middlewares=boba-bnb-mainnet-l2geth-archive-stripprefix, ipwhitelist"
volumes: volumes:
boba-bnb-mainnet-geth-archive_client: boba-bnb-mainnet-l2geth-archive_client:
boba-bnb-mainnet-geth-archive_dtl: boba-bnb-mainnet-l2geth-archive_dtl:

View File

@@ -1,5 +1,3 @@
version: '3.4'
# The erigon db can be downloaded from # The erigon db can be downloaded from
# https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-erigon-db-1149019.tgz # https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-erigon-db-1149019.tgz
# and extracted to the DATA_DIR # and extracted to the DATA_DIR
@@ -45,7 +43,7 @@ services:
- 8551 - 8551
volumes: volumes:
- .jwtsecret:/jwtsecret - .jwtsecret:/jwtsecret
- ${BOBA_ETH_MAINNET_ERIGON_ARCHIVE_TRACE:-boba-eth-mainnet-erigon-archive-trace}:/db - ${BOBA_ETH_MAINNET_ERIGON_ARCHIVE_TRACE_DATA:-boba-eth-mainnet-erigon-archive-trace}:/db
networks: networks:
- chains - chains
labels: labels:
@@ -60,8 +58,8 @@ services:
boba-eth-erigon-node: boba-eth-erigon-node:
depends_on: depends_on:
- op-boba - boba-eth-erigon
image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-node:${BOBAETH_NODE_VERSION:-v1.6.15} image: us-docker.pkg.dev/boba-392114/bobanetwork-tools-artifacts/images/op-node:${BOBAETH_NODE_VERSION:-v1.6.16-rc.1}
command: > command: >
op-node op-node
--l2=http://boba-eth-erigon:8551 --l2=http://boba-eth-erigon:8551
@@ -75,7 +73,7 @@ services:
- "OP_NODE_L1_TRUST_RPC=${BOBA_ETH_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}" - "OP_NODE_L1_TRUST_RPC=${BOBA_ETH_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${BOBA_ETH_L1_ETHEREUM_MAINNET_BEACON_REST}" - "OP_NODE_L1_BEACON=${BOBA_ETH_L1_ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L1_BEACON_ARCHIVER=${BOBA_ETH_L1_ETHEREUM_MAINNET_BEACON_ARCHIVER}" - "OP_NODE_L1_BEACON_ARCHIVER=${BOBA_ETH_L1_ETHEREUM_MAINNET_BEACON_ARCHIVER}"
- "OP_NODE_L1_ETH_RPC=${BOBA_ETH_L1_ETHEREUM_MAINNET_EXECUTION}" - "OP_NODE_L1_ETH_RPC=${BOBA_ETH_L1_ETHEREUM_MAINNET_EXECUTION_RPC}"
ports: ports:
- "45202:45202" - "45202:45202"
- "45202:45202/udp" - "45202:45202/udp"

View File

@@ -0,0 +1,55 @@
services:
bsc-erigon3:
image: icculp/bsc-erigon:v1.3.2-beta2
user: root
volumes:
- "${BSC_MAINNET_ERIGON3_ARCHIVE_TRACE_DATA:-bsc-mainnet-erigon3-archive-trace}:/datadir"
- "/slowdisk:/slowdisk"
ports:
- "28056:28056"
- "28056:28056/udp"
- "62912:62912"
- "62912:62912/udp"
restart: unless-stopped
command: >
--prune.mode=archive
--db.pagesize=16k
--chain=bsc
--http
--http.addr=0.0.0.0
--http.port=8545
--http.compression
--http.vhosts='*'
--http.corsdomain='*'
--http.api=eth,debug,net,web3,erigon,admin
--ws
--ws.compression
--rpc.gascap=300000000
--metrics
--metrics.addr=0.0.0.0
--metrics.port=6060
--bodies.cache=5G
--rpc.batch.limit=200000
--batchSize=2048MB
--port=28056
--datadir=/datadir
--ethash.dagdir=/datadir/ethash
--rpc.returndata.limit=1100000
--torrent.port=62912
--torrent.download.rate=80mb
--nat=extip:${IP}
stop_grace_period: 1m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.bsc-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/bsc-erigon3"
- "traefik.http.services.bsc-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.bsc-mainnet-erigon3-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.bsc-mainnet-erigon3-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.bsc-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/bsc-erigon3`)}"
- "${NO_SSL:+traefik.http.routers.bsc-mainnet-erigon3-archive-trace.rule=PathPrefix(`/bsc-erigon3`)}"
- "traefik.http.routers.bsc-mainnet-erigon3-archive-trace.middlewares=bsc-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist"
networks:
- chains
volumes:
bsc-mainnet-erigon3-archive-trace:

View File

@@ -3,7 +3,7 @@ services:
image: us.gcr.io/celo-org/geth:1.8 image: us.gcr.io/celo-org/geth:1.8
restart: unless-stopped restart: unless-stopped
stop_grace_period: 1m stop_grace_period: 1m
command: | command: >
--verbosity 3 --verbosity 3
--syncmode full --syncmode full
--gcmode archive --gcmode archive
@@ -20,7 +20,6 @@ services:
--datadir /root/.celo --datadir /root/.celo
expose: expose:
- 8545 - 8545
- 8546
ports: ports:
- '58395:58395/tcp' # p2p - '58395:58395/tcp' # p2p
- '58395:58395/udp' # p2p - '58395:58395/udp' # p2p

View File

@@ -8,7 +8,7 @@ services:
init: true init: true
erigon-gnosis: erigon-gnosis:
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-beta1} image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-rc2}
depends_on: depends_on:
- erigon-gnosis-init - erigon-gnosis-init
user: root user: root

View File

@@ -0,0 +1,54 @@
services:
ethereum-beacon-blobs:
image: sigp/lighthouse:${LIGHTHOUSE_VERSION:-v6.0.1}
restart: unless-stopped
networks:
- chains
ports:
- 20506:20506/tcp # p2p
- 20506:20506/udp # p2p
expose:
- 5054 # metrics
- 4000 # http
- 20506 # p2p
volumes:
- ${ETHEREUM_BEACON_MAINNET_LIGHTHOUSE_PRUNED_BLOBS_DATA:-ethereum-beacon-mainnet-lighthouse-pruned-blobs}:/data
- .jwtsecret:/jwt.hex
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
command: |
lighthouse
beacon_node
--network=mainnet
--disable-upnp
--datadir=/data
--port=20506
--http
--http-address=0.0.0.0
--http-port=4000
--target-peers=50
--execution-endpoint=${ETHEREUM_BEACON_EXECUTION_CLIENT_MAINNET_AUTH}
--execution-jwt=/jwt.hex
--debug-level=info
--validator-monitor-auto
--metrics
--metrics-port=5054
--metrics-address=0.0.0.0
--disable-log-timestamp
--allow-insecure-genesis-sync
--prune-blobs=false
--genesis-backfill
--disable-backfill-rate-limiting
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ethereum-beacon-mainnet-lighthouse-pruned-blobs-stripprefix.stripprefix.prefixes=/ethereum-beacon-blobs"
- "traefik.http.services.ethereum-beacon-mainnet-lighthouse-pruned-blobs.loadbalancer.server.port=4000"
- "${NO_SSL:-traefik.http.routers.ethereum-beacon-mainnet-lighthouse-pruned-blobs.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.ethereum-beacon-mainnet-lighthouse-pruned-blobs.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.ethereum-beacon-mainnet-lighthouse-pruned-blobs.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-beacon-blobs`)}"
- "${NO_SSL:+traefik.http.routers.ethereum-beacon-mainnet-lighthouse-pruned-blobs.rule=PathPrefix(`/ethereum-beacon-blobs`)}"
- "traefik.http.routers.ethereum-beacon-mainnet-lighthouse-pruned-blobs.middlewares=ethereum-beacon-mainnet-lighthouse-pruned-blobs-stripprefix, ipwhitelist"
volumes:
ethereum-beacon-mainnet-lighthouse-pruned-blobs:

71
ethereum-firehose.yml Normal file
View File

@@ -0,0 +1,71 @@
services:
ethereum-firehose:
build:
context: ./ethereum-firehose/
args:
FIREHOSE_ETHEREUM: v2.11.1
FIREHOSE_GETH_VERSION: v1.15.4-fh3.0
command: -c /etc/firehose/config.yml start
environment:
- DOMAIN=${DOMAIN:-yourdomain.com}
- ETHEREUM_ARCHIVE_RPC=${ETHEREUM_ARCHIVE_RPC:-http://ethereum-erigon3:8545}
- S3_BLOCKS_STORE_URL=${S3_BLOCKS_STORE_URL:-/var/lib/eth-blocks}
expose:
- 8545
- 8551
- 13042
ports:
- "24465:24465/tcp"
- "24465:24465/udp"
- "13042:13042"
labels:
- "traefik.enable=true"
- "traefik.http.services.ethereum-firehose.loadbalancer.server.scheme=h2c"
- "traefik.http.services.ethereum-firehose.loadbalancer.server.port=13042"
- "traefik.http.routers.ethereum-firehose.entrypoints=grpc"
- "traefik.http.routers.ethereum-firehose.rule=Host(`ethereum-firehose.${DOMAIN}`)"
- "traefik.http.routers.ethereum-firehose.middlewares=ipwhitelist"
networks:
- chains
volumes:
- ./ethereum-firehose/config.yml:/etc/firehose/config.yml:ro
- ${FIREHOSE_DATA_DIR:-ethereum-firehose_data}:/var/lib/firehose # Firehose data-dir
- ${FIREHOSE_BLOCKS_DIR:-eth-blocks_data}:/var/lib/eth-blocks # Merged blocks store
- ${FIREHOSE_JWT_FILE:-jwtsecret_data}:/jwtsecret:ro # JWT for authrpc
restart: unless-stopped
stop_grace_period: 1m
ethereum-beacon-nimbus:
image: statusim/nimbus-eth2:multiarch-v25.3.0
restart: unless-stopped
user: root
command:
- --network=mainnet
- --data-dir=/data
- --tcp-port=9000
- --udp-port=9000
- --rest=yes
- --rest-port=5052
- --rest-address=0.0.0.0
- --metrics=yes
- --metrics-port=7071
- --web3-url=http://ethereum-firehose:9663
- --jwt-secret=/data/jwt.hex
- --external-beacon-api-url=https://beaconstate-mainnet.chainsafe.io
expose:
- "5052"
- "7071"
ports:
- "9000:9000/tcp"
- "9000:9000/udp"
networks:
- chains
volumes:
- ${NIMBUS_DATA_DIR:-nimbus-data}:/data # Beacon node data-dir
- ${FIREHOSE_JWT_FILE:-jwtsecret_data}:/data/jwt.hex:ro # JWT (same as firehose)
volumes:
ethereum-firehose_data:
eth-blocks_data:
jwtsecret_data:
nimbus-data:

View File

@@ -0,0 +1,18 @@
FROM ubuntu:24.04
# Install required tools
RUN apt-get update && apt-get install -y wget curl jq tar
# Set environment variables for URLs
ARG FIREHOSE_ETHEREUM
ARG FIREHOSE_GETH_VERSION
# Download and extract the latest firehose-ethereum
RUN wget -O- https://github.com/streamingfast/firehose-ethereum/releases/download/${FIREHOSE_ETHEREUM}/firehose-ethereum_linux_x86_64.tar.gz | tar xvz -C /usr/bin
# Download the latest go-ethereum (geth)
RUN wget https://github.com/streamingfast/go-ethereum/releases/download/geth-${FIREHOSE_GETH_VERSION}/geth_linux -O /usr/bin/geth && chmod +x /usr/bin/geth
ENTRYPOINT ["fireeth"]

View File

@@ -0,0 +1,38 @@
start:
args:
- firehose
- reader-node
- merger
- relayer
- index-builder
- substreams-tier1
- substreams-tier2
flags:
data-dir: /var/lib/firehose
log-to-file: false
firehose-rate-limit-bucket-size: 200
firehose-rate-limit-bucket-fill-rate: 1s
substreams-rpc-endpoints: "http://ethereum-erigon3:8545"
substreams-tier1-max-subrequests: 20
substreams-block-execution-timeout: 30m0s
reader-node-path: /usr/bin/geth
common-merged-blocks-store-url: /var/lib/eth-blocks
reader-node-arguments: |
--datadir=/var/lib/firehose/eth-firehose
--networkid=1
--http
--http.api=eth,net,web3
--http.port=8545
--http.addr=0.0.0.0
--http.vhosts=*
--ws
--ws.addr=0.0.0.0
--ws.port=9756
--metrics
--metrics.addr=0.0.0.0
--metrics.port=7070
--cache=8192
--authrpc.jwtsecret=/jwtsecret
--authrpc.addr=0.0.0.0
--authrpc.vhosts=*
--authrpc.port=9663

View File

@@ -0,0 +1,84 @@
services:
ethereum-holesky-erigon3:
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-rc2}
user: root
expose:
- "16630"
- "9090"
- "8545"
- "8551"
ports:
- "9725:9725"
- "9725:9725/udp"
- "19525:19525/udp"
- "61832:61832"
- "17037:17037"
- "17037:17037/udp"
- "13153:13153"
- "13153:13153/udp"
environment:
- "IP=${IP}"
volumes:
- ${ETHEREUM_HOLESKY_ERIGON3_ARCHIVE_TRACE_DATA:-ethereum-holesky-erigon3-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret
networks:
- chains
command: >
--prune.mode=archive
--rpc.evmtimeout=30m0s
--rpc.overlay.getlogstimeout=30m0s
--rpc.overlay.replayblocktimeout=30m0s
--chain holesky
--beacon.api.port=5555
--beacon.api.addr=0.0.0.0
--beacon.api.cors.allow-origins=*
--port=9725
--p2p.allowed-ports=13153
--caplin.discovery.addr=0.0.0.0
--caplin.discovery.port=19525
--caplin.discovery.tcpport=61832
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060
--private.api.addr=0.0.0.0:9090
--torrent.port=17037
--nat=extip:${IP}
--pprof
--pprof.addr=0.0.0.0
--pprof.port=6061
--authrpc.addr=0.0.0.0
--authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret
--http.addr=0.0.0.0
--http.vhosts=*
--http.corsdomain=*
--http.api=eth,erigon,web3,net,debug,trace,txpool
--beacon.api=beacon,builder,debug,lighthouse,node,validator,config
--rpc.returndata.limit=1100000
--rpc.gascap=5000000000
--ws.port=8545
--ws
restart: unless-stopped
stop_grace_period: 1m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ethereum-holesky-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-holesky-erigon"
- "traefik.http.services.ethereum-holesky-erigon3-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace.entrypoints=websecure}"
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.service=ethereum-holesky-erigon3-archive-trace"
- "${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-erigon`)}"
- "${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-archive-trace.rule=PathPrefix(`/ethereum-holesky-erigon`)}"
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace.middlewares=ethereum-holesky-erigon3-archive-trace-stripprefix, ipwhitelist"
- "traefik.http.services.ethereum-holesky-erigon3-archive-trace-beacon.loadbalancer.server.port=5555"
- "${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace-beacon.entrypoints=websecure}"
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-beacon.service=ethereum-holesky-erigon3-archive-trace-beacon"
- "${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace-beacon.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.ethereum-holesky-erigon3-archive-trace-beacon.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-holesky-erigon/eth`)}"
- "${NO_SSL:+traefik.http.routers.ethereum-holesky-erigon3-archive-trace-beacon.rule=PathPrefix(`/ethereum-holesky-erigon/eth`)}"
- "traefik.http.routers.ethereum-holesky-erigon3-archive-trace-beacon.middlewares=ethereum-holesky-erigon3-archive-trace-stripprefix, ipwhitelist"
volumes:
ethereum-holesky-erigon3-archive-trace:

View File

@@ -1,6 +1,6 @@
services: services:
ethereum-erigon: ethereum-erigon:
image: erigontech/erigon:${ERIGON_VERSION:-v2.6.1} image: erigontech/erigon:${ERIGON_VERSION:-v2.61.3}
user: root user: root
expose: expose:
- "16630" - "16630"
@@ -8,14 +8,12 @@ services:
- "8545" - "8545"
- "8551" - "8551"
ports: ports:
- "42087:42087" - "18518:18518"
- "42087:42087/udp" - "18518:18518/udp"
- "29553:29553/udp" - "20202:20202"
- "45209:45209" - "20202:20202/udp"
- "42137:42137" - "52290:52290"
- "42137:42137/udp" - "52290:52290/udp"
- "52538:52538"
- "52538:52538/udp"
environment: environment:
- "IP=${IP}" - "IP=${IP}"
volumes: volumes:
@@ -25,27 +23,16 @@ services:
networks: networks:
- chains - chains
command: > command: >
--prune.mode=archive
--rpc.evmtimeout=30m0s --rpc.evmtimeout=30m0s
--rpc.overlay.getlogstimeout=30m0s --rpc.overlay.getlogstimeout=30m0s
--rpc.overlay.replayblocktimeout=30m0s --rpc.overlay.replayblocktimeout=30m0s
--chain mainnet --chain mainnet
--internalcl --port=18518
--beacon.api.port=5555 --p2p.allowed-ports=52290
--beacon.api.addr=0.0.0.0
--beacon.api.cors.allow-origins=*
--port=42087
--p2p.allowed-ports=52538
--caplin.discovery.addr=0.0.0.0
--caplin.discovery.port=29553
--caplin.discovery.tcpport=45209
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060 --metrics --metrics.addr=0.0.0.0 --metrics.port=6060
--private.api.addr=0.0.0.0:9090 --private.api.addr=0.0.0.0:9090
--torrent.port=42137 --torrent.port=20202
--nat=extip:${IP} --nat=extip:${IP}
--pprof
--pprof.addr=0.0.0.0
--pprof.port=6061
--authrpc.addr=0.0.0.0 --authrpc.addr=0.0.0.0
--authrpc.vhosts=* --authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret --authrpc.jwtsecret=/jwtsecret
@@ -53,7 +40,6 @@ services:
--http.vhosts=* --http.vhosts=*
--http.corsdomain=* --http.corsdomain=*
--http.api=eth,erigon,web3,net,debug,trace,txpool --http.api=eth,erigon,web3,net,debug,trace,txpool
--beacon.api=beacon,builder,debug,lighthouse,node,validator,config
--rpc.returndata.limit=1100000 --rpc.returndata.limit=1100000
--rpc.gascap=5000000000 --rpc.gascap=5000000000
--ws.port=8545 --ws.port=8545
@@ -63,22 +49,12 @@ services:
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.middlewares.ethereum-mainnet-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-erigon" - "traefik.http.middlewares.ethereum-mainnet-erigon-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-erigon"
- "traefik.http.services.ethereum-mainnet-erigon-archive-trace.loadbalancer.server.port=8545" - "traefik.http.services.ethereum-mainnet-erigon-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon-archive-trace.entrypoints=websecure}" - "${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon-archive-trace.entrypoints=websecure}"
- "traefik.http.routers.ethereum-mainnet-erigon-archive-trace.service=ethereum-mainnet-erigon-archive-trace"
- "${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon-archive-trace.tls.certresolver=myresolver}" - "${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-erigon`)}" - "${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-erigon`)}"
- "${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon-archive-trace.rule=PathPrefix(`/ethereum-erigon`)}" - "${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon-archive-trace.rule=PathPrefix(`/ethereum-erigon`)}"
- "traefik.http.routers.ethereum-mainnet-erigon-archive-trace.middlewares=ethereum-mainnet-erigon-archive-trace-stripprefix, ipwhitelist" - "traefik.http.routers.ethereum-mainnet-erigon-archive-trace.middlewares=ethereum-mainnet-erigon-archive-trace-stripprefix, ipwhitelist"
- "traefik.http.services.ethereum-mainnet-erigon-archive-trace-beacon.loadbalancer.server.port=5555"
- "${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon-archive-trace-beacon.entrypoints=websecure}"
- "traefik.http.routers.ethereum-mainnet-erigon-archive-trace-beacon.service=ethereum-mainnet-erigon-archive-trace-beacon"
- "${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon-archive-trace-beacon.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.ethereum-mainnet-erigon-archive-trace-beacon.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-erigon/eth`)}"
- "${NO_SSL:+traefik.http.routers.ethereum-mainnet-erigon-archive-trace-beacon.rule=PathPrefix(`/ethereum-erigon/eth`)}"
- "traefik.http.routers.ethereum-mainnet-erigon-archive-trace-beacon.middlewares=ethereum-mainnet-erigon-archive-trace-stripprefix, ipwhitelist"
volumes: volumes:
ethereum-mainnet-erigon-archive-trace: ethereum-mainnet-erigon-archive-trace:

View File

@@ -1,6 +1,6 @@
services: services:
ethereum-erigon3: ethereum-erigon3:
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-alpha7} image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-rc2}
user: root user: root
expose: expose:
- "16630" - "16630"

View File

@@ -0,0 +1,84 @@
services:
ethereum-sepolia-erigon3:
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-rc2}
user: root
expose:
- "16630"
- "9090"
- "8545"
- "8551"
ports:
- "5013:5013"
- "5013:5013/udp"
- "28058:28058/udp"
- "29556:29556"
- "10257:10257"
- "10257:10257/udp"
- "13083:13083"
- "13083:13083/udp"
environment:
- "IP=${IP}"
volumes:
- ${ETHEREUM_SEPOLIA_ERIGON3_ARCHIVE_TRACE_DATA:-ethereum-sepolia-erigon3-archive-trace}:/root/.local/share/erigon
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret
networks:
- chains
command: >
--prune.mode=archive
--rpc.evmtimeout=30m0s
--rpc.overlay.getlogstimeout=30m0s
--rpc.overlay.replayblocktimeout=30m0s
--chain sepolia
--beacon.api.port=5555
--beacon.api.addr=0.0.0.0
--beacon.api.cors.allow-origins=*
--port=5013
--p2p.allowed-ports=13083
--caplin.discovery.addr=0.0.0.0
--caplin.discovery.port=28058
--caplin.discovery.tcpport=29556
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060
--private.api.addr=0.0.0.0:9090
--torrent.port=10257
--nat=extip:${IP}
--pprof
--pprof.addr=0.0.0.0
--pprof.port=6061
--authrpc.addr=0.0.0.0
--authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret
--http.addr=0.0.0.0
--http.vhosts=*
--http.corsdomain=*
--http.api=eth,erigon,web3,net,debug,trace,txpool
--beacon.api=beacon,builder,debug,lighthouse,node,validator,config
--rpc.returndata.limit=1100000
--rpc.gascap=5000000000
--ws.port=8545
--ws
restart: unless-stopped
stop_grace_period: 1m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.ethereum-sepolia-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/ethereum-sepolia-erigon"
- "traefik.http.services.ethereum-sepolia-erigon3-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.entrypoints=websecure}"
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.service=ethereum-sepolia-erigon3-archive-trace"
- "${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-erigon`)}"
- "${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.rule=PathPrefix(`/ethereum-sepolia-erigon`)}"
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace.middlewares=ethereum-sepolia-erigon3-archive-trace-stripprefix, ipwhitelist"
- "traefik.http.services.ethereum-sepolia-erigon3-archive-trace-beacon.loadbalancer.server.port=5555"
- "${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-beacon.entrypoints=websecure}"
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-beacon.service=ethereum-sepolia-erigon3-archive-trace-beacon"
- "${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-beacon.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-beacon.rule=Host(`$DOMAIN`) && PathPrefix(`/ethereum-sepolia-erigon/eth`)}"
- "${NO_SSL:+traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-beacon.rule=PathPrefix(`/ethereum-sepolia-erigon/eth`)}"
- "traefik.http.routers.ethereum-sepolia-erigon3-archive-trace-beacon.middlewares=ethereum-sepolia-erigon3-archive-trace-stripprefix, ipwhitelist"
volumes:
ethereum-sepolia-erigon3-archive-trace:

View File

@@ -16,7 +16,7 @@ if [ ! -f "$FANTOM_HOME/mainnet-5577-full-mpt.g" ];
then then
cd $FANTOM_HOME cd $FANTOM_HOME
echo "downloading launch genesis file" echo "downloading launch genesis file"
wget --quiet https://download.fantom.network/mainnet-5577-full-mpt.g wget --quiet https://download.fantom.network/opera/mainnet/mainnet-5577-full-mpt.g
fi fi
# uncomment the next line and do docker-compose build in case you have to try to fix the db after unclean shutdown etc. # uncomment the next line and do docker-compose build in case you have to try to fix the db after unclean shutdown etc.
@@ -28,6 +28,7 @@ exec opera \
--maxpeers=200 \ --maxpeers=200 \
--datadir=$FANTOM_HOME \ --datadir=$FANTOM_HOME \
--http \ --http \
--bootnodes=${BOOTNODES:-enode://94dfec3eb6e50187d22d12f7dd965169bab5a63022934ef0b3b82a819574e0940b5bcb471f62360f1b58cf61a89e634bd14ae7c2e29ce48088890f4a7aff44fe@75.98.207.227:5050,enode://7fb3f43273f4dfeb19c3129c6ed999e14246d2f219ff284d0ef87417cd9514c6d542abc988a654b4a77005ea896c5b4e4ca0d40f97f3bf9ee37be33cc749835f@209.172.40.68:5050,enode://27a80a1db08a40636415d4ff9bb272882b6a6f97a9a5d596006de843f35cbbc679e5252d89d3de05bd74c36cf9f5ce2446dd66cdd5dc7e942a585eb4add61124@37.27.70.18:5050,enode://946fef1538abd165f8bd2ae1c290e7689ff5e209ab6c085eaced9b91e93684b1efe05f79a9a9b460504c450065baaeda5ecb72c03f8adf7e7a559042ce4950da@136.243.252.124:5078,enode://cf762e3a68f8a96676d6383cd3286b85ef7454ef37bb39283efe00d3d573d88f05db3daab7c35a4d3ba9edd9d089e359a25de5beeb24f79f6c1b9e5341958cee@15.235.54.211:5050} \
--http.addr=0.0.0.0 \ --http.addr=0.0.0.0 \
--http.port=18544 \ --http.port=18544 \
--http.api=ftm,eth,debug,admin,web3,personal,net,txpool,sfc,trace \ --http.api=ftm,eth,debug,admin,web3,personal,net,txpool,sfc,trace \

View File

@@ -1,7 +0,0 @@
FROM debian
RUN apt-get update && apt-get install -y wget
RUN wget -O- https://github.com/streamingfast/firehose-ethereum/releases/download/v1.4.13/firehose-ethereum_linux_x86_64.tar.gz | tar xvz -C /usr/bin
RUN wget https://github.com/streamingfast/go-ethereum/releases/download/geth-v1.12.1-fh2.3/geth_linux -O /usr/bin/geth
RUN chmod +x /usr/bin/geth
ENTRYPOINT ["fireeth"]

View File

@@ -1,26 +0,0 @@
start:
args:
- merger
- firehose
- reader-node
- relayer
- combined-index-builder
flags:
data-dir: /var/lib/firehose
log-to-file: false
reader-node-log-to-zap: false
common-chain-id: "1"
common-network-id: "1"
reader-node-path: /usr/bin/geth
substreams-rpc-endpoints: $ETHEREUM_ARCHIVE_RPC
substreams-enabled: true
common-merged-blocks-store-url: $S3_BLOCKS_STORE_URL
substreams-request-stats-enabled: true
reader-node-arguments: "--mainnet --datadir=/var/lib/geth
--ipcpath=/var/lib/firehose/reader/ipc
--http --http.api=eth,net,web3
--authrpc.jwtsecret=/jwtsecret
--authrpc.addr=0.0.0.0
--authrpc.vhosts=*
--http.port=8545 --http.addr=0.0.0.0 --http.vhosts=*
--firehose-enabled --port=24465 --cache=2048"

View File

@@ -1,156 +0,0 @@
version: '3.1'
services:
erigon-mainnet:
image: thorax/erigon:v2.48.1
expose:
- "16630"
- "9090"
- "8545"
- "8551"
ports:
- "16630:16630"
- "16630:16630/udp"
volumes:
- erigon-mainnet:/home/erigon/.local/share/erigon
- .jwtsecret:/jwtsecret
networks:
- chains
command: >
--chain mainnet
--port=16630
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060
--private.api.addr=0.0.0.0:9090
--torrent.upload.rate="1250mb"
--torrent.download.rate="1250mb"
--pprof
--pprof.addr=0.0.0.0
--pprof.port=6061
--authrpc.addr=0.0.0.0
--authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret
--http.addr=0.0.0.0
--http.vhosts=*
--http.corsdomain=*
--http.api=eth,erigon,web3,net,debug,trace,txpool
--rpc.returndata.limit=1000000
--rpc.gascap=5000000000
--ws
restart: unless-stopped
stop_grace_period: 1m
labels:
- "prometheus-scrape.enabled=true"
- "prometheus-scrape.port=6060"
- "prometheus-scrape.job_name=erigon"
- "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
- "traefik.enable=true"
- "traefik.http.middlewares.erigon-mainnet-stripprefix.stripprefix.prefixes=/erigon"
- "traefik.http.services.erigon-mainnet.loadbalancer.server.port=8545"
- "traefik.http.routers.erigon-mainnet.entrypoints=websecure"
- "traefik.http.routers.erigon-mainnet.tls.certresolver=myresolver"
- "traefik.http.routers.erigon-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/erigon`)"
- "traefik.http.routers.erigon-mainnet.middlewares=erigon-mainnet-stripprefix, ipwhitelist"
fireeth-mainnet:
build:
context: ./firehose-mainnet/
command: -c /etc/firehose/config.yml start
environment:
- "ETHEREUM_ARCHIVE_RPC=${FIREHOSE_ETHEREUM_ARCHIVE_RPC:-https://rpc-fi-1.stakesquid.eu/erigon}"
- "S3_BLOCKS_STORE_URL=${FIREHOSE_S3_BLOCKS_STORE_URL:-s3://162.55.135.148:8333/eth-blocks?insecure=true}"
expose:
- 8545 # geth rpc
- 8551 # consensus client
- 13042 # firehose grpc
ports:
- "24465:24465"
- "24465:24465/udp"
- "13042:13042"
labels:
- "traefik.enable=true"
- "traefik.http.services.firehose-mainnet.loadbalancer.server.scheme=h2c"
- "traefik.http.services.firehose-mainnet.loadbalancer.server.port=13042"
- "traefik.http.routers.firehose-mainnet.entrypoints=grpc"
#- "traefik.http.routers.firehose-mainnet.tls.certresolver=myresolver"
- "traefik.http.routers.firehose-mainnet.rule=Host(`firehose-mainnet.$DOMAIN`)"
- "traefik.http.routers.firehose-mainnet.middlewares=ipwhitelist"
networks:
- chains
volumes:
- "./firehose-mainnet/config.yml:/etc/firehose/config.yml"
- "geth-mainnet_data:/var/lib/geth"
- "firehose-mainnet_data:/var/lib/firehose"
- ".jwtsecret:/jwtsecret"
restart: unless-stopped
stop_grace_period: 1m
lighthouse-erigon-mainnet:
image: sigp/lighthouse:latest-modern
ports:
- "18719:18719"
- "18719:18719/udp"
volumes:
- .jwtsecret:/jwtsecret
- lighthouse-erigon-mainnet_data:/root/.lighthouse
command: >
lighthouse beacon_node
--eth1-endpoints http://erigon-mainnet:8545
--execution-endpoint http://erigon-mainnet:8551
--execution-jwt /jwtsecret
--checkpoint-sync-url https://sync-mainnet.beaconcha.in
--http
--http-address 0.0.0.0
--port 18719
restart: unless-stopped
stop_grace_period: 1m
networks:
- chains
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.lighthouse-erigon-mainnet-stripprefix.stripprefix.prefixes=/lighthouse-erigon-mainnet"
- "traefik.http.services.lighthouse-erigon-mainnet.loadbalancer.server.port=5052"
- "traefik.http.routers.lighthouse-erigon-mainnet.entrypoints=websecure"
- "traefik.http.routers.lighthouse-erigon-mainnet.tls.certresolver=myresolver"
- "traefik.http.routers.lighthouse-erigon-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/lighthouse-erigon-mainnet`)"
- "traefik.http.routers.lighthouse-erigon-mainnet.middlewares=lighthouse-erigon-mainnet-stripprefix, ipwhitelist"
lighthouse-fireeth-mainnet:
image: sigp/lighthouse:latest-modern
ports:
- "55031:55031"
- "55031:55031/udp"
volumes:
- .jwtsecret:/jwtsecret
- lighthouse-fireeth-mainnet_data:/root/.lighthouse
command: >
lighthouse beacon_node
--eth1-endpoints http://fireeth-mainnet:8545
--execution-endpoint http://fireeth-mainnet:8551
--execution-jwt /jwtsecret
--checkpoint-sync-url https://mainnet-checkpoint-sync.attestant.io
--http
--http-address 0.0.0.0
--port 55031
restart: unless-stopped
stop_grace_period: 1m
networks:
- chains
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.lighthouse-fireeth-mainnet-stripprefix.stripprefix.prefixes=/lighthouse-fireeth-mainnet"
- "traefik.http.services.lighthouse-fireeth-mainnet.loadbalancer.server.port=5052"
- "traefik.http.routers.lighthouse-fireeth-mainnet.entrypoints=websecure"
- "traefik.http.routers.lighthouse-fireeth-mainnet.tls.certresolver=myresolver"
- "traefik.http.routers.lighthouse-fireeth-mainnet.rule=Host(`$DOMAIN`) && PathPrefix(`/lighthouse-fireeth-mainnet`)"
- "traefik.http.routers.lighthouse-fireeth-mainnet.middlewares=lighthouse-fireeth-mainnet-stripprefix, ipwhitelist"
volumes:
erigon-mainnet:
lighthouse-fireeth-mainnet_data:
lighthouse-erigon-mainnet_data:
geth-mainnet_data:
firehose-mainnet_data:

View File

@@ -38,7 +38,7 @@ services:
volumes: volumes:
- fuse-mainnet-nethermind-archive-keystore:/nethermind/keystore - fuse-mainnet-nethermind-archive-keystore:/nethermind/keystore
- fuse-mainnet-nethermind-archive-logs:/nethermind/logs - fuse-mainnet-nethermind-archive-logs:/nethermind/logs
- ${FUSE_MAINNET_NETHERMIND_ARCHIVE_DB_DATA:-fuse-mainnet-nethermind-archive-db}:/nethermind/nethermind_db - ${FUSE_MAINNET_NETHERMIND_ARCHIVE__DB_DATA:-fuse-mainnet-nethermind-archive-db}:/nethermind/nethermind_db
- fuse-mainnet-nethermind-archive-health:/health:ro - fuse-mainnet-nethermind-archive-health:/health:ro
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro

View File

@@ -0,0 +1,83 @@
services:
gnosis-erigon3-init:
image: alpine:latest
entrypoint: ["/bin/sh", "-c"]
command: rm /datadir/nodekey
volumes:
- "${GNOSIS_MAINNET_ERIGON3_ARCHIVE_TRACE_DATA:-gnosis-mainnet-erigon3-archive-trace}:/datadir"
init: true
gnosis-erigon3:
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-rc2}
depends_on:
- gnosis-erigon3-init
user: root
volumes:
- "${GNOSIS_MAINNET_ERIGON3_ARCHIVE_TRACE_DATA:-gnosis-mainnet-erigon3-archive-trace}:/datadir"
- .jwtsecret:/jwtsecret
expose:
- "20947"
- "9090"
- "8545"
- "8551"
ports:
- "20947:20947"
- "20947:20947/udp"
- "28806:28806"
- "28806:28806/udp"
- "16393:16393"
- "16393:16393/udp"
- "17938:17938"
- "17938:17938/udp"
restart: unless-stopped
command: >
--chain=gnosis
--prune.mode=archive
--authrpc.addr=0.0.0.0
--authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret
--http
--http.addr=0.0.0.0
--http.port=8545
--http.compression
--http.vhosts='*'
--http.corsdomain='*'
--http.api=eth,debug,net,trace,web3,erigon
--ws
--ws.compression
--rpc.gascap=300000000
--metrics
--metrics.addr=0.0.0.0
--metrics.port=6060
--bodies.cache=5G
--rpc.batch.limit=200000
--batchSize=2048MB
--port=20947
--datadir=/datadir
--ethash.dagdir=/datadir/ethash
--rpc.returndata.limit=1000000
--p2p.protocol=66
--p2p.protocol 67
--p2p.protocol 68
--p2p.allowed-ports 28806
--p2p.allowed-ports 16393
--p2p.allowed-ports 17938
--nat extip:${IP}
stop_grace_period: 1m
environment:
- "IP=${IP}"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.gnosis-mainnet-erigon3-archive-trace-stripprefix.stripprefix.prefixes=/gnosis-erigon"
- "traefik.http.services.gnosis-mainnet-erigon3-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/gnosis-erigon`)}"
- "${NO_SSL:+traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.rule=PathPrefix(`/gnosis-erigon`)}"
- "traefik.http.routers.gnosis-mainnet-erigon3-archive-trace.middlewares=gnosis-mainnet-erigon3-archive-trace-stripprefix, ipwhitelist"
networks:
- chains
volumes:
gnosis-mainnet-erigon3-archive-trace:

View File

@@ -10,7 +10,12 @@ while IFS= read -r line; do
# Add each line to the array # Add each line to the array
blacklist+=("$line") blacklist+=("$line")
done < "$BASEPATH/path-blacklist.txt" done < "$BASEPATH/path-blacklist.txt"
if $NO_SSL; then
PROTO="http"
DOMAIN="0.0.0.0"
fi
pathlist=$(cat $BASEPATH/$1.yml | grep -oP "(?<=stripprefix\.prefixes).*\"" | cut -d'=' -f2- | sed 's/.$//') pathlist=$(cat $BASEPATH/$1.yml | grep -oP "(?<=stripprefix\.prefixes).*\"" | cut -d'=' -f2- | sed 's/.$//')
for path in $pathlist; do for path in $pathlist; do
@@ -22,9 +27,9 @@ for path in $pathlist; do
done done
if $include; then if $include; then
RPC_URL="https://$DOMAIN$path" RPC_URL="${PROTO:-https}://$DOMAIN$path"
if curl -s -X POST $RPC_URL -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}' | jq -r '.result.number, .result.hash' | awk '{if (NR==1) print "Block Number:", strtonum($0); else print "Block Hash:", $0}'; then if curl -s -X POST $RPC_URL -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}' | jq -r '.result.number, .result.hash' | gawk '{if (NR==1) print "Block Number:", strtonum($0); else print "Block Hash:", $0}'; then
exit 0 exit 0
else else
if curl -s -X POST $RPC_URL -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}' | jq; then if curl -s -X POST $RPC_URL -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}' | jq; then

View File

@@ -0,0 +1,91 @@
services:
#linea-erigon-init:
# image: alpine:latest
# entrypoint: ["/bin/sh", "-c"]
# command:
# - |
# apk add --no-cache openssl xxd;
# mkdir -p /config;
# if [ ! -f /config/nodekey ]; then
# echo "Generating new Geth node key...";
# openssl rand 32 | xxd -p -c 32 | tr -d '\n' > /configs/mainnet/shared/nodekey;
# echo "Node key generated: $(cat /config/nodekey)";
# else
# echo "Node key already exists, skipping generation.";
# fi
# volumes:
# - ./linea/shared:/configs/mainnet/shared
# init: true
linea-erigon:
image: erigontech/erigon:${ERIGON2_VERSION:-v2.61.3}
user: root
#depends_on:
# - linea-erigon-init
expose:
- "51262"
- "9090"
- "8545"
- "8551"
ports:
- "30319:30319"
- "30319:30319/udp"
- "48799:48799"
- "48799:48799/udp"
- "18025:18025"
- "18025:18025/udp"
volumes:
- ${LINEA_MAINNET_ERIGON_ARCHIVE_TRACE_DATA:-linea-mainnet-erigon-archive-trace}:/root/.local/share/erigon
- ./linea/shared:/configs/mainnet/shared
- ./linea/erigon/scripts/entrypoint.sh:/entrypoint.sh
networks:
- chains
entrypoint: /entrypoint.sh
environment:
- "IP=${IP}"
command: >
--chain=mainnet
--networkid=59144
--miner.gaslimit=61000000
--txpool.accountqueue 50000
--txpool.globalqueue 50000
--txpool.globalslots 50000
--txpool.pricelimit 1000000000
--txpool.nolocals
--nodekey /configs/mainnet/shared/nodekey
--nat=extip:${IP}
--snapshots=false
--port=30319
--p2p.allowed-ports 18025
--p2p.allowed-ports 48799
--bootnodes=enode://069800db9e6e0ec9cadca670994ef1aea2cfd3d88133e63ecadbc1cdbd1a5847b09838ee08d8b5f02a9c32ee13abeb4d4104bb5514e5322c9d7ee19f41ff3e51@3.132.73.210:31002,enode://a8e03a71eab12ec4b47bb6e19169d8e4dc7a58373a2476969bbe463f2dded6003037fa4dd5f71e15027f7fc8d7340956fbbefed67ddd116ac19a7f74da034b61@3.132.73.210:31003,enode://97706526cf79df9d930003644f9156805f6c8bd964fc79e083444f7014ce10c9bdd2c5049e63b58040dca1d4c82ebef970822198cf0714de830cff4111534ff1@18.223.198.165:31004,enode://24e1c654a801975a96b7f54ebd7452ab15777fc635c1db25bdbd4425fdb04e7f4768e9e838a87ab724320a765e41631d5d37758c933ad0e8668693558125c8aa@18.223.198.165:31000,enode://27010891d960f73d272a553f72b6336c6698db3ade98d631f09c764e57674a797be5ebc6829ddbb65ab564f439ebc75215d20aa98b6f351d12ea623e7d139ac3@3.132.73.210:31001,enode://228e1b8a4931e46f383e30721dac21fb8fb4e5e1b32c870e13b25478c82db3dc1cd9e7ceb93d302a766466b55638cc9c5cbfc43aa48fa41ced19baf365951f76@3.1.142.64:31002,enode://c22eb0d40fc3ad5ea710aeddea906567778166bfe18c157955e8c39b23a46c45db18a0fa2ba07f2b64c81178a8c796aec2a29151533920ead06fcdfc6d8d03c6@47.128.192.57:31004,enode://8ce733abe39fd7ae0a278b9893f85c1193c611a3886168690dd843435460f22cc4d61f9e8d0ace7f5905836a665319a31cccdaacdada2acc69972c382ecce7db@3.1.142.64:31003,enode://b7c1b2bed65a855f7a2104aac9a14674dfdf018fdac763415b373b29ce18cdb81d36328ba4e5c9f12629f3a50c3e8f9ee048f22dbdbe93a82813da89c6b81334@51.20.235.126:31004,enode://95270e0550848a72fb141cf27f1c4ea10714edde365b411dc0fa06c81c0f282ce155eb9fa472b6b8bb9ee98395eeaf4c5a7b02a01fe58b37ea98ba152eda4c37@13.50.94.193:31000,enode://72013391755f24f08567b932feeeec4c893c06e0b1fb480890c83bf87fd277ad86a5ab9cb586db9ae9970371a2f8cb0c96f6c9f69045abca0fb801db7f047138@51.20.235.126:31001
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060
--private.api.addr=0.0.0.0:9090
--pprof
--pprof.addr=0.0.0.0
--pprof.port=6061
--authrpc.addr=0.0.0.0
--authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret
--http.addr=0.0.0.0
--http.vhosts=*
--http.corsdomain=*
--http.api=eth,erigon,web3,net,debug,trace,txpool,admin
--rpc.returndata.limit=1000000
--rpc.gascap=5000000000
--ws
--ws.port=8545
restart: unless-stopped
stop_grace_period: 1m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.linea-mainnet-erigon-archive-trace-stripprefix.stripprefix.prefixes=/linea-erigon"
- "traefik.http.services.linea-mainnet-erigon-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.linea-mainnet-erigon-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.linea-mainnet-erigon-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.linea-mainnet-erigon-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-erigon`)}"
- "${NO_SSL:+traefik.http.routers.linea-mainnet-erigon-archive-trace.rule=PathPrefix(`/linea-erigon`)}"
- "traefik.http.routers.linea-mainnet-erigon-archive-trace.middlewares=linea-mainnet-erigon-archive-trace-stripprefix, ipwhitelist"
volumes:
linea-mainnet-erigon-archive-trace:

View File

@@ -1,92 +0,0 @@
version: '3.1'
services:
linea-erigon-init:
image: alpine:latest
entrypoint: ["/bin/sh", "-c"]
command:
- |
apk add --no-cache openssl xxd;
mkdir -p /config;
if [ ! -f /config/nodekey ]; then
echo "Generating new Geth node key...";
openssl rand 32 | xxd -p -c 32 | tr -d '\n' > /configs/mainnet/shared/nodekey;
echo "Node key generated: $(cat /config/nodekey)";
else
echo "Node key already exists, skipping generation.";
fi
volumes:
- ./linea/shared:/configs/mainnet/shared
init: true
linea-erigon:
image: erigontech/erigon:${ERIGON2_VERSION:-v2.61.0}
user: root
depends_on:
- linea-erigon-init
expose:
- "51262"
- "9090"
- "8545"
- "8551"
ports:
- "30319:30319"
- "30319:30319/udp"
- "48799:48799"
- "48799:48799/udp"
- "18025:18025"
- "18025:18025/udp"
volumes:
- ${LINEA-MAINNET-ERIGON-V2-ARCHIVE-TRACE:-linea-mainnet-erigon-v2-archive-trace}:/root/.local/share/erigon
- ./linea/shared:/configs/mainnet/shared
- ./linea/erigon/scripts/entrypoint.sh:/entrypoint.sh
networks:
- chains
entrypoint: /entrypoint.sh
environment:
- "IP=${IP}"
command: >
--chain=mainnet
--networkid=59144
--miner.gaslimit=61000000
--txpool.accountqueue 50000
--txpool.globalqueue 50000
--txpool.globalslots 50000
--txpool.pricelimit 1000000000
--txpool.nolocals
--nodekey /configs/mainnet/shared/nodekey
--nat=extip:${IP}
--snapshots=false
--port=30319
--p2p.allowed-ports 18025
--p2p.allowed-ports 48799
--bootnodes=enode://ca2f06aa93728e2883ff02b0c2076329e475fe667a48035b4f77711ea41a73cf6cb2ff232804c49538ad77794185d83295b57ddd2be79eefc50a9dd5c48bbb2e@3.128.49.168:30303,enode://eef91d714494a1ceb6e06e5ce96fe5d7d25d3701b2d2e68c042b33d5fa0e4bf134116e06947b3f40b0f22db08f104504dd2e5c790d8bcbb6bfb1b7f4f85313ec@3.130.182.201:30303,enode://cfd472842582c422c7c98b0f2d04c6bf21d1afb2c767f72b032f7ea89c03a7abdaf4855b7cb2dc9ae7509836064ba8d817572cf7421ba106ac87857836fa1d1b@3.136.114.192:30303
--metrics --metrics.addr=0.0.0.0 --metrics.port=6060
--private.api.addr=0.0.0.0:9090
--pprof
--pprof.addr=0.0.0.0
--pprof.port=6061
--authrpc.addr=0.0.0.0
--authrpc.vhosts=*
--authrpc.jwtsecret=/jwtsecret
--http.addr=0.0.0.0
--http.vhosts=*
--http.corsdomain=*
--http.api=eth,erigon,web3,net,debug,trace,txpool,admin
--rpc.returndata.limit=1000000
--rpc.gascap=5000000000
--ws
--ws.port=8545
restart: unless-stopped
stop_grace_period: 1m
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.linea-mainnet-erigon-v2-archive-trace-stripprefix.stripprefix.prefixes=/linea-erigon"
- "traefik.http.services.linea-mainnet-erigon-v2-archive-trace.loadbalancer.server.port=8545"
- "traefik.http.routers.linea-mainnet-erigon-v2-archive-trace.entrypoints=websecure"
- "traefik.http.routers.linea-mainnet-erigon-v2-archive-trace.tls.certresolver=myresolver"
- "traefik.http.routers.linea-mainnet-erigon-v2-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/linea-erigon`)"
- "traefik.http.routers.linea-mainnet-erigon-v2-archive-trace.middlewares=linea-mainnet-erigon-v2-archive-trace-stripprefix, ipwhitelist"
volumes:
linea-mainnet-erigon-v2-archive-trace:

View File

@@ -15,7 +15,6 @@ services:
restart: unless-stopped restart: unless-stopped
command: > command: >
--rpc-cors all --rpc-cors all
--unsafe-ws-external
--unsafe-rpc-external --unsafe-rpc-external
--trie-cache-size 1073741824 --trie-cache-size 1073741824
--base-path=/data --base-path=/data

View File

@@ -3,6 +3,7 @@ services:
optimism-erigon: optimism-erigon:
image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3} image: testinprod/op-erigon:${OP_ERIGON_VERSION:-v2.61.1-0.8.3}
restart: unless-stopped restart: unless-stopped
user: root
stop_grace_period: 5m stop_grace_period: 5m
expose: expose:
- "9090" - "9090"
@@ -24,13 +25,14 @@ services:
--chain=optimism-mainnet --chain=optimism-mainnet
--ws --ws
--nodiscover --nodiscover
--db.size.limit=8TB
volumes: volumes:
- ${OPTIMISM_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-optimism-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon - ${OPTIMISM_MAINNET_OP_ERIGON_ARCHIVE_TRACE_DATA:-optimism-mainnet-op-erigon-archive-trace}:/root/.local/share/erigon
- .jwtsecret:/jwtsecret - .jwtsecret:/jwtsecret
networks: networks:
- chains - chains
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.middlewares.optimism-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/optimism-erigon" - "traefik.http.middlewares.optimism-mainnet-op-erigon-archive-trace-stripprefix.stripprefix.prefixes=/optimism-erigon"
- "traefik.http.services.optimism-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545" - "traefik.http.services.optimism-mainnet-op-erigon-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.optimism-mainnet-op-erigon-archive-trace.entrypoints=websecure}" - "${NO_SSL:-traefik.http.routers.optimism-mainnet-op-erigon-archive-trace.entrypoints=websecure}"
@@ -65,7 +67,7 @@ services:
- "OP_NODE_L1_ETH_RPC=${OPTIMISM_L1_ETHEREUM_MAINNET_EXECUTION_RPC}" - "OP_NODE_L1_ETH_RPC=${OPTIMISM_L1_ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}" - "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret" - "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://optimism-erigon:9551" - "OP_NODE_L2_ENGINE_RPC=http://optimism-erigon:8551"
- "OP_NODE_LOG_LEVEL=info" - "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0" - "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true" - "OP_NODE_METRICS_ENABLED=true"

View File

@@ -0,0 +1,102 @@
services:
optimism-reth:
image: ghcr.io/paradigmxyz/op-reth:${OP_RETH_VERSION:-v1.3.1}
expose:
- 9551
- 8545 # RPC / Websocket
- 9575 # P2P TCP (currently unused)
- 9575/udp # P2P UDP (currently unused)
- 6060 # metrics
ports:
- "9575:9575"
- "9575:9575/udp"
restart: unless-stopped
user: root
stop_grace_period: 3m
command: >
node
--chain optimism
--port 9575
--discovery.port 9575
--rollup.sequencer-http https://mainnet-sequencer.optimism.org
--http
--ws
--authrpc.addr 0.0.0.0
--authrpc.port 9551
--authrpc.jwtsecret /jwtsecret
--http.addr 0.0.0.0
--http.port 8545
--ws.addr 0.0.0.0
--ws.port 8545
--ws.origins '*'
--http.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin"
--ws.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin"
--http.corsdomain '*'
--rpc.max-logs-per-response 1100000
--rpc.gascap 600000000
--nat extip:$IP
volumes:
- ${OPTIMISM_MAINNET_OP_RETH_ARCHIVE_TRACE_DATA:-optimism-mainnet-op-reth-archive-trace}:/root/.local/share/reth/optimism
- /slowdisk:/slowdisk
- .jwtsecret:/jwtsecret
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.optimism-mainnet-op-reth-archive-trace-stripprefix.stripprefix.prefixes=/optimism-reth"
- "traefik.http.services.optimism-mainnet-op-reth-archive-trace.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.optimism-mainnet-op-reth-archive-trace.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.optimism-mainnet-op-reth-archive-trace.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.optimism-mainnet-op-reth-archive-trace.rule=Host(`$DOMAIN`) && PathPrefix(`/optimism-reth`)}"
- "${NO_SSL:+traefik.http.routers.optimism-mainnet-op-reth-archive-trace.rule=PathPrefix(`/optimism-reth`)}"
- "traefik.http.routers.optimism-mainnet-op-reth-archive-trace.middlewares=optimism-mainnet-op-reth-archive-trace-stripprefix, ipwhitelist"
networks:
- chains
optimism-reth-node:
build:
context: ./op
depends_on:
- optimism-reth
volumes:
- .jwtsecret:/jwtsecret
expose:
- 8545 # RPC
- 26513 # P2P TCP
- 26513/udp # P2P UDP
- 7300 # metrics
- 6060 # pprof
ports:
- "26513:26513"
- "26513:26513/udp"
entrypoint: ./op-node
restart: always
stop_grace_period: 30s
environment:
- "OP_NODE_NETWORK=op-mainnet"
- "OP_NODE_SYNCMODE=execution-layer"
- "OP_NODE_L1_ETH_RPC=${OPTIMISM_L1_ETHEREUM_MAINNET_EXECUTION_RPC}"
- "OP_NODE_L2_ENGINE_AUTH_RAW=${JWTSECRET}"
- "OP_NODE_L2_ENGINE_AUTH=/jwtsecret"
- "OP_NODE_L2_ENGINE_RPC=http://optimism-reth:9551"
- "OP_NODE_LOG_LEVEL=info"
- "OP_NODE_METRICS_ADDR=0.0.0.0"
- "OP_NODE_METRICS_ENABLED=true"
- "OP_NODE_METRICS_PORT=7300"
- "OP_NODE_P2P_AGENT=op"
- "OP_NODE_P2P_BOOTNODES=enr:-J24QNz9lbrKbN4iSmmjtnr7SjUMk4zB7f1krHZcTZx-JRKZd0kA2gjufUROD6T3sOWDVDnFJRvqBBo62zuF-hYCohOGAYiOoEyEgmlkgnY0gmlwhAPniryHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQKNVFlCxh_B-716tTs-h1vMzZkSs1FTu_OYTNjgufplG4N0Y3CCJAaDdWRwgiQG,enr:-J24QH-f1wt99sfpHy4c0QJM-NfmsIfmlLAMMcgZCUEgKG_BBYFc6FwYgaMJMQN5dsRBJApIok0jFn-9CS842lGpLmqGAYiOoDRAgmlkgnY0gmlwhLhIgb2Hb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJ9FTIv8B9myn1MWaC_2lJ-sMoeCDkusCsk4BYHjjCq04N0Y3CCJAaDdWRwgiQG,enr:-J24QDXyyxvQYsd0yfsN0cRr1lZ1N11zGTplMNlW4xNEc7LkPXh0NAJ9iSOVdRO95GPYAIc6xmyoCCG6_0JxdL3a0zaGAYiOoAjFgmlkgnY0gmlwhAPckbGHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJwoS7tzwxqXSyFL7g0JM-KWVbgvjfB8JA__T7yY_cYboN0Y3CCJAaDdWRwgiQG,enr:-J24QHmGyBwUZXIcsGYMaUqGGSl4CFdx9Tozu-vQCn5bHIQbR7On7dZbU61vYvfrJr30t0iahSqhc64J46MnUO2JvQaGAYiOoCKKgmlkgnY0gmlwhAPnCzSHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQINc4fSijfbNIiGhcgvwjsjxVFJHUstK9L1T8OTKUjgloN0Y3CCJAaDdWRwgiQG,enr:-J24QG3ypT4xSu0gjb5PABCmVxZqBjVw9ca7pvsI8jl4KATYAnxBmfkaIuEqy9sKvDHKuNCsy57WwK9wTt2aQgcaDDyGAYiOoGAXgmlkgnY0gmlwhDbGmZaHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQIeAK_--tcLEiu7HvoUlbV52MspE0uCocsx1f_rYvRenIN0Y3CCJAaDdWRwgiQG"
- "OP_NODE_P2P_LISTEN_IP=0.0.0.0"
- "OP_NODE_P2P_LISTEN_TCP_PORT=26513"
- "OP_NODE_P2P_LISTEN_UDP_PORT=26513"
- "OP_NODE_RPC_ADDR=0.0.0.0"
- "OP_NODE_RPC_PORT=8545"
- "OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log"
- "OP_NODE_VERIFIER_L1_CONFS=4"
- "OP_NODE_L1_RPC_KIND=${OPTIMISM_L1_ETHEREUM_MAINNET_EXECUTION_KIND:-basic}"
- "OP_NODE_L1_TRUST_RPC=${OPTIMISM_L1_ETHEREUM_MAINNET_EXECUTION_TRUST:-false}"
- "OP_NODE_L1_BEACON=${OPTIMISM_L1_ETHEREUM_MAINNET_BEACON_REST}"
- "OP_NODE_L2_SKIP_SYNC_START_CHECK=true"
networks:
- chains
volumes:
optimism-mainnet-op-reth-archive-trace:

View File

@@ -1,6 +1,6 @@
services: services:
polygon-erigon3: polygon-erigon3:
image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-alpha7} image: erigontech/erigon:${ERIGON3_VERSION:-v3.0.0-rc2}
user: root user: root
expose: expose:
- "9090" - "9090"

View File

@@ -7,7 +7,7 @@
"default": [ "default": [
"base-fullnode", "base-reth-fullnode" "base-fullnode", "base-reth-fullnode"
], ],
"archive": ["base-reth"] "archive": ["base-reth", "base-mainnet-op-erigon-archive-trace"]
}, },
"snaxchain": { "snaxchain": {
"id": 2192, "id": 2192,
@@ -67,7 +67,9 @@
], ],
"archive": [ "archive": [
"reth-mainnet", "reth-mainnet",
"erigon-mainnet" "erigon-mainnet",
"ethereum-mainnet-erigon3-archive-trace",
"ethereum-mainnet-erigon-archive-trace"
] ]
}, },
"playnance": { "playnance": {
@@ -158,7 +160,8 @@
"default": [ "default": [
"arbitrum-fullnode", "arbitrum-fullnode",
"arbitrum-fullnode-pebble" "arbitrum-fullnode-pebble"
] ],
"archive": ["arbitrum-one-nitro-archive"]
}, },
"arbitrum-nova": { "arbitrum-nova": {
"id": 42170, "id": 42170,
@@ -188,7 +191,8 @@
], ],
"default": ["op-blast-mainnet-fullnode", "op-blast-mainnet-pbss"], "default": ["op-blast-mainnet-fullnode", "op-blast-mainnet-pbss"],
"archive": [ "archive": [
"op-blast-mainnet" "op-blast-mainnet",
"blast-mainnet-geth-archive"
] ]
}, },
"blast-sepolia": { "blast-sepolia": {
@@ -231,7 +235,8 @@
], ],
"default": [ "default": [
"avalanche-fullnode" "avalanche-fullnode"
] ],
"archive": ["avalanche-mainnet-go-archive"]
}, },
"avalanche-fuji": { "avalanche-fuji": {
"id": 43113, "id": 43113,
@@ -250,7 +255,8 @@
], ],
"default": [ "default": [
"celo-fullnode" "celo-fullnode"
] ],
"archive": ["celo-mainnet-geth-archive"]
}, },
"celo-alfajores": { "celo-alfajores": {
"id": 44787, "id": 44787,
@@ -260,12 +266,12 @@
"boba-eth": { "boba-eth": {
"id": 288, "id": 288,
"urls": ["https://mainnet.boba.network"], "urls": ["https://mainnet.boba.network"],
"default": ["op-boba"] "default": ["op-boba","boba-eth-mainnet-erigon-archive-trace"]
}, },
"boba-bnb": { "boba-bnb": {
"id": 56288, "id": 56288,
"urls": ["https://replica.bnb.boba.network"], "urls": ["https://replica.bnb.boba.network"],
"default": ["op-bobabnb"] "default": ["op-bobabnb","boba-bnb-mainnet-l2geth-archive"]
}, },
"fantom": { "fantom": {
"id": 250, "id": 250,
@@ -274,7 +280,8 @@
], ],
"default": [ "default": [
"fantom" "fantom"
] ],
"archive": ["fantom-mainnet-opera-archive-trace"]
}, },
"fantom-testnet": { "fantom-testnet": {
"id": 4002, "id": 4002,
@@ -297,7 +304,7 @@
"optimism": { "optimism": {
"id": 10, "id": 10,
"urls": [ "urls": [
"https://1rpc.io/op" "https://mainnet.optimism.io"
], ],
"default": [ "default": [
"optimism-fullnode", "optimism-reth-fullnode" "optimism-fullnode", "optimism-reth-fullnode"
@@ -307,7 +314,7 @@
"sepolia": { "sepolia": {
"id": 11155111, "id": 11155111,
"urls": [ "urls": [
"https://1rpc.io/sepolia" "https://sepolia.drpc.org"
], ],
"default": [ "default": [
"geth-repolia", "geth-repolia",
@@ -315,17 +322,19 @@
], ],
"erchive": [ "erchive": [
"reth-sepolia", "reth-sepolia",
"erigon-sepolia" "erigon-sepolia",
"ethereum-sepolia-erigon3-archive-trace"
] ]
}, },
"holesky": { "holesky": {
"id": 17000, "id": 17000,
"urls": [ "urls": [
"https://rpc.holesky.ethpandaops.io" "https://holesky.drpc.org"
], ],
"default": [ "default": [
"geth-holesky" "geth-holesky"
] ],
"archive": ["ethereum-holesky-erigon3-archive-trace"]
}, },
"gnosis": { "gnosis": {
"id": 100, "id": 100,
@@ -336,7 +345,7 @@
"erigon-gnosis-fullnode", "erigon-gnosis-fullnode",
"nethermind-gnosis" "nethermind-gnosis"
], ],
"archive": ["erigon-gnosis", "reth-gnosis"] "archive": ["erigon-gnosis", "reth-gnosis", "gnosis-mainnet-erigon3-archive-trace"]
}, },
"gnosis-chiado": { "gnosis-chiado": {
"id": 10200, "id": 10200,
@@ -379,7 +388,7 @@
"default": [ "default": [
"polygon-erigon-fullnode" "polygon-erigon-fullnode"
], ],
"archive": ["polygon-erigon"] "archive": ["polygon-erigon", "polygon-mainnet-erigon3-archive-trace"]
}, },
"linea": { "linea": {
"id": 59144, "id": 59144,
@@ -392,7 +401,8 @@
"archive": [ "archive": [
"geth-linea", "geth-linea",
"erigon-linea", "erigon-linea",
"reth-linea" "reth-linea",
"linea-mainnet-erigon-archive-trace"
] ]
}, },
"linea-sepolia": { "linea-sepolia": {
@@ -426,13 +436,14 @@
"bsc": { "bsc": {
"id": 56, "id": 56,
"urls": [ "urls": [
"https://bscrpc.com" "https://bsc.drpc.org"
], ],
"default": [ "default": [
"bsc", "bsc",
"bsc-erigon-fullnode", "bsc-erigon-fullnode",
"reth-bsc-fullnode" "reth-bsc-fullnode"
] ],
"archive": ["bsc-mainnet-erigon3-archive-trace"]
}, },
"bsc-testnet": { "bsc-testnet": {
"id": 97, "id": 97,
@@ -477,7 +488,8 @@
"zksync": { "zksync": {
"id": 324, "id": 324,
"urls": ["https://1rpc.io/zksync2-era"], "urls": ["https://1rpc.io/zksync2-era"],
"default": ["zksync-mainnet-fullnode"] "default": ["zksync-mainnet-fullnode"],
"archive": ["zksync-era-mainnet-external-node-archive"]
}, },
"rootstock": { "rootstock": {
"id": 30, "id": 30,
@@ -488,7 +500,12 @@
"id": 31, "id": 31,
"urls": ["https://public-node.testnet.rsk.co"], "urls": ["https://public-node.testnet.rsk.co"],
"default": ["rsk-testnet"] "default": ["rsk-testnet"]
}, },
"moonbeam": {
"id": 1284,
"urls": ["https://rpc.api.moonbeam.network"],
"archive": ["moonbeam-archive-trace"]
},
"polygon-amoy": { "polygon-amoy": {
"id": 80002, "id": 80002,
"urls": [ "urls": [
@@ -502,7 +519,7 @@
"id": 534352, "id": 534352,
"urls": ["https://rpc.scroll.io"], "urls": ["https://rpc.scroll.io"],
"default": ["scroll-mainnet"], "default": ["scroll-mainnet"],
"archive": ["scroll-mainnet"] "archive": ["scroll-mainnet", "scroll-mainnet-l2geth-archive"]
}, },
"scroll-sepolia": { "scroll-sepolia": {
"id": 534351, "id": 534351,

View File

@@ -1,5 +1,3 @@
version: '3.1'
services: services:
traefik: traefik:
image: traefik:v2.11.0 image: traefik:v2.11.0
@@ -15,14 +13,14 @@ services:
- "--api=true" - "--api=true"
- "--api.insecure=true" - "--api.insecure=true"
- "--api.dashboard=true" - "--api.dashboard=true"
- "--log.level=DEBUG" - "--log.level=info"
- "--providers.docker=true" - "--providers.docker=true"
- "--providers.docker.exposedbydefault=false" - "--providers.docker.exposedbydefault=false"
- "--providers.file.filename=/dynamic_config.yml" - "--providers.file.filename=/dynamic_config.yml"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443" - "--entrypoints.websecure.address=:443"
- "--entryPoints.metrics.address=:8082" - "--entryPoints.metrics.address=:8082"
- "--entryPoints.grpc.address=:3042" - "--entryPoints.grpc.address=:3042"
- "--entrypoints.web.address=:80"
- "--metrics.prometheus.entryPoint=metrics" - "--metrics.prometheus.entryPoint=metrics"
- "${NO_SSL:---entrypoints.web.http.redirections.entryPoint.to=websecure}" - "${NO_SSL:---entrypoints.web.http.redirections.entryPoint.to=websecure}"
- "${NO_SSL:---entrypoints.web.http.redirections.entryPoint.scheme=https}" - "${NO_SSL:---entrypoints.web.http.redirections.entryPoint.scheme=https}"

View File

@@ -1,8 +1,6 @@
version: '3.1'
services: services:
scroll: scroll:
image: scrolltech/l2geth:${SCROLL_GETH_VERSION:-scroll-v5.8.15} image: scrolltech/l2geth:${SCROLL_GETH_VERSION:-scroll-v5.7.25}
expose: expose:
- 8545 - 8545
ports: ports:
@@ -23,7 +21,7 @@ services:
--http.port=8545 --http.port=8545
--http.addr=0.0.0.0 --http.addr=0.0.0.0
--http.vhosts=* --http.vhosts=*
--l1.endpoint=${SCROLL_L1_ETHEREUM_MAINNET_EXECUTION_RPC} --l1.endpoint="${SCROLL_L1_ETHEREUM_MAINNET_EXECUTION_RPC}"
--rollup.verify --rollup.verify
--graphql --graphql
--graphql.vhosts=* --graphql.vhosts=*
@@ -31,24 +29,23 @@ services:
--metrics.addr=0.0.0.0 --metrics.addr=0.0.0.0
--maxpeers=100 --maxpeers=100
--gpo.ignoreprice=1 --gpo.ignoreprice=1
#--cache.noprefetch --cache.noprefetch
#--l1.confirmations finalized
networks: networks:
- chains - chains
volumes: volumes:
- "${SCROLL_MAINNET_ARCHIVE_DATA:-scroll-mainnet-archive}:/root/.ethereum" - "${SCROLL_MAINNET_L2GETH_ARCHIVE_DATA:-scroll-mainnet-l2geth-archive}:/root/.ethereum"
- ".jwtsecret:/jwtsecret" - ".jwtsecret:/jwtsecret"
restart: unless-stopped restart: unless-stopped
stop_grace_period: 5m stop_grace_period: 5m
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.middlewares.scroll-mainnet-archive-stripprefix.stripprefix.prefixes=/scroll" - "traefik.http.middlewares.scroll-mainnet-l2geth-archive-stripprefix.stripprefix.prefixes=/scroll"
- "traefik.http.services.scroll-mainnet-archive.loadbalancer.server.port=8545" - "traefik.http.services.scroll-mainnet-l2geth-archive.loadbalancer.server.port=8545"
- "${NO_SSL:-traefik.http.routers.scroll-mainnet-archive.entrypoints=websecure}" - "${NO_SSL:-traefik.http.routers.scroll-mainnet-l2geth-archive.entrypoints=websecure}"
- "${NO_SSL:-traefik.http.routers.scroll-mainnet-archive.tls.certresolver=myresolver}" - "${NO_SSL:-traefik.http.routers.scroll-mainnet-l2geth-archive.tls.certresolver=myresolver}"
- "${NO_SSL:-traefik.http.routers.scroll-mainnet-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/scroll`)}" - "${NO_SSL:-traefik.http.routers.scroll-mainnet-l2geth-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/scroll`)}"
- "${NO_SSL:+traefik.http.routers.scroll-mainnet-archive.rule=PathPrefix(`/scroll`)}" - "${NO_SSL:+traefik.http.routers.scroll-mainnet-l2geth-archive.rule=PathPrefix(`/scroll`)}"
- "traefik.http.routers.scroll-mainnet-archive.middlewares=scroll-mainnet-archive-stripprefix, ipwhitelist" - "traefik.http.routers.scroll-mainnet-l2geth-archive.middlewares=scroll-mainnet-l2geth-archive-stripprefix, ipwhitelist"
volumes: volumes:
scroll-mainnet-archive: scroll-mainnet-l2geth-archive:

View File

@@ -9,6 +9,13 @@ while IFS= read -r line; do
blacklist+=("$line") blacklist+=("$line")
done < "$BASEPATH/path-blacklist.txt" done < "$BASEPATH/path-blacklist.txt"
if $NO_SSL; then
PROTO="http"
DOMAIN="${DOMAIN:-0.0.0.0}"
else
PROTO="https"
fi
pathlist=$(cat $BASEPATH/$1.yml | grep -oP "(?<=PathPrefix).*\"" | cut -d'`' -f2-2) pathlist=$(cat $BASEPATH/$1.yml | grep -oP "(?<=PathPrefix).*\"" | cut -d'`' -f2-2)
for path in $pathlist; do for path in $pathlist; do
@@ -20,8 +27,8 @@ for path in $pathlist; do
done done
if $include; then if $include; then
RPC_URL="https://$DOMAIN$path" RPC_URL="$PROTO://$DOMAIN$path"
ref='' ref=''
if [ -n "$2" ]; then if [ -n "$2" ]; then
ref="$2" ref="$2"

View File

@@ -9,6 +9,13 @@ while IFS= read -r line; do
blacklist+=("$line") blacklist+=("$line")
done < "$BASEPATH/path-blacklist.txt" done < "$BASEPATH/path-blacklist.txt"
if $NO_SSL; then
PROTO="http"
DOMAIN="${DOMAIN:-0.0.0.0}"
else
PROTO="https"
fi
pathlist=$(cat $BASEPATH/$1.yml | grep -oP "(?<=stripprefix\.prefixes).*\"" | cut -d'=' -f2- | sed 's/.$//') pathlist=$(cat $BASEPATH/$1.yml | grep -oP "(?<=stripprefix\.prefixes).*\"" | cut -d'=' -f2- | sed 's/.$//')
for path in $pathlist; do for path in $pathlist; do
@@ -20,7 +27,7 @@ for path in $pathlist; do
done done
if $include; then if $include; then
RPC_URL="https://$DOMAIN$path" RPC_URL="$PROTO://$DOMAIN$path"
response_file=$(mktemp) response_file=$(mktemp)
http_status_code=$(curl --ipv4 -m 1 -s -X POST -w "%{http_code}" -o "$response_file" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest", false],"id":1}' $RPC_URL) http_status_code=$(curl --ipv4 -m 1 -s -X POST -w "%{http_code}" -o "$response_file" -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest", false],"id":1}' $RPC_URL)

View File

@@ -34,10 +34,9 @@ services:
- chains - chains
zksync-era-external-node-archive-client: zksync-era-external-node-archive-client:
image: "matterlabs/external-node:v24.23.0" image: "matterlabs/external-node:v26.2.1"
depends_on: depends_on:
zksync-era-archive-db: - zksync-era-external-node-archive-db
condition: service_healthy
ports: ports:
- "127.0.0.1:3060:3060" - "127.0.0.1:3060:3060"
- "127.0.0.1:3061:3061" - "127.0.0.1:3061:3061"
@@ -47,7 +46,7 @@ services:
expose: expose:
- 3322 - 3322
environment: environment:
DATABASE_URL: "postgres://postgres:notsecurepassword@zksync-archive-db:5430/zksync_local_ext_node" DATABASE_URL: "postgres://postgres:notsecurepassword@zksync-era-external-node-archive-db:5430/zksync_local_ext_node"
DATABASE_POOL_SIZE: 10 DATABASE_POOL_SIZE: 10
EN_HTTP_PORT: 3060 EN_HTTP_PORT: 3060
@@ -73,7 +72,7 @@ services:
restart: unless-stopped restart: unless-stopped
image: nginx image: nginx
depends_on: depends_on:
- zksync-eraexternal-node-archive-client - zksync-era-external-node-archive-client
expose: expose:
- 80 - 80
environment: environment: