docs(testing): WASM Windows + script run-wasm-tests.ps1; chore: cleanup tests warnings

This commit is contained in:
Your Name 2025-08-26 08:25:04 +02:00
parent c9bf58bc35
commit 2fe9f2d5e7
5 changed files with 45 additions and 322 deletions

305
README.md
View File

@ -4,314 +4,31 @@ Ce dépôt fournit une bibliothèque cliente visant lintégration WebAssembly
## 📋 Table des Matières ## 📋 Table des Matières
- [🏗️ Architecture](#-architecture)
- [🚀 Démarrage Rapide](#-démarrage-rapide)
- [📚 Documentation](#-documentation) - [📚 Documentation](#-documentation)
- [🔧 Configuration](#-configuration) - [🧪 Tests](#-tests)
- [🧪 Tests et Monitoring](#-tests-et-monitoring)
- [🌐 Réseau de Relais](#-réseau-de-relais)
- [🛠️ Développement](#-développement) - [🛠️ Développement](#-développement)
- [🚨 Dépannage](#-dépannage) - [🚨 Dépannage](#-dépannage)
## 🏗️ Architecture
4NK Node est composé de plusieurs services orchestrés via Docker :
| Service | Port | Description | Statut |
|---------|------|-------------|---------|
| **Tor** | 9050, 9051 | Proxy anonyme pour Bitcoin Core | ✅ Stable |
| **Bitcoin Core** | 18443 (RPC), 29000 (ZMQ) | Nœud Bitcoin en mode signet | ✅ Stable |
| **Blindbit** | 8000 | Service de filtres pour les paiements silencieux | ✅ Stable |
| **sdk_relay** | 8090-8095 | Services de relais (3 instances) | ✅ Stable |
### 🔄 Flux de Données
```
Client → sdk_relay → Bitcoin Core
Blindbit → Bitcoin Core
Tor (anonymat)
```
## 🚀 Démarrage Rapide
### Prérequis
- **Docker** et **Docker Compose** installés
- **10 Go** d'espace disque minimum
- **Connexion Internet** stable
- **Clé SSH** configurée pour GitLab (recommandé)
### Installation
```bash
# 1. Cloner le repository (SSH recommandé)
git clone git@git.4nkweb.com:4nk/4NK_node.git
cd 4NK_node
# 2. Démarrer tous les services
./restart_4nk_node.sh
# 3. Vérifier le statut
docker ps
```
### Configuration SSH (Recommandé)
```bash
# Générer une clé SSH
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_4nk -C "4nk-automation"
# Ajouter à l'agent SSH
ssh-add ~/.ssh/id_ed25519_4nk
# Configurer Git
git config --global core.sshCommand "ssh -i ~/.ssh/id_ed25519_4nk"
# Ajouter la clé publique à GitLab
cat ~/.ssh/id_ed25519_4nk.pub
```
## 📚 Documentation ## 📚 Documentation
### 📖 Guides Principaux - [Architecture](docs/ARCHITECTURE.md)
- [Référence API](docs/API.md)
- [Configuration](docs/CONFIGURATION.md)
- [Tests](docs/TESTING.md)
- **[Guide d'installation](docs/INSTALLATION.md)** ## 🧪 Tests
- **[Guide d'utilisation](docs/USAGE.md)**
- **[Guide de configuration](docs/CONFIGURATION.md)**
- **[Architecture](docs/ARCHITECTURE.md)**
- **[Référence API](docs/API.md)**
### 🔧 Guides Techniques - Tests natifs: `cargo test`
- Tests WASM (Windows): utiliser le script PowerShell `scripts/run-wasm-tests.ps1` (prérequis LLVM/Clang, voir `docs/TESTING.md`).
- **[Architecture Technique](docs/ARCHITECTURE.md)** - Architecture détaillée
- **[API Reference](docs/API.md)** - Documentation des APIs
- **[Sécurité](docs/SECURITY.md)** - Sécurité et bonnes pratiques
- **[Performance](docs/PERFORMANCE.md)** - Optimisation et monitoring
### 🧪 Guides de Test
- **[Tests de Base](docs/TESTING.md)** - Tests de connectivité et fonctionnalité
- **[Tests de Synchronisation](docs/SYNC_TESTING.md)** - Tests de synchronisation entre relais
- **[Tests de Performance](docs/PERFORMANCE_TESTING.md)** - Tests de charge et performance
### 🌐 Guides Réseau
- **[Réseau de Relais](docs/RELAY_NETWORK.md)** - Configuration du réseau mesh
- **[Nœuds Externes](docs/EXTERNAL_NODES.md)** - Ajout et gestion de nœuds externes
- **[Synchronisation](docs/SYNCHRONIZATION.md)** - Protocole de synchronisation
## 🔧 Configuration
### Services Disponibles
| Service | Configuration | Volume | Description |
|---------|---------------|---------|-------------|
| **Bitcoin Core** | `bitcoin/bitcoin.conf` | `bitcoin_data` | Nœud Bitcoin signet avec RPC et ZMQ |
| **Blindbit** | `blindbit/blindbit.toml` | `blindbit_data` | Service de filtres Silent Payments |
| **sdk_relay** | `sdk_relay/.conf.docker.*` | `sdk_relay_*_data` | Relais avec synchronisation mesh |
| **Tor** | `tor/torrc` | - | Proxy anonyme |
### Variables d'Environnement
```bash
# Logs
RUST_LOG=debug,bitcoincore_rpc=trace
# Bitcoin
BITCOIN_COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie
# Synchronisation
ENABLE_SYNC_TEST=1
```
## 🧪 Tests et Monitoring
### Tests de Base
```bash
# Test de connectivité
./test_final_sync.sh
# Test de synchronisation
./test_sync_logs.sh
# Test des messages WebSocket
python3 test_websocket_messages.py
```
### Monitoring
```bash
# Surveillance de la synchronisation
./monitor_sync.sh
# Logs en temps réel
docker-compose logs -f
# Statut des services
docker ps
```
### Tests de Performance
```bash
# Test de charge WebSocket
python3 test_websocket_messages.py --load-test
# Test de synchronisation
./test_sync_logs.sh continuous
```
## 🌐 Réseau de Relais
### Architecture Mesh
L'infrastructure supporte un réseau mesh de relais avec :
- **3 relais locaux** : `sdk_relay_1`, `sdk_relay_2`, `sdk_relay_3`
- **Nœuds externes** : Configuration via `external_nodes.conf`
- **Synchronisation automatique** : Partage de données entre relais
- **Découverte automatique** : Découverte des relais voisins
### Ajout de Nœuds Externes
```bash
# Ajouter un nœud externe
./add_external_node.sh add external-relay-1 external-relay-1.example.com:8090
# Lister les nœuds configurés
./add_external_node.sh list
# Tester la connectivité
./add_external_node.sh test external-relay-1
```
### Configuration Externe
```toml
# external_nodes.conf
[relays]
external-relay-1 = "external-relay-1.example.com:8090"
dev3-relay = "dev3.4nkweb.com:443"
[discovery]
auto_discover = true
bootstrap_nodes = []
```
## 🛠️ Développement ## 🛠️ Développement
La surface de code est centrée sur `src/` (Rust) avec export WASM. Les parcours et invariants sont décrits dans `docs/ARCHITECTURE.md` et `docs/API.md`. La surface de code est centrée sur `src/` (Rust) avec export WASM. Les invariants sont décrits dans `docs/ARCHITECTURE.md` et `docs/API.md`.
### Ajout d'un Nouveau Service
1. Créer le Dockerfile dans un sous-répertoire
2. Ajouter le service dans `docker-compose.yml`
3. Configurer les dépendances et le réseau
4. Ajouter les healthchecks si nécessaire
5. Documenter dans la section appropriée
### Modification de la Configuration
```bash
# Modifier la configuration Bitcoin Core
sudo docker-compose down
# Éditer bitcoin/bitcoin.conf
sudo docker-compose up -d bitcoin
# Modifier la configuration Blindbit
# Éditer blindbit/blindbit.toml
sudo docker-compose restart blindbit
```
## 🚨 Dépannage ## 🚨 Dépannage
### Problèmes Courants Consulter `docs/TESTING.md` (section WASM Windows) pour les variables denvironnement et le runner wasm-bindgen.
#### 1. Ports Déjà Utilisés
```bash
# Vérifier les ports utilisés
sudo netstat -tlnp | grep -E "(18443|8000|9050|8090)"
# Arrêter les services conflictuels
sudo docker-compose down
```
#### 2. Problèmes de Synchronisation Bitcoin
```bash
# Vérifier les logs Bitcoin Core
sudo docker-compose logs bitcoin
# Redémarrer Bitcoin Core
sudo docker-compose restart bitcoin
```
#### 3. Problèmes de Connectivité sdk_relay
```bash
# Tester la connectivité
cd sdk_relay
./test_final.sh
# Vérifier la configuration
./debug_container.sh
```
### Logs Détaillés
```bash
# Logs avec timestamps
sudo docker-compose logs -t
# Logs des 100 dernières lignes
sudo docker-compose logs --tail=100
# Logs depuis une date
sudo docker-compose logs --since="2024-01-01T00:00:00"
```
### Healthchecks
```bash
# Vérifier l'état des healthchecks
sudo docker-compose ps
# Logs des healthchecks
sudo docker-compose logs | grep health
# Test manuel du healthcheck sdk_relay
sudo docker exec sdk_relay /usr/local/bin/healthcheck.sh
```
## 📈 Performance
Les bonnes pratiques doptimisation, dobservabilité et de limites à la frontière WASM sont présentes dans `docs/ARCHITECTURE.md`.
## 🤝 Contribution
1. Fork le repository
2. Créer une branche feature (`git checkout -b feature/nouvelle-fonctionnalite`)
3. Commit les changements (`git commit -am 'Ajout de nouvelle fonctionnalité'`)
4. Push la branche (`git push origin feature/nouvelle-fonctionnalite`)
5. Créer une Pull Request
## 📄 Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
## 🆘 Support
Pour obtenir de l'aide :
1. Consulter la [documentation](docs/)
2. Vérifier les [issues existantes](https://git.4nkweb.com/4nk/4NK_node/issues)
3. Créer une nouvelle issue avec les détails du problème
4. Inclure les logs et la configuration utilisée
--- ---
**Documentation de référence: voir `docs/` pour la table des matières.** Documentation de référence: voir `docs/` pour la table des matières.

View File

@ -6,37 +6,37 @@ Index complet de la documentation du SDK client pour les Silent Payments.
### 🚀 [Guide d'Installation](INSTALLATION.md) ### 🚀 [Guide d'Installation](INSTALLATION.md)
Guide complet pour installer et configurer le SDK client. Guide complet pour installer et configurer le SDK client.
- **Prérequis système et logiciels** - Prérequis système et logiciels
- **Installation de Rust et dépendances** - Installation de Rust et dépendances
- **Configuration WASM et compilation** - Configuration WASM et compilation
- **Tests post-installation** - Tests post-installation
- **Dépannage et monitoring** - Dépannage et monitoring
### 📖 [Guide d'utilisation](USAGE.md) ### 📖 [Guide d'utilisation](USAGE.md)
Parcours dutilisation, intégration et validations (sans exemples exécutables). Parcours dutilisation, intégration et validations (sans exemples exécutables).
### ⚙️ [Guide de Configuration](CONFIGURATION.md) ### ⚙️ [Guide de Configuration](CONFIGURATION.md)
Guide complet pour configurer le SDK selon vos besoins. Guide complet pour configurer le SDK selon vos besoins.
- **Configuration générale et variables d'environnement** - Configuration générale et variables d'environnement
- **Configuration Rust et Cargo** - Configuration Rust et Cargo
- **Configuration WASM et wasm-pack** - Configuration WASM et wasm-pack
- **Configuration des features** - Configuration des features
- **Configuration de build** - Configuration de build
- **Configuration de tests** - Configuration de tests
- **Configuration de sécurité** - Configuration de sécurité
## 🔧 Guides Techniques ## 🔧 Guides Techniques
### 🏗️ [Architecture Technique](ARCHITECTURE.md) ### 🏗️ [Architecture Technique](ARCHITECTURE.md)
Documentation technique détaillée de l'architecture. Documentation technique détaillée de l'architecture.
- **Architecture générale du SDK** - Architecture générale du SDK
- **Composants principaux (Rust, WASM, JavaScript)** - Composants principaux (Rust, WASM, JavaScript)
- **Architecture des Silent Payments** - Architecture des Silent Payments
- **Flux de données et types** - Flux de données et types
- **Intégration avec sdk_common** - Intégration avec sdk_common
- **Sécurité et isolation** - Sécurité et isolation
- **Performance et optimisations** - Performance et optimisations
- **Monitoring et observabilité** - Monitoring et observabilité
### 📡 [Référence API](API.md) ### 📡 [Référence API](API.md)
Contrats publics WASM/Rust, structures, erreurs, invariants et limites. Contrats publics WASM/Rust, structures, erreurs, invariants et limites.
@ -79,13 +79,16 @@ Roadmap de développement détaillée.
## 🧪 Guides de Test ## 🧪 Guides de Test
### 🧪 [Guide des Tests](TESTING.md) ### 🧪 [Guide des Tests](TESTING.md)
Guide complet pour les tests du SDK. - Tests unitaires et intégration (cargo)
- **Tests unitaires Rust** - Tests WASM (Windows): script `scripts/run-wasm-tests.ps1` (LLVM/Clang requis, runner wasm-bindgen)
- **Tests d'intégration WASM**
- **Tests de performance** #### Commandes utiles
- **Tests de sécurité** ```bash
- **Tests de compatibilité** # Tests natifs
- **Tests de régression** cargo test
```
Pour les tests WASM, se référer au script PowerShell (voir détails dans `docs/TESTING.md`).
### 🔍 [Audit de Sécurité](SECURITY_AUDIT.md) ### 🔍 [Audit de Sécurité](SECURITY_AUDIT.md)
Audit de sécurité détaillé. Audit de sécurité détaillé.
@ -245,4 +248,4 @@ cargo test --all
--- ---
**📚 Documentation complète pour sdk_client - SDK client pour les Silent Payments** 🚀 **📚 Documentation complète pour sdk_client SDK client pour les Silent Payments** 🚀

View File

@ -9,6 +9,7 @@ use sdk_common::sp_client::bitcoin::OutPoint;
use sdk_common::sp_client::OwnedOutput; use sdk_common::sp_client::OwnedOutput;
use tsify::JsValueSerdeExt; use tsify::JsValueSerdeExt;
#[allow(dead_code)]
use wasm_bindgen_test::*; use wasm_bindgen_test::*;
mod utils; mod utils;

View File

@ -12,6 +12,7 @@ use serde_wasm_bindgen;
use sdk_common::secrets::SecretsStore; use sdk_common::secrets::SecretsStore;
use serde_json::{json}; use serde_json::{json};
#[allow(dead_code)]
use wasm_bindgen_test::*; use wasm_bindgen_test::*;
mod utils; mod utils;

View File

@ -1,3 +1,4 @@
#![allow(dead_code)]
use std::collections::HashMap; use std::collections::HashMap;
use sdk_client::api::{parse_new_tx, ApiReturn}; use sdk_client::api::{parse_new_tx, ApiReturn};