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

264 lines
8.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)
```bash
./restart_4nk_node.sh
```
### Options disponibles
```bash
./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
```bash
./restart_4nk_node.sh
```
**Résultat :** Arrêt → Nettoyage → Réseau → Tor → Bitcoin → Blindbit → Construction → Relays → Vérification
### 2. Arrêter uniquement
```bash
./restart_4nk_node.sh -s
```
**Résultat :** Arrêt de tous les services et conteneurs
### 3. Démarrer uniquement les relais
```bash
./restart_4nk_node.sh -r
```
**Résultat :** Construction de l'image + démarrage des 3 relais
### 4. Vérifier le statut
```bash
./restart_4nk_node.sh -v
```
**Résultat :** Affichage de l'état de tous les services
## 🔧 Configuration
### Variables principales
```bash
# 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
```bash
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
```bash
# 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é