ihm_client/docs copy/QUICK_REFERENCE.md

10 KiB

Référence Rapide - 4NK Node

Référence rapide des commandes essentielles pour l'infrastructure 4NK Node.

🚀 Démarrage

Démarrage Complet

# Démarrer tous les services
./restart_4nk_node.sh

# Vérifier le statut
docker ps

Démarrage Séquentiel

# 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

./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

# 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

# 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

# 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

# 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

# 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é

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# 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

# Service ne démarre pas
docker logs <service_name>
docker exec <service_name> cat /path/to/config
docker restart <service_name>

# Problèmes de connectivité
docker exec <service_name> ping <target>
docker exec <service_name> nslookup <target>
docker exec <service_name> nc -z <target> <port>

# 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

# 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

# Logs détaillés
docker-compose logs -f --tail=100

# Logs d'un service spécifique
docker logs <service_name> -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é

# 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

# 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

# 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

# Surveillance des ressources
docker stats

# Surveillance des connexions
netstat -an | grep :8090 | wc -l

# Surveillance de l'espace disque
df -h

Tests de Charge

# 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

# 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

# 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

# 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

./restart_4nk_node.sh
docker ps
./test_final_sync.sh

Monitoring Rapide

docker ps
docker-compose logs -f
./monitor_sync.sh

Test Rapide

./test_final_sync.sh
./test_sync_logs.sh
python3 test_websocket_messages.py

Dépannage Rapide

docker logs <service_name>
docker restart <service_name>
./test_sync_logs.sh force

Arrêt Propre

docker-compose down
docker system prune -f