4NK_node/docs/INTEGRATION_IHM_CLIENT.md
Your Name 42564cf558
Some checks failed
CI - 4NK_node / Code Quality (push) Failing after 38s
CI - 4NK_node / Unit Tests (push) Failing after 36s
CI - 4NK_node / Integration Tests (push) Successful in 33s
CI - 4NK_node / Security Tests (push) Failing after 33s
CI - 4NK_node / Docker Build & Test (push) Failing after 15s
CI - 4NK_node / Documentation Tests (push) Successful in 12s
CI - 4NK_node / Release Guard (push) Has been skipped
CI - 4NK_node / Performance Tests (push) Successful in 35s
CI - 4NK_node / Notify (push) Failing after 2s
chore(refine): adapter .gitea/docs/scripts au projet 4NK_node
2025-08-27 11:56:17 +02:00

6.1 KiB

Intégration de ihm_client dans 4NK_node

Vue d'ensemble

L'interface utilisateur ihm_client a été intégrée avec succès dans l'infrastructure 4NK_node, permettant une expérience utilisateur complète pour interagir avec les Silent Payments.

Architecture

Services intégrés

  1. ihm_client - Interface utilisateur web

  2. sdk_relay_1, sdk_relay_2, sdk_relay_3 - Relais Silent Payments

    • Ports: 8090-8095
    • Technologie: Rust
  3. bitcoin - Nœud Bitcoin Signet

    • Port: 18443 (RPC)
    • Technologie: Bitcoin Core
  4. blindbit - Oracle Blindbit

    • Port: 8000
    • Technologie: Rust

Communication entre services

ihm_client (8080)
    ↓ HTTP/WebSocket
sdk_relay_1 (8090/8091)
    ↓ P2P
sdk_relay_2 (8092/8093)
    ↓ P2P
sdk_relay_3 (8094/8095)
    ↓ RPC
bitcoin (18443)
    ↓ API
blindbit (8000)

Configuration

Variables d'environnement

Le service ihm_client est configuré avec les variables d'environnement suivantes :

environment:
  - SDK_RELAY_WS_URL=ws://sdk_relay_1:8090
  - SDK_RELAY_HTTP_URL=http://sdk_relay_1:8091
  - BITCOIN_RPC_URL=http://bitcoin:18443
  - BLINDBIT_URL=http://blindbit:8000

Dépendances

  • ihm_client dépend de sdk_relay_1, sdk_relay_2, sdk_relay_3
  • Les SDK relays dépendent de bitcoin et blindbit
  • blindbit dépend de bitcoin

Démarrage

Script de démarrage complet

./start-4nk-node-with-ui.sh

Ce script :

  1. Arrête et nettoie les conteneurs existants
  2. Démarre tous les services
  3. Vérifie la santé de chaque service
  4. Affiche les URLs d'accès

Script de démarrage UI uniquement

./start-ihm-client.sh

Ce script démarre uniquement l'interface utilisateur.

Démarrage manuel

# Démarrer tous les services
docker-compose up -d

# Démarrer uniquement l'interface utilisateur
docker-compose up -d ihm_client

URLs d'accès

Service URL Description
Interface utilisateur http://localhost:8080 Interface web principale
Bitcoin RPC http://localhost:18443 API Bitcoin
Blindbit http://localhost:8000 Oracle Blindbit
SDK Relay 1 http://localhost:8091 Relais 1 HTTP
SDK Relay 2 http://localhost:8093 Relais 2 HTTP
SDK Relay 3 http://localhost:8095 Relais 3 HTTP

Commandes utiles

Vérification du statut

# Statut de tous les services
docker-compose ps

# Logs d'un service spécifique
docker-compose logs ihm_client
docker-compose logs sdk_relay_1
docker-compose logs bitcoin

Gestion des services

# Redémarrer un service
docker-compose restart ihm_client

# Arrêter tous les services
docker-compose down

# Reconstruire un service
docker-compose build ihm_client

Debugging

# Accéder au conteneur ihm_client
docker exec -it 4nk-ihm-client bash

# Vérifier les logs en temps réel
docker-compose logs -f ihm_client

Fonctionnalités de l'interface utilisateur

Pages principales

  1. Accueil - Vue d'ensemble et navigation
  2. Compte - Gestion du profil utilisateur
  3. Processus - Création et gestion des processus
  4. Signature - Signatures de documents
  5. Chat - Communication entre membres

Fonctionnalités clés

  • Pairing - Connexion avec d'autres utilisateurs
  • Wallet - Gestion des Silent Payments
  • Documents - Validation et signature de documents
  • Notifications - Système de notifications en temps réel
  • QR Code - Scanner et génération de QR codes

Développement

Structure des fichiers

4NK_node/
├── ihm_client/           # Interface utilisateur
│   ├── src/             # Code source TypeScript
│   ├── public/          # Assets statiques
│   ├── Dockerfile       # Configuration Docker
│   ├── nginx.conf       # Configuration Nginx
│   └── start.sh         # Script de démarrage
├── docker-compose.yml   # Orchestration des services
└── start-*.sh          # Scripts de démarrage

Compilation

L'interface utilisateur est compilée automatiquement lors du build Docker :

# Build manuel
docker-compose build ihm_client

# Build avec cache
docker-compose build --no-cache ihm_client

Développement local

Pour développer l'interface utilisateur localement :

cd ihm_client
npm install
npm run dev

Monitoring et logs

Health checks

Chaque service dispose d'un health check configuré :

  • ihm_client : Vérification HTTP sur localhost
  • sdk_relay : Script de vérification personnalisé
  • bitcoin : Commande getblockchaininfo

Logs

Les logs sont configurés avec rotation :

logging:
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"

Sécurité

Variables d'environnement

Les variables sensibles sont configurées via les variables d'environnement Docker.

Réseau

Tous les services communiquent via le réseau Docker btcnet isolé.

Volumes

Les données persistantes sont stockées dans des volumes Docker nommés.

Troubleshooting

Problèmes courants

  1. Service ne démarre pas

    docker-compose logs <service_name>
    
  2. Port déjà utilisé

    sudo netstat -tulpn | grep :8080
    
  3. Problème de compilation

    docker-compose build --no-cache ihm_client
    

Logs de debug

Pour activer les logs de debug :

# SDK relays
export RUST_LOG=debug

# Interface utilisateur
docker-compose logs -f ihm_client

Maintenance

Mise à jour

# Mettre à jour depuis le repository
git pull origin main

# Reconstruire les services
docker-compose build

# Redémarrer
docker-compose up -d

Sauvegarde

# Sauvegarder les volumes
docker run --rm -v 4nk_node_bitcoin_data:/data -v $(pwd):/backup alpine tar czf /backup/backup.tar.gz -C /data .

Support

Pour toute question ou problème :

  1. Vérifier les logs : docker-compose logs
  2. Consulter la documentation : docs/
  3. Créer une issue sur le repository Gitea