4NK_node/specs/spec-fonctionnel.md
Nicolas Cantu 72682290c1 feat: Ajout du support des relais externes et intégration dev3.4nkweb.com
- 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
2025-08-22 17:00:31 +02:00

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

  1. Lancer docker-compose up -d
  2. Attendre que tous les services soient healthy
  3. Vérifier les logs pour s'assurer du bon fonctionnement
  4. Le système est prêt à recevoir des transactions

2. Connexion au nœud Bitcoin

  1. Utiliser l'interface RPC sur le port 18443
  2. Authentification via cookie ou credentials
  3. Envoyer des commandes JSON-RPC
  4. Recevoir les réponses

3. Utilisation des paiements silencieux

  1. Générer une adresse de paiement silencieux via Blindbit
  2. Envoyer des fonds à cette adresse
  3. Le SDK Relay scanne automatiquement les blocs
  4. Détection et traitement des paiements reçus

4. Surveillance du système

  1. Consulter les logs des services
  2. Vérifier l'état des healthchecks
  3. Surveiller l'utilisation des ressources
  4. 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