# ⚡ Référence Rapide - 4NK Node Référence rapide des commandes essentielles pour l'infrastructure 4NK Node. ## 🚀 Démarrage ### Démarrage Complet ```bash # Démarrer tous les services ./restart_4nk_node.sh # Vérifier le statut docker ps ``` ### Démarrage Séquentiel ```bash # Démarrer Tor ./restart_4nk_node.sh -t # Démarrer Bitcoin Core ./restart_4nk_node.sh -b # Démarrer Blindbit ./restart_4nk_node.sh -l # Démarrer les relais ./restart_4nk_node.sh -r ``` ### Options du Script de Redémarrage ```bash ./restart_4nk_node.sh -h # Aide ./restart_4nk_node.sh -s # Arrêter ./restart_4nk_node.sh -c # Nettoyer ./restart_4nk_node.sh -n # Créer réseau ./restart_4nk_node.sh -t # Démarrer Tor ./restart_4nk_node.sh -b # Démarrer Bitcoin ./restart_4nk_node.sh -l # Démarrer Blindbit ./restart_4nk_node.sh -r # Démarrer relais ./restart_4nk_node.sh -v # Vérifier statut ``` ## 📊 Monitoring ### Statut des Services ```bash # Statut de tous les services docker ps # Statut avec format personnalisé docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" # Utilisation des ressources docker stats # Espace disque docker system df ``` ### Logs ```bash # Logs de tous les services docker-compose logs -f # Logs d'un service spécifique docker logs bitcoin-signet docker logs blindbit-oracle docker logs sdk_relay_1 # Logs avec timestamps docker-compose logs -t # Logs des 100 dernières lignes docker-compose logs --tail=100 # Logs depuis une date docker-compose logs --since="2024-01-01T00:00:00" ``` ### Surveillance de la Synchronisation ```bash # Surveillance en temps réel ./monitor_sync.sh # Test de synchronisation ./test_sync_logs.sh # Test de synchronisation forcé ./test_sync_logs.sh force # Test de synchronisation en continu ./test_sync_logs.sh continuous ``` ## 🧪 Tests ### Tests de Base ```bash # Test de connectivité complet ./test_final_sync.sh # Test de synchronisation ./test_sync_logs.sh # Test des messages WebSocket python3 test_websocket_messages.py # Test des 3 relais ./test_3_relays.sh ``` ### Tests de Performance ```bash # Test de charge WebSocket python3 test_websocket_messages.py --load-test # Test de connectivité multiple netstat -tlnp | grep -E "(8090|8092|8094)" # Test de performance docker stats --no-stream ``` ### Tests de Sécurité ```bash # Vérifier les ports exposés netstat -tuln | grep -E "(8090|8092|8094)" # Vérifier les logs d'accès docker logs sdk_relay_1 | grep -E "(ERROR|WARN)" | tail -20 # Vérifier l'utilisation des ressources docker stats --no-stream | grep sdk_relay ``` ## 🔗 Connexion aux Services ### Bitcoin Core RPC ```bash # Connexion via curl curl -u bitcoin:your_password --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getblockchaininfo", "params": []}' -H 'content-type: text/plain;' http://localhost:18443/ # Connexion via bitcoin-cli docker exec bitcoin-signet bitcoin-cli -signet getblockchaininfo # Vérifier la synchronisation docker exec bitcoin-signet bitcoin-cli -signet getblockchaininfo | jq '.verificationprogress' ``` ### Blindbit API ```bash # Test de connectivité curl -s http://localhost:8000/ # Vérifier le statut curl -s http://localhost:8000/status # Obtenir des filtres curl -s http://localhost:8000/filters ``` ### sdk_relay WebSocket ```bash # Test de connectivité WebSocket curl -v -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Key: test" http://localhost:8090/ # Test avec wscat (si installé) wscat -c ws://localhost:8090 # Test avec Python python3 test_websocket_messages.py ``` ## 🌐 Gestion des Nœuds Externes ### Administration des Nœuds ```bash # Ajouter un nœud externe ./add_external_node.sh add external-relay-1 external-relay-1.example.com:8090 # Lister les nœuds configurés ./add_external_node.sh list # Tester la connectivité ./add_external_node.sh test external-relay-1 # Supprimer un nœud ./add_external_node.sh remove external-relay-1 # Valider une adresse ./add_external_node.sh validate 192.168.1.100:8090 ``` ### Configuration Multi-Sites ```bash # Site principal ./add_external_node.sh add site-paris-1 paris-relay-1.4nk.net:8090 ./add_external_node.sh add site-paris-2 paris-relay-2.4nk.net:8090 # Site secondaire ./add_external_node.sh add site-lyon-1 lyon-relay-1.4nk.net:8090 ./add_external_node.sh add site-lyon-2 lyon-relay-2.4nk.net:8090 # Site de backup ./add_external_node.sh add backup-1 backup-relay-1.4nk.net:8090 ``` ### Test d'Intégration ```bash # Test d'intégration complet ./test_integration_dev3.sh # Test de connectivité dev3 python3 test_dev3_simple.py # Test de connectivité avancé python3 test_dev3_connectivity.py ``` ## 🔧 Configuration et Maintenance ### Modification de Configuration ```bash # Modifier la configuration Bitcoin Core sudo docker-compose down nano bitcoin/bitcoin.conf sudo docker-compose up -d bitcoin # Modifier la configuration Blindbit nano blindbit/blindbit.toml sudo docker-compose restart blindbit # Modifier la configuration des relais nano sdk_relay/.conf.docker.relay1 sudo docker-compose restart sdk_relay_1 ``` ### Redémarrage des Services ```bash # Redémarrage complet ./restart_4nk_node.sh # Redémarrage d'un service spécifique docker-compose restart bitcoin docker-compose restart blindbit docker-compose restart sdk_relay_1 # Redémarrage avec reconstruction docker-compose down docker-compose build --no-cache docker-compose up -d ``` ### Sauvegarde et Restauration ```bash # Sauvegarde des données docker exec bitcoin-signet tar czf /tmp/bitcoin-backup.tar.gz /home/bitcoin/.bitcoin docker cp bitcoin-signet:/tmp/bitcoin-backup.tar.gz ./backup/ # Sauvegarde des configurations tar czf config-backup.tar.gz sdk_relay/.conf* external_nodes.conf # Restauration docker cp ./backup/bitcoin-backup.tar.gz bitcoin-signet:/tmp/ docker exec bitcoin-signet tar xzf /tmp/bitcoin-backup.tar.gz -C / ``` ## 🚨 Dépannage ### Problèmes Courants ```bash # Service ne démarre pas docker logs docker exec cat /path/to/config docker restart # Problèmes de connectivité docker exec ping docker exec nslookup docker exec nc -z # Problèmes de synchronisation docker logs sdk_relay_1 | grep -E "(Sync|Relay|Mesh)" docker restart sdk_relay_1 sdk_relay_2 sdk_relay_3 ./test_sync_logs.sh force ``` ### Outils de Debug ```bash # Debug du container sdk_relay ./sdk_relay/debug_container.sh # Test du healthcheck ./sdk_relay/test_healthcheck.sh # Test de connectivité ./sdk_relay/test_connectivity.sh # Test simple ./sdk_relay/test_simple.sh ``` ### Logs de Debug ```bash # Logs détaillés docker-compose logs -f --tail=100 # Logs d'un service spécifique docker logs -f # Logs avec timestamps docker-compose logs -t # Logs depuis une date docker-compose logs --since="2024-01-01T00:00:00" ``` ## 🔒 Sécurité ### Vérification de Sécurité ```bash # Vérifier les ports exposés netstat -tuln | grep -E "(8090|8092|8094)" # Vérifier les permissions ls -la sdk_relay/.conf* ls -la bitcoin/bitcoin.conf ls -la blindbit/blindbit.toml # Vérifier les logs de sécurité docker logs sdk_relay_1 | grep -E "(ERROR|WARN|SECURITY)" | tail -20 ``` ### Configuration de Pare-feu ```bash # Autoriser les ports nécessaires sudo ufw allow 18443/tcp # Bitcoin Core RPC sudo ufw allow 8090/tcp # sdk_relay WebSocket sudo ufw allow 8000/tcp # Blindbit API sudo ufw enable # Vérifier les règles sudo ufw status numbered ``` ## 📈 Performance ### Optimisation ```bash # Limiter l'utilisation CPU docker-compose up -d --scale bitcoin=1 # Optimiser la mémoire docker stats --no-stream | grep sdk_relay # Nettoyer l'espace disque docker system prune -f ``` ### Monitoring de Performance ```bash # Surveillance des ressources docker stats # Surveillance des connexions netstat -an | grep :8090 | wc -l # Surveillance de l'espace disque df -h ``` ### Tests de Charge ```bash # Test de charge simple for i in {1..50}; do python3 test_websocket_messages.py & sleep 0.1 done wait # Test de charge avancé python3 test_websocket_messages.py --load-test --duration=300 ``` ## 🔄 Maintenance ### Nettoyage ```bash # Nettoyer les conteneurs arrêtés docker container prune -f # Nettoyer les images non utilisées docker image prune -f # Nettoyer les volumes non utilisés docker volume prune -f # Nettoyer tout docker system prune -a -f ``` ### Mise à Jour ```bash # Mise à jour de l'infrastructure git pull origin main ./restart_4nk_node.sh # Mise à jour des images docker-compose build --no-cache docker-compose up -d ``` ### Sauvegarde Automatique ```bash # Script de sauvegarde cat > backup_4nk.sh << 'EOF' #!/bin/bash DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/backup/4nk_node_$DATE" mkdir -p $BACKUP_DIR cp -r sdk_relay/.conf* $BACKUP_DIR/ cp external_nodes.conf $BACKUP_DIR/ docker exec bitcoin-signet tar czf /tmp/bitcoin-backup.tar.gz /home/bitcoin/.bitcoin docker cp bitcoin-signet:/tmp/bitcoin-backup.tar.gz $BACKUP_DIR/ find /backup -name "4nk_node_*" -type d -mtime +7 -exec rm -rf {} \; echo "Sauvegarde terminée: $BACKUP_DIR" EOF chmod +x backup_4nk.sh # Ajouter au cron echo "0 2 * * * /path/to/backup_4nk.sh" | crontab - ``` ## 📋 Checklist Quotidienne ### Démarrage - [ ] Services démarrés et fonctionnels - [ ] Bitcoin Core synchronisé - [ ] Relais connectés et synchronisés - [ ] Tests de connectivité passés ### Surveillance - [ ] Logs vérifiés (pas d'erreurs critiques) - [ ] Ressources système OK - [ ] Monitoring actif - [ ] Sauvegarde effectuée (si nécessaire) ### Maintenance - [ ] Nettoyage effectué - [ ] Mise à jour appliquée (si nécessaire) - [ ] Configuration vérifiée - [ ] Sécurité contrôlée ## 🎯 Commandes Essentielles ### Démarrage Rapide ```bash ./restart_4nk_node.sh docker ps ./test_final_sync.sh ``` ### Monitoring Rapide ```bash docker ps docker-compose logs -f ./monitor_sync.sh ``` ### Test Rapide ```bash ./test_final_sync.sh ./test_sync_logs.sh python3 test_websocket_messages.py ``` ### Dépannage Rapide ```bash docker logs docker restart ./test_sync_logs.sh force ``` ### Arrêt Propre ```bash docker-compose down docker system prune -f ``` ---