Compare commits
1 Commits
cf91b6f14d
...
zircuit-co
| Author | SHA1 | Date | |
|---|---|---|---|
| b15af199d4 |
@@ -49,12 +49,12 @@ port = 8080
|
|||||||
peer-chain-height-polling-interval = "5s"
|
peer-chain-height-polling-interval = "5s"
|
||||||
el-sync-status-refresh-interval = "5s"
|
el-sync-status-refresh-interval = "5s"
|
||||||
sync-target-selection = "Highest"
|
sync-target-selection = "Highest"
|
||||||
desync-tolerance = 64
|
desync-tolerance = 100000
|
||||||
|
|
||||||
[syncing.download]
|
[syncing.download]
|
||||||
block-range-request-timeout = "10s"
|
block-range-request-timeout = "10s"
|
||||||
blocks-batch-size = 5
|
blocks-batch-size = 10
|
||||||
blocks-parallelism = 2
|
blocks-parallelism = 10
|
||||||
max-retries = 5
|
max-retries = 5
|
||||||
backoff-delay = "1s"
|
backoff-delay = "1s"
|
||||||
use-unconditional-random-download-peer = false
|
use-unconditional-random-download-peer = false
|
||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
zircuit-garfield-op-reth-pruned:
|
zircuit-garfield-op-reth-pruned:
|
||||||
image: ${ZIRCUIT_RETH_IMAGE:-ghcr.io/conduitxyz/conduit-op-reth}:${ZIRCUIT_GARFIELD_RETH_VERSION:-v2.1.2}
|
image: ${ZIRCUIT_RETH_IMAGE:-ghcr.io/conduitxyz/conduit-op-reth}:${ZIRCUIT_GARFIELD_RETH_VERSION:-v2.1.1}
|
||||||
sysctls:
|
sysctls:
|
||||||
# TCP Performance
|
# TCP Performance
|
||||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
zircuit-mainnet-op-reth-pruned:
|
zircuit-mainnet-op-reth-pruned:
|
||||||
image: ${ZIRCUIT_RETH_IMAGE:-ghcr.io/conduitxyz/conduit-op-reth}:${ZIRCUIT_MAINNET_RETH_VERSION:-v2.1.2}
|
image: ${ZIRCUIT_RETH_IMAGE:-ghcr.io/conduitxyz/conduit-op-reth}:${ZIRCUIT_MAINNET_RETH_VERSION:-v2.1.1}
|
||||||
sysctls:
|
sysctls:
|
||||||
# TCP Performance
|
# TCP Performance
|
||||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
|
|||||||
@@ -3441,6 +3441,7 @@
|
|||||||
"syncing_lag": 40,
|
"syncing_lag": 40,
|
||||||
"urls": [
|
"urls": [
|
||||||
"https://rpc.testnet.chain.robinhood.com/rpc",
|
"https://rpc.testnet.chain.robinhood.com/rpc",
|
||||||
|
"https://robinhood-sepolia-rpc.publicnode.com",
|
||||||
"https://robinhood-testnet.drpc.org"
|
"https://robinhood-testnet.drpc.org"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -22,25 +22,26 @@ check_sync_status() {
|
|||||||
# Cap the whole per-node branch (belt-and-suspenders over check-health's own cap), so no single
|
# Cap the whole per-node branch (belt-and-suspenders over check-health's own cap), so no single
|
||||||
# node can ever block the 'wait' below — that is what wedged the fleet rpc-update for hours.
|
# node can ever block the 'wait' below — that is what wedged the fleet rpc-update for hours.
|
||||||
result=$(timeout "${SYNC_TIMEOUT:-60}" "$BASEPATH/sync-status.sh" "${part%.yml}")
|
result=$(timeout "${SYNC_TIMEOUT:-60}" "$BASEPATH/sync-status.sh" "${part%.yml}")
|
||||||
# Capture the status IMMEDIATELY. Any command in between - including a plain
|
|
||||||
# assignment like `code=0` - overwrites $? with its own (always 0) status.
|
|
||||||
rc=$?
|
|
||||||
|
|
||||||
code=0
|
code=0
|
||||||
if [ "$rc" -ne 0 ]; then
|
|
||||||
if [[ "$result" == *"syncing"* ]] || [[ "$result" == *"lagging"* ]]; then
|
if [ $? -ne 0 ]; then
|
||||||
# sync-status exits 1 for syncing/lagging; those are expected states,
|
if [[ "$result" == *"syncing"* ]]; then
|
||||||
# not failures.
|
# Allow exit status 1 if result contains "syncing"
|
||||||
|
code=0
|
||||||
|
elif [[ "$result" == *"lagging"* ]]; then
|
||||||
|
# Allow exit status 1 if result contains "lagging"
|
||||||
code=0
|
code=0
|
||||||
else
|
else
|
||||||
|
any_failure=true
|
||||||
code=1
|
code=1
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
code=1
|
||||||
|
any_failure=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "${part%.yml}: $result"
|
echo "${part%.yml}: $result"
|
||||||
# NOTE: do NOT set any_failure here. This function runs backgrounded (`&`), so
|
|
||||||
# it executes in a subshell and any variable it sets is discarded. Failure is
|
|
||||||
# propagated to the parent through this return code, collected by `wait` below.
|
|
||||||
return "$code"
|
return "$code"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,12 +74,9 @@ for part in "${parts[@]}"; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Wait for all background processes to finish. `wait` runs in the PARENT shell, so
|
# Wait for all background processes to finish
|
||||||
# this is where a failing node can actually flip any_failure - the checker itself
|
|
||||||
# cannot, being a subshell. Previously the status was discarded here, which silently
|
|
||||||
# neutered the exit code.
|
|
||||||
for pid in "${pids[@]}"; do
|
for pid in "${pids[@]}"; do
|
||||||
wait "$pid" || any_failure=true
|
wait "$pid"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Fenced nodes (fleet-state maintenance windows) are dropped from COMPOSE_FILE
|
# Fenced nodes (fleet-state maintenance windows) are dropped from COMPOSE_FILE
|
||||||
|
|||||||
Reference in New Issue
Block a user