4NK_node/archive/docs/README_RESTART_SCRIPT.md
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

8.5 KiB
Raw Blame History

Script de Redémarrage 4NK Node

📋 Description

Le script restart_4nk_node.sh est un outil automatisé pour redémarrer complètement l'infrastructure 4NK Node. Il transforme les commandes manuelles en un processus automatisé avec gestion d'erreurs et vérifications.

🚀 Utilisation

Redémarrage complet (par défaut)

./restart_4nk_node.sh

Options disponibles

./restart_4nk_node.sh [OPTIONS]

📖 Options

Option Description Exemple
-h, --help Afficher l'aide ./restart_4nk_node.sh -h
-s, --stop Arrêter tous les services ./restart_4nk_node.sh -s
-c, --clean Nettoyer les conteneurs ./restart_4nk_node.sh -c
-n, --network Créer le réseau ./restart_4nk_node.sh -n
-t, --tor Démarrer Tor ./restart_4nk_node.sh -t
-b, --bitcoin Démarrer Bitcoin ./restart_4nk_node.sh -b
-l, --blindbit Démarrer Blindbit ./restart_4nk_node.sh -l
-r, --relays Démarrer les relais ./restart_4nk_node.sh -r
-v, --verify Vérifier le statut ./restart_4nk_node.sh -v

🎯 Exemples d'utilisation

1. Redémarrage complet

./restart_4nk_node.sh

Résultat : Arrêt → Nettoyage → Réseau → Tor → Bitcoin → Blindbit → Construction → Relays → Vérification

2. Arrêter uniquement

./restart_4nk_node.sh -s

Résultat : Arrêt de tous les services et conteneurs

3. Démarrer uniquement les relais

./restart_4nk_node.sh -r

Résultat : Construction de l'image + démarrage des 3 relais

4. Vérifier le statut

./restart_4nk_node.sh -v

Résultat : Affichage de l'état de tous les services

🔧 Configuration

Variables principales

# Images Docker
TOR_IMAGE="dperson/torproxy:latest"
BITCOIN_IMAGE="4nk_node_bitcoin"
BLINDBIT_IMAGE="4nk_node_blindbit"
RELAY_IMAGE="4nk_node_sdk_relay_1"

# Réseau
NETWORK_NAME="4nk_node_btcnet"

# Volumes
BITCOIN_VOLUME="bitcoin_data"
BLINDBIT_VOLUME="blindbit_data"
RELAY_1_VOLUME="sdk_relay_1_data"
RELAY_2_VOLUME="sdk_relay_2_data"
RELAY_3_VOLUME="sdk_relay_3_data"

Ports exposés

Service Ports Internes Ports Externes
Tor 9050, 9051 9050, 9051
Bitcoin 38333, 18443, 29000 38333, 18443, 29000
Blindbit 8000 8000
Relay 1 8090, 8091 8090, 8091
Relay 2 8090, 8091 8092, 8093
Relay 3 8090, 8091 8094, 8095

Fichiers de configuration

BITCOIN_CONF="$PROJECT_DIR/bitcoin/bitcoin.conf"
BLINDBIT_CONF="$PROJECT_DIR/blindbit/blindbit.toml"
RELAY_1_CONF="$PROJECT_DIR/sdk_relay/.conf.docker.relay1"
RELAY_2_CONF="$PROJECT_DIR/sdk_relay/.conf.docker.relay2"
RELAY_3_CONF="$PROJECT_DIR/sdk_relay/.conf.docker.relay3"

🛠️ Fonctionnalités

1. Gestion d'erreurs

  • Vérification de Docker : S'assure que Docker est installé et en cours d'exécution
  • Vérification des fichiers : Contrôle l'existence des fichiers de configuration
  • Timeouts : Gestion des timeouts pour le démarrage des conteneurs
  • Arrêt en cas d'erreur : set -e pour arrêter le script en cas d'erreur

2. Affichage coloré

  • Vert : Succès
  • Rouge : Erreurs
  • Jaune : Avertissements ⚠️
  • Bleu : En-têtes 🔄
  • Cyan : Étapes 🔄
  • Violet : Informations

3. Vérifications automatiques

  • Attente des conteneurs : Vérifie que chaque conteneur démarre correctement
  • Vérification des ports : Contrôle que les ports sont correctement exposés
  • Statut final : Affiche un résumé de tous les services

4. Modularité

  • Fonctions séparées : Chaque service a sa propre fonction de démarrage
  • Options flexibles : Possibilité de démarrer des services individuels
  • Réutilisabilité : Fonctions utilitaires réutilisables

📊 Sortie du script

Exemple de sortie réussie

=============================================================================
SCRIPT DE REDÉMARRAGE COMPLET 4NK Node
=============================================================================
 Répertoire de travail: /home/desk/Téléchargements/code/4NK/4NK_node
 Date: Mon Dec 16 10:30:00 CET 2024

=============================================================================
ARRÊT DE TOUS LES SERVICES
=============================================================================
🔄 Arrêt de tous les conteneurs
🔄 Arrêt de docker-compose
🔄 Vérification qu'aucun conteneur ne tourne
✅ Aucun conteneur en cours d'exécution

=============================================================================
NETTOYAGE COMPLET
=============================================================================
🔄 Suppression de tous les conteneurs
 Conteneurs supprimés: abc123 def456 ghi789
🔄 Nettoyage des réseaux
 Réseaux supprimés: 4nk_node_btcnet

[... autres étapes ...]

=============================================================================
VÉRIFICATION FINALE
=============================================================================
🔄 État de tous les services
CONTAINER ID   IMAGE                     COMMAND                  CREATED              STATUS                   PORTS                         NAMES
e969cb2ead81   4nk_node_sdk_relay_1      "/bin/sh -c 'cp /hom…"   21 seconds ago       Up 20 seconds            0.0.0.0:8094->8090/tcp, :::8094->8090/tcp, 0.0.0.0:8095->8091/tcp, :::8095->8091/tcp                         sdk_relay_3
[... autres conteneurs ...]

🔄 Résumé des services actifs
Services en cours d'exécution:
tor-proxy	Up 3 minutes (healthy)	8118/tcp, 0.0.0.0:9050-9051->9050-9051/tcp, :::9050-9051->9050-9051/tcp
bitcoin-signet	Up 3 minutes	0.0.0.0:18443->18443/tcp, :::18443->18443/tcp, 0.0.0.0:29000->29000/tcp, :::29000->29000/tcp, 0.0.0.0:38333->38333/tcp, :::38333->38333/tcp, 38332/tcp
[... autres services ...]

🔄 Vérification des ports
✅ tor-proxy: ✅ En cours d'exécution
✅ bitcoin-signet: ✅ En cours d'exécution
✅ blindbit-oracle: ✅ En cours d'exécution
✅ sdk_relay_1: ✅ En cours d'exécution
✅ sdk_relay_2: ✅ En cours d'exécution
✅ sdk_relay_3: ✅ En cours d'exécution
 Services actifs: 6/6
✅ Tous les services sont opérationnels !

=============================================================================
REDÉMARRAGE TERMINÉ
=============================================================================
✅ L'infrastructure 4NK Node est maintenant opérationnelle !
 Services actifs: 6
 Ports exposés: 12

⚠️ Dépannage

Erreurs courantes

1. Docker non installé

❌ Docker n'est pas installé ou n'est pas dans le PATH

Solution : Installer Docker et s'assurer qu'il est dans le PATH

2. Docker daemon non démarré

❌ Docker daemon n'est pas en cours d'exécution

Solution : Démarrer le service Docker : sudo systemctl start docker

3. Fichier de configuration manquant

❌ Fichier manquant: Configuration Bitcoin (/path/to/bitcoin.conf)

Solution : Vérifier que tous les fichiers de configuration existent

4. Timeout de démarrage

❌ Timeout: bitcoin-signet n'a pas démarré dans les temps

Solution : Vérifier les logs : docker logs bitcoin-signet

Logs utiles

# Logs d'un service spécifique
docker logs tor-proxy
docker logs bitcoin-signet
docker logs blindbit-oracle
docker logs sdk_relay_1

# Logs de tous les services
docker logs $(docker ps --format "{{.Names}}")

# Statut des conteneurs
docker ps -a

# Utilisation des ressources
docker stats

🔄 Maintenance

Mise à jour du script

  1. Modifier les variables de configuration si nécessaire
  2. Tester avec ./restart_4nk_node.sh -v
  3. Documenter les changements

Ajout de nouveaux services

  1. Ajouter les variables de configuration
  2. Créer une fonction de démarrage
  3. Ajouter l'option correspondante
  4. Mettre à jour la fonction de vérification

📝 Historique

  • v1.0 : Script initial basé sur les commandes manuelles
  • Fonctionnalités : Redémarrage complet, options modulaires, gestion d'erreurs
  • Compatibilité : Bash 4.0+, Docker 20.0+

🎯 Avantages

  1. Automatisation : Élimine les erreurs manuelles
  2. Reproductibilité : Processus identique à chaque exécution
  3. Modularité : Possibilité de démarrer des services individuels
  4. Robustesse : Gestion d'erreurs et vérifications
  5. Visibilité : Affichage coloré et informatif
  6. Maintenance : Code structuré et documenté