4NK_dev/docs/etat_services.md

4.7 KiB

É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