4NK_node/start_3_relays_docker.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

88 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
set -e
echo "🚀 Démarrage des 3 relais avec Docker"
echo "======================================"
echo ""
# Attendre que Bitcoin Core soit prêt
echo "⏳ Attente du démarrage de Bitcoin Core..."
sleep 30
# Fonction pour démarrer un relais
start_relay() {
local relay_num=$1
local host_port=$2
local conf_file=".conf.docker.relay${relay_num}"
echo "🚀 Démarrage du relais ${relay_num}..."
docker run -d \
--name "sdk_relay_${relay_num}" \
--network 4nk_node_btcnet \
--network-alias "sdk_relay_${relay_num}" \
-p "${host_port}:8090" \
-p "$((host_port+1)):8091" \
-v bitcoin_data:/home/bitcoin/.bitcoin \
-v "/home/desk/Téléchargements/code/4NK/4NK_node/bitcoin/bitcoin.conf:/home/bitcoin/.bitcoin/bitcoin.conf" \
-v "sdk_relay_${relay_num}_data:/home/bitcoin/.4nk" \
-v "/home/desk/Téléchargements/code/4NK/4NK_node/sdk_relay/${conf_file}:/home/bitcoin/.conf.docker" \
-e RUST_LOG=debug,bitcoincore_rpc=trace \
-e HOME=/home/bitcoin \
-e BITCOIN_COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie \
-e ENABLE_SYNC_TEST=1 \
4nk_node_sdk_relay \
/bin/sh -c "
cp /home/bitcoin/.conf.docker /home/bitcoin/.conf &&
cp /home/bitcoin/.bitcoin/signet/.cookie /home/bitcoin/.4nk/bitcoin.cookie &&
chmod 600 /home/bitcoin/.4nk/bitcoin.cookie &&
echo 'Configuration loaded:' &&
cat /home/bitcoin/.conf &&
echo 'Testing DNS resolution:' &&
getent hosts bitcoin &&
echo 'Testing connectivity:' &&
curl -s --connect-timeout 5 http://bitcoin:18443 &&
echo 'Bitcoin accessible via curl' &&
echo 'Starting sdk_relay_${relay_num}:' &&
/usr/local/bin/sdk_relay --config .conf"
}
# Démarrer les 3 relais
start_relay 1 8090
sleep 10
start_relay 2 8092
sleep 10
start_relay 3 8094
sleep 10
echo ""
echo "📊 État des conteneurs:"
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
echo ""
echo "🔍 Vérification de la santé des relais..."
for i in 1 2 3; do
echo "Relais $i:"
docker exec sdk_relay_$i /usr/local/bin/healthcheck.sh 2>/dev/null || echo " ⏳ Relais $i en cours de démarrage..."
done
echo ""
echo "📡 Surveillance des logs de synchronisation..."
echo "💡 Les relais vont maintenant:"
echo " - Se découvrir mutuellement"
echo " - Partager leurs listes de relais"
echo " - Synchroniser leurs états"
echo " - Créer un réseau mesh"
echo ""
echo "🛑 Appuyez sur Ctrl+C pour arrêter la surveillance"
echo ""
# Surveillance des logs de synchronisation
docker logs -f sdk_relay_1 sdk_relay_2 sdk_relay_3 2>&1 | grep -E "(🧪|📊|🏥|📈|🔄|📈|🎉|❌|Relay|Sync|Mesh|Topology|🔍|✅)" || true