11 KiB
Analyse Architecturale Complète - 4NK Environment
Date : 2025-01-27 Version : 1.0 Contexte : Analyse complète de l'architecture 4NK et du projet LeCoffre
📋 Vue d'ensemble
Cette analyse présente l'architecture complète de l'environnement 4NK, incluant tous les modules 4NK, le projet LeCoffre, et le système de gestion des configurations via 4NK_vault.
🏗️ Architecture Générale
Environnement de Développement Centralisé
4NK_env/ # Environnement centralisé
├── 4NK_modules/ # Modules 4NK (SDK, services)
├── projects/lecoffre/ # Projet LeCoffre (notaires)
├── IA_agents/ # Agents IA et documentation
├── docs/ # Documentation centralisée
├── scripts/ # Scripts de gestion centralisés
└── confs/ # Configurations déployées (4NK_vault)
🔧 Modules 4NK - Analyse Complète
1. sdk_relay - Service de Relais WebSocket
Rôle : Relais central pour les communications WebSocket et la synchronisation mesh
- Port : 8090 (WebSocket), 8091 (HTTP health)
- Fonctionnalités :
- Serveur WebSocket configurable
- Synchronisation mesh entre relais
- Gestion des processus et membres
- Interface avec Bitcoin Core (RPC + ZMQ)
- Intégration Blindbit pour Silent Payments
- Dépendances : Bitcoin Core, Blindbit Oracle
- Architecture : Rust avec gestion d'état locale
2. sdk_storage - Service de Stockage Temporaire
Rôle : Stockage temporaire sécurisé avec TTL
- Port : 8081
- API :
POST /store
: Stockage avec clé/valeur/TTLGET /retrieve/:key
: Récupération des données
- Fonctionnalités :
- Stockage temporaire avec expiration
- Clés hexadécimales 64 caractères
- Valeurs hexadécimales
- TTL optionnel (permanent si non spécifié)
3. sdk_signer - Service de Signature
Rôle : Service de signature TypeScript pour l'écosystème 4NK
- Fonctionnalités :
- Gestion des processus et signatures
- Communication sécurisée
- Compatibilité WASM (stub temporaire)
- Interface avec le réseau de relais
- Architecture : TypeScript avec support WASM
- État : Compatible avec stub sdk_client
4. sdk_client - Client SDK
Rôle : Client SDK pour l'interaction avec l'écosystème 4NK
- Fonctionnalités :
- Interface avec les services 4NK
- Gestion des connexions WebSocket
- Support des processus et transactions
- Architecture : Rust avec interface WebAssembly
5. sdk_common - Composants Communs
Rôle : Bibliothèque commune partagée entre tous les modules
- Fonctionnalités :
- Types et structures communes
- Utilitaires partagés
- Protocoles de communication
- Usage : Importé par tous les autres modules
6. sdk-signer-client - Client Signeur
Rôle : Client pour l'interaction avec le service de signature
- Fonctionnalités :
- Interface avec sdk_signer
- Gestion des signatures
- Communication sécurisée
7. ihm_client - Interface Homme-Machine
Rôle : Interface utilisateur pour la gestion des clés et processus
- Port : 3003
- Fonctionnalités :
- Interface de gestion des clés Bitcoin
- Gestion des processus
- Interface utilisateur web
- Dépendances : sdk_relay, sdk_storage
8. 4NK_vault - Système de Gestion des Configurations
Rôle : API sécurisée pour la gestion centralisée des configurations
- Port : 6666 (HTTPS)
- Fonctionnalités :
- Authentification par clés utilisateur
- Chiffrement quantique résistant (ChaCha20-Poly1305)
- Rotation automatique des clés
- Résolution des variables d'environnement
- Isolation par environnement (dev, prod)
- Sécurité :
- HTTPS obligatoire
- Authentification par ID utilisateur
- Clés individuelles par utilisateur/environnement
- Rotation automatique (toutes les heures)
- Déploiement : Synchronise les configurations vers
confs/
dans le docker de contrôle
9. 4NK_certificator - Service d'Ancrage Cryptographique
Rôle : Ancrage périodique sur Bitcoin mainnet des empreintes des échanges
- Fonctionnalités :
- Surveillance des messages du relay 4NK
- Détection des paiements Bitcoin
- Enregistrement périodique sur blockchain
- Métriques de volume de données
- Architecture : Rust avec base de données SQLite
- État : MVP complet implémenté
10. 4NK_miner - Service de Minage
Rôle : Service de minage Bitcoin (développement/test)
- Fonctionnalités :
- Minage sur réseau Signet
- Génération de blocs de test
- Interface avec le réseau Bitcoin
11. 4NK_web_status - Service de Statut
Rôle : Service de monitoring et statut des services
- Fonctionnalités :
- Monitoring des services
- Interface de statut
- Métriques de santé
12. blindbit-oracle - Oracle Bitcoin
Rôle : Service pour les paiements silencieux (Silent Payments)
- Port : 8000
- Fonctionnalités :
- Génération d'adresses Silent Payments
- Validation des transactions
- Interface HTTP REST
- Dépendances : Bitcoin Core
13. rust-silentpayments - Implémentation Silent Payments
Rôle : Implémentation Rust des Silent Payments
- Fonctionnalités :
- Génération d'adresses Silent Payments
- Validation des transactions
- Utilitaires cryptographiques
🏢 Projet LeCoffre - Architecture Notariale
Contexte Métier
Le projet LeCoffre est une plateforme de gestion de documents sécurisée pour les notaires, utilisant l'infrastructure 4NK pour la sécurité et l'intégrité des documents.
Composants du Projet LeCoffre
1. lecoffre_node - Orchestrateur Principal
Rôle : Docker de contrôle et déploiement pour LeCoffre
- Architecture : Docker Compose avec Nginx intégré
- Services déployés :
- lecoffre-front (interface utilisateur)
- ihm_client (gestion des clés)
- sdk_relay (relais WebSocket)
- sdk_storage (stockage temporaire)
- bitcoin-signet (nœud Bitcoin)
- blindbit-oracle (oracle Bitcoin)
- tor-proxy (proxy anonyme)
- Services de monitoring (Grafana, Loki, Promtail)
- Configuration : Centralisée dans
confs/
(synchronisée depuis 4NK_vault) - Déploiement : Scripts automatisés avec phases de démarrage
2. lecoffre-front - Interface Utilisateur
Rôle : Frontend Next.js pour l'application LeCoffre
- Technologie : Next.js avec React
- Fonctionnalités :
- Interface utilisateur pour les notaires
- Gestion des documents
- Intégration avec l'écosystème 4NK
- Déploiement : Conteneur Docker sur port 3004
3. lecoffre-back-mini - Backend Centralisé
Rôle : Backend centralisé pour les besoins spécifiques des notaires
- Fonctionnalités :
- APIs avec Stripe (paiements)
- Intégration Mailchimp (email marketing)
- Intégration OVH (SMS)
- Intégration IdNot (HMR dev3 ↔ dev4 via OAuth2)
- Déploiement : Sur dev3.4nkweb.com
- Architecture : Service centralisé indépendant
🌐 Architecture de Déploiement
Environnements
- dev4.4nkweb.com : Machine principale (LeCoffre)
- dev3.4nkweb.com : Nœud de bootstrap (signer centralisé, mini back)
URLs et Services
- LeCoffre Front : https://dev4.4nkweb.com/lecoffre
- 4NK iframe : https://dev4.4nkweb.com
- Signer centralisé : dev3.4nkweb.com (module 4NK pour notaires)
- Mini back : dev3.4nkweb.com (APIs Stripe, Mailchimp, OVH, IdNot)
Architecture de Déploiement par Phases
Phase 1: Services de Base (Parallèle)
- tor, sdk_storage, status-api
Phase 2: Services Blockchain (Séquentiel)
- bitcoin → blindbit → sdk_relay
Phase 3: Services Applicatifs (Séquentiel)
- lecoffre-front, ihm_client
Phase 4: Services de Monitoring (Indépendant)
- loki → promtail → grafana
Phase 5: Services Utilitaires
- watchtower
🔐 Sécurité et Configuration
4NK_vault - Gestion Centralisée des Configurations
- Rôle : API sécurisée pour la gestion des configurations
- Sécurité : Chiffrement quantique résistant, authentification par clés
- Déploiement : Synchronise vers
confs/
dans le docker de contrôle - Isolation : Variables d'environnement protégées, fichiers .env inaccessibles
Protection des Secrets
- Fichiers .env : Inaccessibles pour des raisons de sécurité
- Variables : Séparées des secrets, remplacées dans storage/
- Configurations : Copie déployée dans confs/ pour visualisation
🤖 Agents IA - Organisation
Structure IA_agents/
- README.md : Documentation principale et règles obligatoires
- deployment-architecture.md : Architecture de déploiement par phases
- best-practices-deployment.md : Bonnes pratiques et interdictions
- prompts/ : Prompts spécialisés pour différents aspects
- todo.md : Liste des améliorations et optimisations
Règles Critiques pour les Agents IA
- Interdictions absolues : Pas de
docker compose up -d
direct - Scripts obligatoires : Utilisation des scripts spécialisés
- Phases respectées : Ordre de démarrage par phases
- Monitoring indépendant : Services de monitoring séparés
- Surveillance continue : Suivi de progression obligatoire
📊 Monitoring et Observabilité
Stack de Monitoring
- Grafana : Dashboards et visualisation
- Loki : Collecte et stockage des logs
- Promtail : Agent de collecte des logs
- Watchtower : Mise à jour automatique des images
Dashboards Disponibles
- Vue d'ensemble LeCoffre
- Bitcoin & Miner
- Services Applications
- SDK Services
- Frontend Services
🔄 CI/CD et Déploiement
Branches et Tags
- Branche unifiée :
ext
pour tous les dépôts - Tag Docker :
ext
pour toutes les images - Déclenchement : Push sur
ext
→ Build automatique
Scripts de Déploiement
- start.sh : Démarrage complet avec phases
- validate-deployment.sh : Validation du déploiement
- maintenance.sh : Menu de maintenance interactif
- backup-data.sh : Sauvegarde des données
- update-images.sh : Mise à jour sécurisée
📚 Documentation Centralisée
Structure docs/
- Architecture : Spécifications techniques
- Déploiement : Guides de déploiement
- Services : Documentation par service
- Scripts : Documentation des scripts
Mise à Jour Continue
- IA_agents/ : Documentation pour les agents IA
- docs/ : Documentation technique centralisée
- Alignement : Synchronisation entre code et documentation
🎯 Points Clés de l'Architecture
1. Séparation des Responsabilités
- Services applicatifs indépendants du monitoring
- Monitoring observant sans impacter
- Dépendances uniquement métier
2. Sécurité Multi-Niveaux
- 4NK_vault pour la gestion centralisée des configurations
- Chiffrement quantique résistant
- Isolation des secrets et variables
3. Déploiement Optimisé
- Phases de démarrage respectées
- Scripts spécialisés obligatoires
- Surveillance continue et diagnostic facilité
4. Maintenance Facilitée
- Redémarrage sélectif possible
- Scripts de maintenance interactifs
- Documentation centralisée et à jour
Document créé le 2025-01-27 Version : 1.0 Usage : Documentation architecturale complète pour les agents IA et l'équipe de développement