Files
proxmox/scripts/omnl/bcp-rpc-failover-smoke.sh
defiQUG 7ac74f432b chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates

Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).

Made-with: Cursor
2026-03-31 22:31:39 -07:00

49 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Append a real RPC reachability line (primary, optional secondary) — minimal execution evidence, not full DR.
# This is a smoke check: eth_blockNumber over HTTP JSON-RPC. For data-centre DR, attach separate drill logs.
#
# Env (after load-project-env):
# RPC_URL_138 — primary
# RPC_URL_138_SECONDARY — optional fallback URL
# JVMTM_BCP_LOG — default output/jvmtm-evidence/bcp/failover-execution-log.txt
set -eo pipefail
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
# shellcheck source=scripts/lib/load-project-env.sh
set +u
source "${REPO_ROOT}/scripts/lib/load-project-env.sh"
set -euo pipefail
LOG="${JVMTM_BCP_LOG:-${REPO_ROOT}/output/jvmtm-evidence/bcp/failover-execution-log.txt}"
mkdir -p "$(dirname "$LOG")"
P="${RPC_URL_138:-http://192.168.11.211:8545}"
S="${RPC_URL_138_SECONDARY:-}"
TS="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
rpc_ping() {
local url="$1"
curl -sS -m 8 -X POST "$url" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' 2>/dev/null | jq -r '.result // empty' || true
}
R1="$(rpc_ping "$P")"
if [[ -n "$R1" ]]; then
echo "${TS} primary_ok rpc=${P} block=${R1}" >> "$LOG"
echo "primary_ok $R1" >&2
exit 0
fi
echo "${TS} primary_fail rpc=${P}" >> "$LOG"
if [[ -n "$S" ]]; then
R2="$(rpc_ping "$S")"
if [[ -n "$R2" ]]; then
echo "${TS} secondary_ok rpc=${S} block=${R2} (after primary fail)" >> "$LOG"
echo "secondary_ok $R2" >&2
exit 0
fi
echo "${TS} secondary_fail rpc=${S}" >> "$LOG"
fi
echo "FAIL: no RPC responded" >&2
exit 1