6.2 KiB
6.2 KiB
Spécification Fonctionnelle - 4NK_node
Vue d'ensemble
Ce document décrit les fonctionnalités et les cas d'usage du projet 4NK_node.
Fonctionnalités principales
1. Nœud Bitcoin Core
- Description : Nœud Bitcoin Core configuré en mode signet
- Fonctionnalités :
- Validation des transactions
- Stockage de la blockchain
- Interface RPC pour les interactions
- Support des wallets
- Configuration :
- Port RPC : 18443
- Port ZMQ : 29000
- Réseau : Signet
- Données persistantes via volume Docker
2. Service Blindbit
- Description : Service pour les paiements silencieux
- Fonctionnalités :
- Génération d'adresses de paiement silencieux
- Validation des transactions
- Interface HTTP pour les interactions
- Configuration :
- Port : 8000
- Interface : HTTP REST API
3. Service SDK Relay
- Description : Relais pour les interactions SDK
- Fonctionnalités :
- Connexion au nœud Bitcoin Core
- Gestion des wallets
- Interface WebSocket
- Scan des blocs pour les paiements silencieux
- Configuration :
- Port WebSocket : 8090
- Port HTTP : 8091
- Retry automatique en cas d'échec de connexion
4. Service Tor
- Description : Service Tor pour l'anonymat
- Fonctionnalités :
- Routage anonyme
- Protection de la vie privée
- Interface SOCKS
- Configuration :
- Port SOCKS : 9050
- Port de contrôle : 9051
Cas d'usage
1. Démarrage du système
- Lancer
docker-compose up -d
- Attendre que tous les services soient healthy
- Vérifier les logs pour s'assurer du bon fonctionnement
- Le système est prêt à recevoir des transactions
2. Connexion au nœud Bitcoin
- Utiliser l'interface RPC sur le port 18443
- Authentification via cookie ou credentials
- Envoyer des commandes JSON-RPC
- Recevoir les réponses
3. Utilisation des paiements silencieux
- Générer une adresse de paiement silencieux via Blindbit
- Envoyer des fonds à cette adresse
- Le SDK Relay scanne automatiquement les blocs
- Détection et traitement des paiements reçus
4. Surveillance du système
- Consulter les logs des services
- Vérifier l'état des healthchecks
- Surveiller l'utilisation des ressources
- Détecter et résoudre les problèmes
Interfaces utilisateur
1. Interface RPC Bitcoin
- Protocole : JSON-RPC
- Port : 18443
- Authentification : Cookie ou credentials
- Endpoints : Standard Bitcoin Core RPC
2. Interface HTTP Blindbit
- Protocole : HTTP REST
- Port : 8000
- Authentification : À définir
- Endpoints : API Blindbit
3. Interface WebSocket SDK Relay
- Protocole : WebSocket
- Port : 8090
- Authentification : À définir
- Messages : Événements et commandes SDK
4. Interface HTTP SDK Relay
- Protocole : HTTP REST
- Port : 8091
- Authentification : À définir
- Endpoints : API SDK Relay
Gestion des erreurs
1. Erreurs de connexion
- Détection : Timeout ou erreur de résolution DNS
- Action : Retry automatique avec backoff exponentiel
- Limite : 5 tentatives maximum
- Log : Erreurs détaillées dans les logs
2. Erreurs de configuration
- Détection : Fichiers de configuration manquants ou invalides
- Action : Utilisation de valeurs par défaut
- Log : Avertissements dans les logs
3. Erreurs de service
- Détection : Healthcheck en échec
- Action : Redémarrage automatique du service
- Limite : 3 redémarrages maximum
- Log : Erreurs critiques dans les logs
Sécurité
1. Authentification
- Bitcoin Core : Cookie d'authentification
- Blindbit : À définir
- SDK Relay : À définir
- Tor : Pas d'authentification requise
2. Chiffrement
- RPC Bitcoin : HTTP (non chiffré)
- HTTP Blindbit : HTTP (non chiffré)
- WebSocket SDK Relay : WSS (chiffré)
- Tor : Chiffrement intégré
3. Isolation réseau
- Réseau privé : btcnet pour la communication inter-services
- Ports exposés : Seulement les ports nécessaires
- Volumes : Données persistantes isolées
Performance
1. Ressources requises
- CPU : Minimum 2 cœurs
- RAM : Minimum 4 GB
- Stockage : Minimum 50 GB pour la blockchain
- Réseau : Connexion stable à Internet
2. Optimisations
- Cache : Mise en cache des données fréquemment utilisées
- Compression : Compression des données de blockchain
- Parallélisation : Traitement parallèle des blocs
- Monitoring : Métriques de performance
Maintenance
1. Sauvegarde
- Fréquence : Quotidienne
- Contenu : Volumes Docker et configurations
- Rétention : 30 jours
- Restauration : Procédure documentée
2. Mise à jour
- Fréquence : Mensuelle
- Processus : Test en environnement de développement
- Rollback : Possibilité de revenir à la version précédente
- Documentation : Changelog détaillé
3. Monitoring
- Métriques : CPU, RAM, disque, réseau
- Logs : Centralisation et rotation
- Alertes : Notification en cas de problème
- Dashboard : Interface de visualisation
Tests
1. Tests unitaires
- Couverture : Minimum 80%
- Exécution : À chaque commit
- Rapport : Génération automatique
2. Tests d'intégration
- Environnement : Docker Compose
- Scénarios : Cas d'usage principaux
- Exécution : Avant chaque déploiement
- Rapport : Résultats détaillés
3. Tests de charge
- Outils : JMeter ou équivalent
- Scénarios : Charge normale et pic
- Métriques : Temps de réponse et débit
- Seuils : Définis selon les exigences
Documentation
1. Documentation technique
- API : Documentation OpenAPI/Swagger
- Architecture : Diagrammes et schémas
- Déploiement : Guide étape par étape
- Troubleshooting : Guide de résolution des problèmes
2. Documentation utilisateur
- Installation : Guide d'installation
- Configuration : Guide de configuration
- Utilisation : Guide d'utilisation
- FAQ : Questions fréquentes
3. Documentation de maintenance
- Procédures : Procédures de maintenance
- Checklists : Checklists de vérification
- Contacts : Contacts d'urgence
- Escalade : Procédure d'escalade