Files
proxmox/rpc-translator-138/scripts/fix-all-issues.sh
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

134 lines
6.1 KiB
Bash

#!/bin/bash
# Fix all issues: keys, allowlist, health checks
# Usage: ./scripts/fix-all-issues.sh
set -e
PROXMOX_HOST="192.168.11.11"
WEB3SIGNER_IP="192.168.11.111"
WEB3SIGNER_CONTAINER="107"
echo "═══════════════════════════════════════════════════════════════"
echo "🔧 FIXING ALL ISSUES"
echo "═══════════════════════════════════════════════════════════════"
echo ""
# Step 1: Fix Web3Signer keys
echo "Step 1: Fixing Web3Signer keys..."
echo " - Fixing permissions..."
ssh root@$PROXMOX_HOST "pct exec $WEB3SIGNER_CONTAINER -- bash -c 'for f in /opt/web3signer/data/keys/*.json; do [ -f \"\$f\" ] && chmod 644 \"\$f\"; done'" || echo " ⚠️ Permission fix had issues"
echo " - Restarting Web3Signer..."
ssh root@$PROXMOX_HOST "pct exec $WEB3SIGNER_CONTAINER -- systemctl restart web3signer && sleep 5" || echo " ⚠️ Restart had issues"
echo " - Checking keys..."
sleep 3
KEYS=$(curl -s http://$WEB3SIGNER_IP:9000/api/v1/eth1/publicKeys 2>/dev/null || echo "[]")
if [ "$KEYS" != "[]" ] && [ -n "$KEYS" ]; then
KEY_COUNT=$(echo "$KEYS" | jq '. | length' 2>/dev/null || echo "0")
if [ "$KEY_COUNT" -gt 0 ]; then
echo "$KEY_COUNT key(s) loaded!"
ADDRESSES=$(echo "$KEYS" | jq -r '.[]' | tr '\n' ',' | sed 's/,$//')
echo "$ADDRESSES" > /tmp/web3signer-addresses.txt
else
echo " ⚠️ Keys not loaded yet"
exit 1
fi
else
echo " ⚠️ No keys found"
echo " Checking logs..."
ssh root@$PROXMOX_HOST "pct exec $WEB3SIGNER_CONTAINER -- journalctl -u web3signer.service -n 20 --no-pager" 2>&1 | tail -10
exit 1
fi
# Step 2: Configure allowlist
echo ""
echo "Step 2: Configuring wallet allowlist..."
if [ -f /tmp/web3signer-addresses.txt ]; then
ADDRESSES=$(cat /tmp/web3signer-addresses.txt)
cd "$(dirname "$0")/.."
./scripts/configure-wallet-allowlist.sh "$ADDRESSES" || echo " ⚠️ Allowlist configuration had issues"
else
echo " ⚠️ Addresses file not found"
fi
# Step 3: Check health endpoint issues
echo ""
echo "Step 3: Diagnosing health endpoint issues..."
for IP in 192.168.11.240 192.168.11.241 192.168.11.242; do
echo ""
echo "=== $IP ==="
# Check if service is running
SERVICE_STATUS=$(ssh -i ~/.ssh/proxmox_translator -o StrictHostKeyChecking=no root@$IP "systemctl is-active rpc-translator-138.service" 2>/dev/null || echo "inactive")
echo " Service: $SERVICE_STATUS"
if [ "$SERVICE_STATUS" = "active" ]; then
# Check if port is listening
PORT_LISTEN=$(ssh -i ~/.ssh/proxmox_translator -o StrictHostKeyChecking=no root@$IP "netstat -tlnp 2>/dev/null | grep ':9545' || ss -tlnp 2>/dev/null | grep ':9545'" 2>/dev/null || echo "")
if [ -n "$PORT_LISTEN" ]; then
echo " ✅ Port 9545 is listening"
else
echo " ⚠️ Port 9545 not listening"
fi
# Test health endpoint with timeout
HEALTH_RESPONSE=$(curl -s -m 10 http://$IP:9545/health 2>&1 || echo "ERROR")
if echo "$HEALTH_RESPONSE" | grep -q "status"; then
echo " ✅ Health endpoint responding"
echo "$HEALTH_RESPONSE" | jq '.status' 2>/dev/null || echo "$HEALTH_RESPONSE"
else
echo " ⚠️ Health endpoint not responding correctly"
echo " Response: $HEALTH_RESPONSE"
# Check logs for errors
echo " Checking recent logs..."
ssh -i ~/.ssh/proxmox_translator -o StrictHostKeyChecking=no root@$IP "journalctl -u rpc-translator-138.service -n 30 --no-pager" 2>&1 | grep -i "error\|health\|exception" | tail -5 || echo " No errors in logs"
fi
# Test RPC endpoint
RPC_RESPONSE=$(curl -s -m 5 -X POST http://$IP:9545 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' 2>&1)
if echo "$RPC_RESPONSE" | grep -q "result"; then
CHAIN_ID=$(echo "$RPC_RESPONSE" | jq -r '.result' 2>/dev/null || echo "unknown")
echo " ✅ RPC working (ChainID: $CHAIN_ID)"
else
echo " ⚠️ RPC not working"
echo " Response: $RPC_RESPONSE" | head -3
fi
else
echo " ⚠️ Service not active, attempting restart..."
ssh -i ~/.ssh/proxmox_translator -o StrictHostKeyChecking=no root@$IP "systemctl restart rpc-translator-138.service && sleep 3" 2>&1 || echo " ⚠️ Restart failed"
fi
done
# Step 4: Summary
echo ""
echo "═══════════════════════════════════════════════════════════════"
echo "📊 SUMMARY"
echo "═══════════════════════════════════════════════════════════════"
echo ""
# Check Web3Signer
KEYS=$(curl -s http://$WEB3SIGNER_IP:9000/api/v1/eth1/publicKeys 2>/dev/null || echo "[]")
if [ "$KEYS" != "[]" ]; then
KEY_COUNT=$(echo "$KEYS" | jq '. | length' 2>/dev/null || echo "0")
echo "Web3Signer: ✅ $KEY_COUNT key(s) loaded"
else
echo "Web3Signer: ⚠️ No keys loaded"
fi
# Check translators
for IP in 192.168.11.240 192.168.11.241 192.168.11.242; do
SERVICE_STATUS=$(ssh -i ~/.ssh/proxmox_translator -o StrictHostKeyChecking=no root@$IP "systemctl is-active rpc-translator-138.service" 2>/dev/null || echo "unknown")
HEALTH=$(curl -s -m 5 http://$IP:9545/health 2>/dev/null | jq -r '.status' 2>/dev/null || echo "unknown")
RPC=$(curl -s -m 5 -X POST http://$IP:9545 -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' 2>/dev/null | jq -r '.result' 2>/dev/null || echo "unknown")
echo "$IP: Service=$SERVICE_STATUS, Health=$HEALTH, RPC=$RPC"
done
echo ""
echo "✅ Diagnostic complete!"