#!/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