- 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
8.5 KiB
8.5 KiB
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
- Modifier les variables de configuration si nécessaire
- Tester avec
./restart_4nk_node.sh -v
- Documenter les changements
Ajout de nouveaux services
- Ajouter les variables de configuration
- Créer une fonction de démarrage
- Ajouter l'option correspondante
- 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
- Automatisation : Élimine les erreurs manuelles
- Reproductibilité : Processus identique à chaque exécution
- Modularité : Possibilité de démarrer des services individuels
- Robustesse : Gestion d'erreurs et vérifications
- Visibilité : Affichage coloré et informatif
- Maintenance : Code structuré et documenté