Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
51 lines
2.0 KiB
Bash
51 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
# Check explorer indexer lag; if above threshold, run fix-explorer-indexer-lag.sh (restart Blockscout).
|
|
# For use from cron. Run from project root. Requires LAN/SSH to r630-02 for the fix.
|
|
# Usage: bash scripts/maintenance/check-and-fix-explorer-lag.sh
|
|
# Env: EXPLORER_INDEXER_LAG_THRESHOLD (default 500)
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
|
|
|
|
IP_RPC_2201="${RPC_2201:-192.168.11.221}"
|
|
IP_BLOCKSCOUT="${IP_BLOCKSCOUT:-192.168.11.140}"
|
|
BLOCKSCOUT_API_PORT="${BLOCKSCOUT_API_PORT:-4000}"
|
|
EXPLORER_INDEXER_LAG_THRESHOLD="${EXPLORER_INDEXER_LAG_THRESHOLD:-500}"
|
|
|
|
get_rpc_block() {
|
|
local hex
|
|
hex=$(curl -sf --max-time 10 -X POST -H "Content-Type: application/json" \
|
|
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
|
|
"http://${IP_RPC_2201}:8545" 2>/dev/null | sed -n 's/.*"result":"\(0x[0-9a-fA-F]*\)".*/\1/p')
|
|
[ -n "$hex" ] && echo $((hex)) || true
|
|
}
|
|
|
|
get_explorer_block() {
|
|
local body block
|
|
body=$(curl -sf --max-time 10 "http://${IP_BLOCKSCOUT}:${BLOCKSCOUT_API_PORT}/api/v2/stats" 2>/dev/null || true)
|
|
[ -z "$body" ] && return
|
|
block=$(echo "$body" | sed -n 's/.*"total_blocks"\s*:\s*"\([0-9]*\)".*/\1/p' | head -1)
|
|
[ -z "$block" ] && block=$(echo "$body" | sed -n 's/.*"total_blocks"\s*:\s*\([0-9]*\).*/\1/p' | head -1)
|
|
[ -n "$block" ] && echo "$block"
|
|
}
|
|
|
|
rpc_block=$(get_rpc_block)
|
|
explorer_block=$(get_explorer_block)
|
|
|
|
if [ -z "$rpc_block" ] || [ -z "$explorer_block" ]; then
|
|
echo "$(date -Iseconds) SKIP (RPC or Blockscout unreachable)"
|
|
exit 0
|
|
fi
|
|
|
|
lag=$((rpc_block - explorer_block))
|
|
if [ "$lag" -le "${EXPLORER_INDEXER_LAG_THRESHOLD}" ] 2>/dev/null; then
|
|
echo "$(date -Iseconds) OK lag=$lag (threshold=${EXPLORER_INDEXER_LAG_THRESHOLD})"
|
|
exit 0
|
|
fi
|
|
|
|
echo "$(date -Iseconds) LAG $lag > ${EXPLORER_INDEXER_LAG_THRESHOLD} — running fix"
|
|
bash "$PROJECT_ROOT/scripts/fix-explorer-indexer-lag.sh" 2>&1 || true
|