- 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
114 lines
3.8 KiB
Markdown
114 lines
3.8 KiB
Markdown
# 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ôtes `bitcoin` et `blindbit`
|
|
- **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()` dans `Config`
|
|
- 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
|
|
|
|
### sdk_common
|
|
- **Branche** : `docker-fixes`
|
|
- **Modifications** :
|
|
- Modification de la dépendance `sp_client` pour utiliser un chemin local
|
|
- Correction de la feature `blindbit-backend` vers `blindbit-native`
|
|
|
|
### sdk_client
|
|
- **Branche** : `docker-fixes`
|
|
- **Modifications** :
|
|
- Modification de la dépendance `sdk_common` pour utiliser un chemin local
|
|
|
|
### 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
|
|
|
|
## Architecture Docker
|
|
|
|
### Services
|
|
1. **bitcoin** : Nœud Bitcoin Core en mode signet
|
|
2. **blindbit** : Service Blindbit
|
|
3. **sdk_relay** : Service de relais SDK (modifié)
|
|
4. **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` et `ChainBackend`
|
|
- **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
|
|
1. Corriger les signatures de traits dans sdk_relay
|
|
2. Résoudre les collisions de noms de fichiers
|
|
3. Tester la compilation complète
|
|
|
|
### Moyen terme
|
|
1. Implémenter les méthodes manquantes dans `DummyBackend`
|
|
2. Ajouter des tests unitaires pour les nouvelles fonctionnalités
|
|
3. Documenter l'API des nouvelles méthodes
|
|
|
|
### Long terme
|
|
1. Migrer vers une architecture plus modulaire
|
|
2. Implémenter une gestion d'état centralisée
|
|
3. Ajouter des métriques et monitoring
|
|
|
|
## Fichiers modifiés
|
|
|
|
### sdk_relay
|
|
- `src/config.rs` : Ajout de `get_cookie_path()`
|
|
- `src/daemon.rs` : Modification de `rpc_connect()`
|
|
- `src/main.rs` : Ajout de retry logic
|
|
- `src/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 branches
|
|
- `docker-compose.yml` : Amélioration de la configuration
|
|
- `sdk_relay/.conf.docker` : Ajout du chemin du cookie
|
|
|
|
|