- 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
264 lines
8.5 KiB
Markdown
264 lines
8.5 KiB
Markdown
# 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é
|
||
|
||
|