This commit is contained in:
Brain🧠
2025-03-19 11:39:02 +02:00
19 changed files with 379 additions and 94 deletions

View File

@@ -1,16 +1,16 @@
{
"genesis": {
"l1": {
"hash": "0xfcfb8d586bdae763f1189988789211c69eb893a895e7ba48be3ca6289f0941b7",
"number": 19300102
"hash": "0x17728cf4d8e0b4f292d2390a869fd7c632d39e72efb00ca3462b4387c6aa2437",
"number": 5044255
},
"l2": {
"hash": "0xb689b35ef29d0bec5816938e0e52683c7257d2e325420ea69b739a2be4754b89",
"hash": "0x26a1c0faad7b041f34569a1bb383f00ab74b335883a44bed53e9f41ced5fd906",
"number": 0
},
"l2_time": 1708809815,
"l2_time": 1704686688,
"system_config": {
"batcherAddr": "0x415c8893d514f9bc5211d36eeda4183226b84aa7",
"batcherAddr": "0xba26fee2fa917443e05e65de8d4350bcd2f59222",
"overhead": "0x00000000000000000000000000000000000000000000000000000000000000bc",
"scalar": "0x00000000000000000000000000000000000000000000000000000000000a6fe0",
"gasLimit": 30000000
@@ -20,12 +20,14 @@
"max_sequencer_drift": 600,
"seq_window_size": 3600,
"channel_timeout": 300,
"l1_chain_id": 1,
"l2_chain_id": 81457,
"l1_chain_id": 11155111,
"l2_chain_id": 168587773,
"regolith_time": 0,
"canyon_time": 0,
"batch_inbox_address": "0xff00000000000000000000000000000000081457",
"deposit_contract_address": "0x0ec68c5b10f21effb74f2a5c61dfe6b08c0db6cb",
"l1_system_config_address": "0x5531dcff39ec1ec727c4c5d2fc49835368f805a9",
"delta_time": 1713999600,
"ecotone_time": 1713999600,
"batch_inbox_address": "0x1c3b85a2108784eab6a4bf56cdd6f722e415b331",
"deposit_contract_address": "0x2757e4430e694f27b73ec9c02257cab3a498c8c5",
"l1_system_config_address": "0x329faf078c364a316e08bf6a17b7eee6ae75a613",
"protocol_versions_address": "0x0000000000000000000000000000000000000000"
}

View File

@@ -24,6 +24,8 @@
"l2_chain_id": 168587773,
"regolith_time": 0,
"canyon_time": 0,
"delta_time": 1713999600,
"ecotone_time": 1713999600,
"batch_inbox_address": "0x1c3b85a2108784eab6a4bf56cdd6f722e415b331",
"deposit_contract_address": "0x2757e4430e694f27b73ec9c02257cab3a498c8c5",
"l1_system_config_address": "0x329faf078c364a316e08bf6a17b7eee6ae75a613",

View File

@@ -3,11 +3,11 @@
RPC_URL="$1"
ref="$2"
timeout=2 # seconds
timeout=5 # seconds
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 $timeout -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)
if [ $? -eq 0 ]; then
if [[ $http_status_code -eq 200 ]]; then
@@ -24,8 +24,13 @@ if [ $? -eq 0 ]; then
latest_block_hash=$(echo "$response" | jq -r '.result.hash')
response_file2=$(mktemp)
sleep 3 # to give the reference node more time to import the block if it is very current
http_status_code2=$(curl --ipv4 -m $timeout -s -X POST -w "%{http_code}" -o "$response_file2" -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"$latest_block_number\", false],\"id\":1}" $ref)
if [ $? -eq 0 ]; then
curl_code=$?
if [ $curl_code -eq 0 ]; then
if [[ $http_status_code2 -eq 200 ]]; then
response2=$(cat "$response_file2")
latest_block_hash2=$(echo "$response2" | jq -r '.result.hash')
@@ -37,7 +42,9 @@ if [ $? -eq 0 ]; then
http_status_code=$(curl --ipv4 -m $timeout -s -X POST -w "%{http_code}" -o "$response_file3" -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"latest\", false],\"id\":1}" $ref)
if [ $? -eq 0 ]; then
curl_code=$?
if [ $curl_code -eq 0 ]; then
if [[ $http_status_code -eq 200 ]]; then
response3=$(cat "$response_file3")
latest_block_timestamp3=$(echo "$response3" | jq -r '.result.timestamp')
@@ -62,11 +69,14 @@ if [ $? -eq 0 ]; then
echo "forked"
exit 1
fi
else
echo "unverified ($http_status_code2)"
exit 1
fi
fi
echo "unverified"
exit 1
echo "unverified ($curl_code)"
exit 0
elif [ $time_difference -lt 60 ]; then
echo "online"
exit 0

View File

@@ -2,7 +2,7 @@ version: '3.1'
services:
geth-holesky:
image: ethereum/client-go:v1.14.3
image: ethereum/client-go:${GETH_VERSION:-v1.15.5}
expose:
# HTTP server / GraphQL API
- 8545
@@ -61,7 +61,7 @@ services:
- "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
prysm-holesky:
image: prysmaticlabs/prysm-beacon-chain:v5.0.3
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.3.1}
expose:
- 24638
ports:

View File

@@ -2,7 +2,7 @@ version: '3.1'
services:
geth-sepolia:
image: ethereum/client-go:v1.14.3
image: ethereum/client-go:${GETH_VERSION:-v1.14.3}
expose:
# HTTP server / GraphQL API
- 8545
@@ -67,7 +67,7 @@ services:
- "prometheus-scrape.metrics_path=/debug/metrics/prometheus"
prysm-sepolia:
image: prysmaticlabs/prysm-beacon-chain:v5.0.3
image: prysmaticlabs/prysm-beacon-chain:${PRYSM_VERSION:-v5.0.3}
ports:
#- "127.0.0.1:3500:3500"
- "13000:13000"

262
gnosis/mainnet/genesis.json Normal file

File diff suppressed because one or more lines are too long

View File

@@ -24,9 +24,9 @@
"l1_chain_id": 1,
"l2_chain_id": 5000,
"regolith_time": 0,
"batch_inbox_address": "0xff00000000000000000000000000000000000000",
"batch_inbox_address": "0xFFEEDDCcBbAA0000000000000000000000000000",
"deposit_contract_address": "0xc54cb22944f2be476e02decfcd7e3e7d3e15a8fb",
"l1_system_config_address": "0x427ea0710fa5252057f0d88274f7aeb308386caf",
"mantle_da_switch": true,
"datalayr_service_manager_addr": "0x5BD63a7ECc13b955C4F57e3F12A64c10263C14c1"
}
}

View File

@@ -26,6 +26,7 @@ server {
# Disable buffering for real-time traffic
proxy_buffering off;
access_log off;
#set $proxy_read_timeout 3600s;
#set $proxy_send_timeout 3600s;

View File

@@ -1,9 +1,7 @@
version: '3.1'
services:
op-blast-mainnet-fullnode:
image: blastio/blast-geth:v1.1.0-mainnet
image: blastio/blast-geth:mainnet-v1.1.1
volumes:
- blast-mainnet-fullnode:/data
- ./blast-io:/config:rw
@@ -32,7 +30,7 @@ services:
- "GETH_LIGHT_MAXPEERS=0"
- "GETH_MAXPEERS=0"
- "GETH_OVERRIDE_CANYON=0"
- "GETH_OVERRIDE_DELTA=1716843599"
#- "GETH_OVERRIDE_DELTA=1716843599"
- "GETH_OVERRIDE_ECOTONE=1716843599"
expose:
- 9545
@@ -52,7 +50,7 @@ services:
- "traefik.http.routers.blast.middlewares=blast-stripprefix, ipwhitelist"
op-blast-mainnet-fullnode-node:
image: blastio/blast-optimism:v1.1.0-mainnet
image: blastio/blast-optimism:mainnet-v1.1.1
volumes:
- ./blast-io:/config
- .jwtsecret:/jwtsecret
@@ -74,8 +72,8 @@ services:
- "OP_NODE_L2_SKIP_SYNC_START_CHECK=true"
- "OP_NODE_P2P_LISTEN_TCP_PORT=25037"
- "OP_NODE_ROLLUP_CONFIG=/config/mainnet/rollup.json"
- "OP_NODE_OVERRIDE_DELTA=1716843599"
- "OP_NODE_OVERRIDE_ECOTONE=1716843599"
#- "OP_NODE_OVERRIDE_DELTA=1716843599"
#- "OP_NODE_OVERRIDE_ECOTONE=1716843599"
command: >
op-node
depends_on:

View File

@@ -3,7 +3,7 @@ version: '3.1'
services:
op-blast-sepolia:
image: blastio/blast-geth:sepolia
image: blastio/blast-geth:sepolia-v1.2.3
pull_policy: always
volumes:
- blast-sepolia:/data
@@ -33,7 +33,7 @@ services:
- "GETH_LIGHT_MAXPEERS=0"
- "GETH_MAXPEERS=0"
- "GETH_OVERRIDE_CANYON=0"
- "GETH_OVERRIDE_DELTA=1713999600"
#- "GETH_OVERRIDE_DELTA=1713999600"
- "GETH_OVERRIDE_ECOTONE=1713999600"
expose:
- 9545
@@ -53,7 +53,7 @@ services:
- "traefik.http.routers.blast-sepolia.middlewares=blast-sepolia-stripprefix, ipwhitelist"
op-blast-sepolia-node:
image: blastio/blast-optimism:sepolia
image: blastio/blast-optimism:sepolia-v1.2.3
pull_policy: always
volumes:
- ./blast-io:/config
@@ -76,8 +76,8 @@ services:
#- "OP_NODE_L2_SKIP_SYNC_START_CHECK=true"
- "OP_NODE_P2P_LISTEN_TCP_PORT=12018"
- "OP_NODE_ROLLUP_CONFIG=/config/sepolia/rollup.json"
- "OP_NODE_OVERRIDE_DELTA=1713999600"
- "OP_NODE_OVERRIDE_ECOTONE=1713999600"
#- "OP_NODE_OVERRIDE_DELTA=1713999600"
#- "OP_NODE_OVERRIDE_ECOTONE=1713999600"
command: >
op-node
depends_on:

View File

@@ -115,6 +115,7 @@ uDdWRwgiMr"
- "OP_NODE_OVERRIDE_GRANITE=1723478400"
- "OP_NODE_OVERRIDE_HOLOCENE=1732633200"
- "OP_NODE_OVERRICE_PECTRA=1741159776"
- "OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE=1742486400"
networks:
- chains

View File

@@ -1,8 +1,6 @@
version: '3.1'
services:
mantle-fullnode:
image: mantlenetworkio/op-geth:v1.0.2
image: mantlenetworkio/mantle-op-geth:v1.1.1
expose:
- 8545 # RPC / Websocket
- 3851 # P2P TCP (currently unused)
@@ -66,7 +64,7 @@ services:
mantle-fullnode-node:
image: mantlenetworkio/op-node:v1.0.2
image: mantlenetworkio/mantle-op-node:v1.1.1
depends_on:
- mantle-key-generator
- mantle-fullnode
@@ -106,9 +104,9 @@ services:
OP_NODE_PPROF_ADDR: '0.0.0.0'
OP_NODE_P2P_DISCOVERY_PATH: '/op-node/opnode_discovery_db'
OP_NODE_P2P_PEERSTORE_PATH: '/op-node/opnode_peerstore_db'
OP_NODE_INDEXER_SOCKET: 'da-indexer-api.mantle.xyz:80'
OP_NODE_INDEXER_SOCKET: 'da-indexer-api.mantle.xyz:443'
OP_NODE_INDEXER_ENABLE: 'true'
OP_NODE_L2_BACKUP_UNSAFE_SYNC_RPC: ${MANTLE_L2_BACKUP_RPC:-https://rpc.mantle.xyz}
OP_NODE_L2_BACKUP_UNSAFE_SYNC_RPC: https://rpc.mantle.xyz
OP_NODE_P2P_STATIC: '/dns4/peer0.mantle.xyz/tcp/9003/p2p/16Uiu2HAmKVKzUAns2gLhZAz1PYcbnhY3WpxNxUZYeTN1x29tNBAW,/dns4/peer1.mantle.xyz/tcp/9003/p2p/16Uiu2HAm1AiZtVp8f5C8LvpSTAXC6GtwqAVKnB3VLawWYSEBmcFN,/dns4/peer2.mantle.xyz/tcp/9003/p2p/16Uiu2HAm2UHVKiPXpovs8VbbUQVPr7feBAqBJdFsH1z5XDiLEvHT'
OP_NODE_SEQUENCER_ENABLED: 'false'
OP_NODE_P2P_AGENT: 'mantle'

View File

@@ -3,7 +3,7 @@ FROM golang:1.22 as op
WORKDIR /app
ARG OP_REPO=https://github.com/ethereum-optimism/optimism.git
ARG OP_VERSION=v1.10.3
ARG OP_VERSION=v1.12.2
ARG OP_PATCH
RUN curl -fsSL https://github.com/casey/just/releases/download/1.38.0/just-1.38.0-x86_64-unknown-linux-musl.tar.gz | tar -xzf - -C /usr/local/bin
@@ -29,7 +29,7 @@ FROM golang:1.22 as geth
WORKDIR /app
ARG GETH_REPO=https://github.com/ethereum-optimism/op-geth.git
ARG GETH_VERSION=v1.101411.6
ARG GETH_VERSION=v1.101503.1
# avoid depth=1, so the geth build can read tags
RUN git clone $GETH_REPO --branch $GETH_VERSION --single-branch . && \

View File

@@ -55,7 +55,7 @@
"ethereum": {
"id": 1,
"urls": [
"https://ethereum-rpc.publicnode.com"
"https://eth.drpc.org"
],
"default": [
"erigon-mainnet-minimal",
@@ -85,7 +85,7 @@
"open-campus-codex-sepolia": {
"id": 656476,
"urls": [
"https://rpc.open-campus-codex.gelato.digital"
"https://open-campus-codex-sepolia.drpc.org"
],
"default": ["arb-opencampuscodex"]
},
@@ -176,7 +176,7 @@
"arbitrum-sepolia": {
"id": 421614,
"urls": [
"https://arbitrum-sepolia.blockpi.network/v1/rpc/public"
"https://arbitrum-sepolia.drpc.org"
],
"default": [
"arbitrum-sepolia-fullnode",
@@ -215,7 +215,7 @@
},
"tron": {
"id": 728126428,
"urls": ["https://tron-evm-rpc.publicnode.com"],
"urls": ["https://api.trongrid.io/jsonrpc"],
"default": ["tron"]
},
"viction": {
@@ -286,7 +286,7 @@
"fantom-testnet": {
"id": 4002,
"urls": [
"https://fantom-testnet.public.blastapi.io"
"https://rpc.testnet.fantom.network"
],
"default": [
"fantom-testnet"
@@ -436,6 +436,7 @@
"bsc": {
"id": 56,
"urls": [
"https://binance.nodereal.io",
"https://bsc.drpc.org"
],
"default": [

View File

@@ -2,10 +2,11 @@ version: '3.1'
services:
gnosis-reth:
image: stakesquid/reth-gnosis:latest
image: ghcr.io/gnosischain/reth_gnosis@sha256:2107522cb60a052df3039c54d215c2f861b4107193829687f80e3e07653635a9
user: root
volumes:
- "reth-gnosis:/root/.local/share/reth/gnosis"
- "./gnosis/mainnet/genesis.json:/genesis.json:ro"
- "/slowdisk:/slowdisk"
- ".jwtsecret:/jwtsecret"
expose:
@@ -16,7 +17,7 @@ services:
- "23865:23865"
- "23865:23865/udp"
restart: unless-stopped
command: node --chain gnosis --rpc-max-connections 429496729 --metrics 0.0.0.0:9001 --http --http.addr 0.0.0.0 --http.port 8545 --ws --ws.addr 0.0.0.0 --ws.port 8545 --ws.origins '*' --port 23865 --discovery.port 23865 --authrpc.addr 0.0.0.0 --authrpc.jwtsecret /jwtsecret --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
command: node --chain /genesis.json --rpc-max-connections 429496729 --metrics 0.0.0.0:9001 --http --http.addr 0.0.0.0 --http.port 8545 --ws --ws.addr 0.0.0.0 --ws.port 8545 --ws.origins '*' --port 23865 --discovery.port 23865 --authrpc.addr 0.0.0.0 --authrpc.jwtsecret /jwtsecret --http.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" --ws.api "debug,eth,net,trace,txpool,web3,rpc,reth,admin" --http.corsdomain '*' --rpc.max-logs-per-response 1100000 --rpc.gascap 600000000
stop_grace_period: 1m
labels:
- "prometheus-scrape.enabled=true"

View File

@@ -1,6 +1,6 @@
services:
rsk-testnet-fullnode:
image: rsksmart/rskj:ARROWHEAD-6.5.0
image: rsksmart/rskj:LOVELL-7.0.0
stop_grace_period: 5m
user: root
ulimits:

View File

@@ -1,6 +1,6 @@
services:
rsk-fullnode:
image: rsksmart/rskj:ARROWHEAD-6.5.0
image: rsksmart/rskj:LOVELL-7.0.0
stop_grace_period: 5m
user: root
ulimits:

View File

@@ -34,9 +34,18 @@ for part in "${parts[@]}"; do
if $include; then
result=$($BASEPATH/sync-status.sh "${part%.yml}")
if [ $? -ne 0 ]; then
if [[ "$result" == *"syncing"* ]]; then
# Allow exit status 1 if result contains "syncing"
true
elif [[ "$result" == *"lagging"* ]]; then
# Allow exit status 1 if result contains "syncing"
true
else
any_failure=true
fi
fi
echo "${part%.yml}: $result"
fi

View File

@@ -1,12 +1,12 @@
#!/bin/bash
IPS=$(/usr/bin/docker exec -t wireguard curl 10.13.13.1:5000/storage | jq -r '[.[].ip]|join(",")' | sed 's/\n//g')
DIRTY_IPS=$(/usr/bin/docker exec -t wireguard curl 10.13.13.1:5000/storage | jq -r '[.[].ip]|join(",")' | sed 's/\n//g')
cleaned_ips=$(echo "$IPS" | sed -E 's/[^0-9.,]//g' | sed 's/,,*/,/g' | sed 's/,$//')
IPS=$(echo "$DIRTY_IPS" | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}' | paste -sd "," -)
if [ -z "$cleaned_ips" ]; then
if [ -z "$IPS" ]; then
echo "whitelist empty"
else
sed -i.bak "s/WHITELIST=.*/WHITELIST=${cleaned_ips},192\.168\.0\.0\/16/g" /root/rpc/.env
sed -i.bak "s/WHITELIST=.*/WHITELIST=${IPS},192\.168\.0\.0\/16/g" /root/rpc/.env
cd /root/rpc && docker compose up -d traefik
fi