- Ajout du script add_external_node.sh pour gérer les nœuds externes - Configuration external_nodes.conf avec dev3-relay - Scripts de test pour dev3.4nkweb.com (connectivité WSS) - Documentation complète (CONFIGURATION_DEV3.md, RESUME_AJOUT_DEV3.md) - Scripts de test de synchronisation et monitoring - Configuration multi-relais avec 3 instances - Mise à jour de la documentation technique et fonctionnelle - Scripts de démarrage et monitoring pour les 3 relais
3.8 KiB
3.8 KiB
Spécification Technique - 4NK_node
Vue d'ensemble
Ce document décrit les modifications techniques apportées au projet 4NK_node pour résoudre les problèmes de déploiement Docker.
Problèmes identifiés
1. Résolution DNS dans Docker
- Problème : Le service
sdk_relay
ne pouvait pas résoudre les noms d'hôtesbitcoin
etblindbit
- Cause : Configuration réseau Docker incorrecte
- Solution : Amélioration de la gestion des erreurs et ajout de retry logic
2. Dépendances Git
- Problème : Les dépendances pointaient vers des repositories distants
- Cause : Cargo.toml utilisait des URLs Git au lieu de chemins locaux
- Solution : Modification des dépendances pour utiliser des chemins locaux
3. Configuration du cookie Bitcoin
- Problème : Le chemin du cookie Bitcoin était codé en dur
- Cause : Utilisation de
env::var("HOME")
dans un contexte Docker - Solution : Ajout d'une option de configuration personnalisée pour le chemin du cookie
Modifications apportées
sdk_relay
- Branche :
docker-fixes
- Modifications :
- Ajout de la méthode
get_cookie_path()
dansConfig
- Modification de la signature de
rpc_connect()
pour accepter un chemin de cookie personnalisé - Ajout de logique de retry pour la connexion au daemon Bitcoin
- Amélioration de la gestion des erreurs de résolution DNS
- Ajout de la méthode
sdk_common
- Branche :
docker-fixes
- Modifications :
- Modification de la dépendance
sp_client
pour utiliser un chemin local - Correction de la feature
blindbit-backend
versblindbit-native
- Modification de la dépendance
sdk_client
- Branche :
docker-fixes
- Modifications :
- Modification de la dépendance
sdk_common
pour utiliser un chemin local
- Modification de la dépendance
4NK_node
- Modifications :
- Mise à jour du Dockerfile pour cloner les branches
docker-fixes
- Amélioration de la configuration Docker avec healthchecks
- Ajout de la gestion des erreurs et retry logic
- Mise à jour du Dockerfile pour cloner les branches
Architecture Docker
Services
- bitcoin : Nœud Bitcoin Core en mode signet
- blindbit : Service Blindbit
- sdk_relay : Service de relais SDK (modifié)
- tor : Service Tor pour l'anonymat
Réseau
- btcnet : Réseau privé pour la communication entre services
Volumes
- bitcoin_data : Données Bitcoin Core
- sdk_relay_data : Données du relais SDK
Problèmes restants
1. Compilation sdk_relay
- Erreur : Signatures de traits incompatibles
- Cause : Différences entre les versions des traits
SpScanner
etChainBackend
- Impact : Le service ne peut pas être compilé actuellement
2. Collision de noms de fichiers
- Erreur :
libsp_client.rlib
en collision - Cause : Plusieurs packages avec le même nom
- Impact : Compilation échoue
Recommandations
Court terme
- Corriger les signatures de traits dans sdk_relay
- Résoudre les collisions de noms de fichiers
- Tester la compilation complète
Moyen terme
- Implémenter les méthodes manquantes dans
DummyBackend
- Ajouter des tests unitaires pour les nouvelles fonctionnalités
- Documenter l'API des nouvelles méthodes
Long terme
- Migrer vers une architecture plus modulaire
- Implémenter une gestion d'état centralisée
- Ajouter des métriques et monitoring
Fichiers modifiés
sdk_relay
src/config.rs
: Ajout deget_cookie_path()
src/daemon.rs
: Modification derpc_connect()
src/main.rs
: Ajout de retry logicsrc/scan.rs
: Corrections des traits
sdk_common
Cargo.toml
: Modification des dépendances
sdk_client
Cargo.toml
: Modification des dépendances
4NK_node
sdk_relay/Dockerfile
: Mise à jour des branchesdocker-compose.yml
: Amélioration de la configurationsdk_relay/.conf.docker
: Ajout du chemin du cookie