86 lines
2.8 KiB
Bash
86 lines
2.8 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
# Load IP configuration
|
||
|
|
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
|
||
|
|
|
||
|
|
|
||
|
|
# Complete fix for all issues: Explorer 502 + RPC peer connectivity
|
||
|
|
# Usage: Run from Proxmox host: ./fix-all-issues-complete.sh
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
echo "=========================================="
|
||
|
|
echo "Fix All Issues - Complete"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Part 1: Fix Explorer
|
||
|
|
echo "=========================================="
|
||
|
|
echo "PART 1: Fixing Explorer 502 Errors"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
./scripts/fix-blockscout-nginx-complete.sh
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=========================================="
|
||
|
|
echo "PART 2: Analyzing RPC Node Peer Counts"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
./scripts/analyze-all-rpc-peers.sh
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=========================================="
|
||
|
|
echo "PART 3: Fixing ThirdWeb Peer Connectivity"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
./scripts/fix-thirdweb-peer-connectivity.sh
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=========================================="
|
||
|
|
echo "Complete Fix Summary"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Final verification
|
||
|
|
echo "=== Final Verification ==="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Test explorer API
|
||
|
|
EXTERNAL_TEST=$(curl -s -o /dev/null -w '%{http_code}' --connect-timeout 5 "https://explorer.d-bis.org/api/v2/stats" 2>/dev/null || echo "000")
|
||
|
|
if [ "$EXTERNAL_TEST" = "200" ]; then
|
||
|
|
echo "✅ Explorer API: WORKING (HTTP $EXTERNAL_TEST)"
|
||
|
|
else
|
||
|
|
echo "❌ Explorer API: NOT WORKING (HTTP $EXTERNAL_TEST)"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check peer counts
|
||
|
|
echo ""
|
||
|
|
echo "Checking peer counts..."
|
||
|
|
# Note: ThirdWeb RPC IPs (240-242) not yet in config
|
||
|
|
for ip in ${RPC_THIRDWEB_PRIMARY:-192.168.11.240} ${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-192.168.11.241}}}} ${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-192.168.11.242}}}}; do
|
||
|
|
PEER_RESPONSE=$(curl -s -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' http://$ip:8545 2>/dev/null || echo "")
|
||
|
|
if [ -n "$PEER_RESPONSE" ]; then
|
||
|
|
PEER_HEX=$(echo "$PEER_RESPONSE" | grep -o '"result":"[^"]*"' | cut -d'"' -f4)
|
||
|
|
if [ -n "$PEER_HEX" ]; then
|
||
|
|
PEER_NUM=$(printf "%d" $PEER_HEX 2>/dev/null || echo "0")
|
||
|
|
if [ "$PEER_NUM" -ge 5 ]; then
|
||
|
|
echo "✅ $ip: $PEER_NUM peers (Good)"
|
||
|
|
elif [ "$PEER_NUM" -ge 3 ]; then
|
||
|
|
echo "⚠️ $ip: $PEER_NUM peers (Acceptable)"
|
||
|
|
else
|
||
|
|
echo "❌ $ip: $PEER_NUM peers (Low - should be 5-7)"
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=========================================="
|
||
|
|
echo "Complete!"
|
||
|
|
echo "=========================================="
|