4NK_dev/docs/etat_services.md

128 lines
4.7 KiB
Markdown

# État des Services 4NK Node
**Date :** 3 septembre 2025
**Heure :** 18:10 UTC
**Environnement :** Docker Compose sur Debian
## Résumé Global
- **Services fonctionnels :** 4/7 (57%) ⬆️
- **Services en erreur :** 3/7 (43%) ⬇️
- **Services redémarrant :** 0/7 (0%) ✅
## Détail des Services
### ✅ Services Fonctionnels
#### 1. **4nk-bitcoin** (bitcoin)
- **Statut :** `Up About a minute`
- **Ports :** 29000, 18443, 38332-38333
- **État :** ✅ **FONCTIONNEL - RPC corrigé**
- **Notes :** Credentials RPC ajoutés, réseau Docker autorisé (192.168.240.0/20)
#### 2. **4nk-tor** (tor)
- **Statut :** `Up 2 hours`
- **Ports :** 9050-9051
- **État :** ✅ **FONCTIONNEL**
- **Notes :** Service Tor opérationnel, listeners SOCKS et Control actifs
#### 3. **4nk-blindbit** (blindbit) ⭐ **CORRIGÉ**
- **Statut :** `Up 31 seconds (health: starting)`
- **Ports :** 8000
- **État :** ✅ **FONCTIONNEL - RPC authentifié**
- **Notes :** Connexion RPC réussie, synchronisation active, service HTTP opérationnel
#### 4. **4nk-sdk-storage** (sdk_storage)
- **Statut :** `Up 2 hours (unhealthy)`
- **Ports :** 8081
- **État :** ✅ **FONCTIONNEL mais non vérifié**
- **Notes :** Service démarré mais health check échoue
### ❌ Services en Erreur
#### 5. **4nk-sdk-signer** (sdk_signer)
- **Statut :** `Arrêté`
- **Erreur :** `SyntaxError: Unexpected token 'export'`
- **Cause :** Incompatibilité ES modules vs CommonJS
- **Fichier problématique :** `/app/pkg/sdk_client.js`
- **Détail :** Le code WASM généré utilise la syntaxe ES6 `export` mais Node.js s'attend à du CommonJS
#### 6. **4nk-sdk-relay** (sdk_relay)
- **Statut :** `Arrêté`
- **Erreur :** `Failed to find conf file`
- **Cause :** Fichier de configuration manquant
- **Impact :** Service critique pour la communication entre composants
#### 7. **4nk-ihm-client** (ihm_client)
- **Statut :** `Up 2 hours (unhealthy)`
- **Ports :** 3003, 8080
- **État :** ✅ **Démarré mais non vérifié**
- **Notes :** Interface utilisateur accessible mais health check échoue
## Problèmes Résolus ✅
### **Authentification RPC Bitcoin-BlindBit (RÉSOLU)**
- **Problème :** BlindBit recevait des erreurs 403 Forbidden
- **Cause :** Configuration réseau incorrecte (`rpcallowip=172.24.0.0/16` au lieu de `192.168.240.0/20`)
- **Solution :**
1. Ajout des credentials RPC (`rpcuser=bitcoin`, `rpcpassword=bitcoin`)
2. Correction du réseau autorisé (`rpcallowip=192.168.240.0/20`)
3. Redémarrage de Bitcoin pour appliquer la configuration
- **Résultat :** BlindBit se connecte maintenant avec succès à Bitcoin
## Problèmes Identifiés
### 1. **Incompatibilité ES Modules (CRITIQUE)**
- **Service :** sdk_signer
- **Problème :** Le code WASM généré par `wasm-pack` utilise la syntaxe ES6
- **Solution :** Configurer le projet pour utiliser ES modules ou convertir en CommonJS
### 2. **Configuration Manquante (CRITIQUE)**
- **Service :** sdk_relay
- **Problème :** Fichier de configuration introuvable
- **Solution :** Vérifier la présence et la validité des fichiers de config
### 3. **Health Checks (FAIBLE)**
- **Services :** sdk_storage, ihm_client
- **Problème :** Health checks échouent malgré un fonctionnement apparent
- **Solution :** Ajuster les critères de health check
## Recommandations
### Priorité 1 : Corriger sdk_signer ✅
- **Statut :** En attente
- **Action :** Résoudre l'incompatibilité ES modules
### Priorité 2 : Corriger sdk_relay ✅
- **Statut :** En attente
- **Action :** Identifier et corriger le fichier de configuration manquant
### Priorité 3 : Améliorer les health checks ✅
- **Statut :** En attente
- **Action :** Ajuster les critères de vérification
## Actions Effectuées
1.**Ajouté les credentials RPC** dans `conf/bitcoin.conf`
2.**Corrigé la configuration réseau** (`rpcallowip=192.168.240.0/20`)
3.**Redémarré Bitcoin** pour appliquer la configuration
4.**Testé la connexion RPC** avec succès
5.**Relancé BlindBit** avec succès
6.**Vérifié le fonctionnement** du service
## Impact sur l'Architecture
- **Communication inter-services :** ✅ BlindBit-Bitcoin fonctionne
- **Signature des transactions :** ❌ Impossible (sdk_signer défaillant)
- **Confidentialité :** ✅ **Disponible (blindbit fonctionnel)**
- **Interface utilisateur :** Partiellement fonctionnelle
- **Stockage :** Fonctionnel mais non vérifié
## Prochaines Étapes
1.**BlindBit corrigé** - Service opérationnel
2. 🔄 **Corriger sdk_signer** - Résoudre l'incompatibilité ES modules
3. 🔄 **Corriger sdk_relay** - Résoudre la configuration manquante
4. 🔄 **Améliorer les health checks** - Optimiser la surveillance des services
5. 🔄 **Tester l'intégration complète** - Vérifier la communication inter-services