4NK_node/monitor_sync.sh
Nicolas Cantu b935cbab20 Réorganisation complète : tests, documentation et nettoyage
- Réorganisation des tests par catégorie (unit, integration, connectivity, external)
- Création de scripts d'exécution automatisés pour les tests
- Création de guides techniques complets (ARCHITECTURE.md, API.md)
- Transfert des informations depuis specs/ vers docs/
- Nettoyage et archivage des fichiers obsolètes
- Documentation complète des tests avec exemples
- Scripts de maintenance et nettoyage automatique
- Structure professionnelle prête pour l'évolution
2025-08-25 14:13:26 +02:00

100 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
set -e
echo "🔍 Surveillance de la synchronisation entre 3 relais"
echo "=================================================="
echo ""
# Fonction pour vérifier si Bitcoin Core a terminé l'IBD
check_bitcoin_ready() {
local bitcoin_status=$(docker exec bitcoin-signet bitcoin-cli -signet getblockchaininfo 2>/dev/null | grep -o '"initialblockdownload":false' || echo "still_downloading")
if [[ "$bitcoin_status" == "still_downloading" ]]; then
return 1
else
return 0
fi
}
# Fonction pour afficher les logs de synchronisation
show_sync_logs() {
echo "📡 Logs de synchronisation des relais :"
echo "----------------------------------------"
for i in {1..3}; do
echo "🔸 Relais $i :"
docker logs sdk_relay_$i 2>&1 | grep -E "(🧪|📊|🏥|📈|🔄|🎉|❌|Relay|Sync|Mesh|Topology|🔍|✅|discover|relay)" | tail -3 || echo " Aucun message de synchronisation trouvé"
echo ""
done
}
# Fonction pour vérifier la connectivité entre relais
check_relay_connectivity() {
echo "🌐 Vérification de la connectivité entre relais :"
echo "------------------------------------------------"
for i in {1..3}; do
echo "🔸 Relais $i (port $((8090 + i - 1))) :"
if curl -s http://localhost:$((8090 + i - 1)) >/dev/null 2>&1; then
echo " ✅ Port WebSocket accessible"
else
echo " ❌ Port WebSocket non accessible"
fi
done
echo ""
}
# Fonction pour afficher les métriques de synchronisation
show_sync_metrics() {
echo "📊 Métriques de synchronisation :"
echo "--------------------------------"
for i in {1..3}; do
echo "🔸 Relais $i :"
docker logs sdk_relay_$i 2>&1 | grep -E "(SyncMetrics|known_relays|mesh_connections|sync_cache)" | tail -2 || echo " Aucune métrique trouvée"
echo ""
done
}
# Attendre que Bitcoin Core soit prêt
echo "⏳ Attente que Bitcoin Core termine le téléchargement initial..."
while ! check_bitcoin_ready; do
echo " Bitcoin Core télécharge encore les blocs..."
sleep 30
done
echo "✅ Bitcoin Core est prêt !"
echo ""
# Attendre un peu pour que les relais se stabilisent
echo "⏳ Attente de stabilisation des relais..."
sleep 10
# Boucle de surveillance
echo "🚀 Démarrage de la surveillance de synchronisation..."
echo "Appuyez sur Ctrl+C pour arrêter"
echo ""
while true; do
clear
echo "🔍 Surveillance de la synchronisation entre 3 relais"
echo "=================================================="
echo "$(date)"
echo ""
# Vérifier la connectivité
check_relay_connectivity
# Afficher les logs de synchronisation
show_sync_logs
# Afficher les métriques
show_sync_metrics
echo "🔄 Actualisation dans 30 secondes..."
sleep 30
done