Files
proxmox/scripts/archive/consolidated/fix/fix-node-lists-final.sh
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- 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>
2026-02-12 15:46:57 -08:00

111 lines
4.2 KiB
Bash
Executable File

#!/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
# Final Fix: Remove Old Nodes, Keep Valid, Collect Missing
# Simplified approach to clean and update node lists
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
STATIC_NODES_FILE="$PROJECT_ROOT/smom-dbis-138/config/static-nodes.json"
PERMISSIONED_NODES_FILE="$PROJECT_ROOT/smom-dbis-138-proxmox/config/permissioned-nodes.json"
# Valid IPs to keep (current configuration)
VALID_IPS=(
"${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-192.168.11.100}}}}" # Validator 1000
"${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-192.168.11.101}}}}" # Validator 1001
"${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-192.168.11.102}}}}" # Validator 1002
"${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-192.168.11.103}}}}" # Validator 1003
"${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-192.168.11.104}}}}" # Validator 1004
"${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-192.168.11.150}}}}" # Sentry 1500
"${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-192.168.11.151}}}}" # Sentry 1501
"${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-192.168.11.152}}}}" # Sentry 1502
"${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-192.168.11.153}}}}" # Sentry 1503
"${RPC_CORE_1:-${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-192.168.11.21}}}1}" # RPC 2101
"${RPC_THIRDWEB_PRIMARY:-192.168.11.240}" # RPC 2400
"${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-192.168.11.241}}}}" # RPC 2401
"${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-192.168.11.242}}}}" # RPC 2402
"${RPC_ALLTRA_1:-192.168.11.250}" # RPC 2500
"${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-192.168.11.251}}}}" # RPC 2501
"${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-192.168.11.252}}}}" # RPC 2502
"192.168.11.253" # RPC 2503
"192.168.11.254" # RPC 2504
"${IP_VAULT_PHOENIX_2:-192.168.11.201}" # RPC 2505
"192.168.11.202" # RPC 2506
"192.168.11.203" # RPC 2507
"192.168.11.204" # RPC 2508
)
echo "=== Filtering Node Lists ==="
echo ""
# Create associative array of valid IPs
declare -A VALID_IP_MAP
for ip in "${VALID_IPS[@]}"; do
VALID_IP_MAP["$ip"]=1
done
# Parse current file and keep only valid IPs
declare -A KEPT_ENODES
KEPT_COUNT=0
REMOVED_COUNT=0
while IFS= read -r line; do
enode=$(echo "$line" | grep -o 'enode://[^"]*' || echo "")
if [ -n "$enode" ]; then
ip=$(echo "$enode" | sed -n 's/.*@\([0-9.]*\):.*/\1/p')
if [ -n "${VALID_IP_MAP[$ip]}" ]; then
KEPT_ENODES["$ip"]="$enode"
((KEPT_COUNT++))
else
echo "Removing old/migrated IP: $ip"
((REMOVED_COUNT++))
fi
fi
done < <(cat "$STATIC_NODES_FILE" | jq -r '.[]' 2>/dev/null || grep -o 'enode://[^"]*' "$STATIC_NODES_FILE" 2>/dev/null || echo "")
echo ""
echo "Kept: $KEPT_COUNT enodes"
echo "Removed: $REMOVED_COUNT old/migrated enodes"
echo ""
# Generate cleaned file
OUTPUT_FILE="${STATIC_NODES_FILE}.fixed"
echo "[" > "$OUTPUT_FILE"
FIRST=true
for ip in "${VALID_IPS[@]}"; do
if [ -n "${KEPT_ENODES[$ip]}" ]; then
if [ "$FIRST" = false ]; then
echo "," >> "$OUTPUT_FILE"
fi
echo -n " \"${KEPT_ENODES[$ip]}\"" >> "$OUTPUT_FILE"
FIRST=false
fi
done
echo "" >> "$OUTPUT_FILE"
echo "]" >> "$OUTPUT_FILE"
# Verify and update
if jq empty "$OUTPUT_FILE" 2>/dev/null; then
BACKUP="${STATIC_NODES_FILE}.backup.$(date +%Y%m%d_%H%M%S)"
cp "$STATIC_NODES_FILE" "$BACKUP"
cp "$OUTPUT_FILE" "$STATIC_NODES_FILE"
cp "$OUTPUT_FILE" "$PERMISSIONED_NODES_FILE"
echo "✓ Files updated (backup: $BACKUP)"
echo "✓ Kept $KEPT_COUNT enodes, removed $REMOVED_COUNT old entries"
else
echo "✗ Generated invalid JSON"
exit 1
fi