From 2fe9f2d5e7926704fa26ccb6cf9de34bec63ad61 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 26 Aug 2025 08:25:04 +0200 Subject: [PATCH] docs(testing): WASM Windows + script run-wasm-tests.ps1; chore: cleanup tests warnings --- README.md | 305 ++--------------------------------------------- docs/INDEX.md | 59 ++++----- tests/connect.rs | 1 + tests/pairing.rs | 1 + tests/utils.rs | 1 + 5 files changed, 45 insertions(+), 322 deletions(-) diff --git a/README.md b/README.md index 32601c2..73ee464 100644 --- a/README.md +++ b/README.md @@ -4,314 +4,31 @@ Ce dépôt fournit une bibliothèque cliente visant l’intégration WebAssembly ## 📋 Table des Matières -- [🏗️ Architecture](#️-architecture) -- [🚀 Démarrage Rapide](#-démarrage-rapide) - [📚 Documentation](#-documentation) -- [🔧 Configuration](#-configuration) -- [🧪 Tests et Monitoring](#-tests-et-monitoring) -- [🌐 Réseau de Relais](#-réseau-de-relais) +- [🧪 Tests](#-tests) - [🛠️ Développement](#️-développement) - [🚨 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 -### 📖 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)** -- **[Guide d'utilisation](docs/USAGE.md)** -- **[Guide de configuration](docs/CONFIGURATION.md)** -- **[Architecture](docs/ARCHITECTURE.md)** -- **[Référence API](docs/API.md)** +## 🧪 Tests -### 🔧 Guides Techniques - -- **[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 = [] -``` +- Tests natifs: `cargo test` +- Tests WASM (Windows): utiliser le script PowerShell `scripts/run-wasm-tests.ps1` (prérequis LLVM/Clang, voir `docs/TESTING.md`). ## 🛠️ 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`. - -### 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 -``` +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`. ## 🚨 Dépannage -### Problèmes Courants - -#### 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 d’optimisation, d’observabilité 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 +Consulter `docs/TESTING.md` (section WASM Windows) pour les variables d’environnement et le runner wasm-bindgen. --- -**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. diff --git a/docs/INDEX.md b/docs/INDEX.md index 15c8c4c..d54a47b 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -6,37 +6,37 @@ Index complet de la documentation du SDK client pour les Silent Payments. ### 🚀 [Guide d'Installation](INSTALLATION.md) Guide complet pour installer et configurer le SDK client. -- **Prérequis système et logiciels** -- **Installation de Rust et dépendances** -- **Configuration WASM et compilation** -- **Tests post-installation** -- **Dépannage et monitoring** +- Prérequis système et logiciels +- Installation de Rust et dépendances +- Configuration WASM et compilation +- Tests post-installation +- Dépannage et monitoring ### 📖 [Guide d'utilisation](USAGE.md) Parcours d’utilisation, intégration et validations (sans exemples exécutables). ### ⚙️ [Guide de Configuration](CONFIGURATION.md) Guide complet pour configurer le SDK selon vos besoins. -- **Configuration générale et variables d'environnement** -- **Configuration Rust et Cargo** -- **Configuration WASM et wasm-pack** -- **Configuration des features** -- **Configuration de build** -- **Configuration de tests** -- **Configuration de sécurité** +- Configuration générale et variables d'environnement +- Configuration Rust et Cargo +- Configuration WASM et wasm-pack +- Configuration des features +- Configuration de build +- Configuration de tests +- Configuration de sécurité ## 🔧 Guides Techniques ### 🏗️ [Architecture Technique](ARCHITECTURE.md) Documentation technique détaillée de l'architecture. -- **Architecture générale du SDK** -- **Composants principaux (Rust, WASM, JavaScript)** -- **Architecture des Silent Payments** -- **Flux de données et types** -- **Intégration avec sdk_common** -- **Sécurité et isolation** -- **Performance et optimisations** -- **Monitoring et observabilité** +- Architecture générale du SDK +- Composants principaux (Rust, WASM, JavaScript) +- Architecture des Silent Payments +- Flux de données et types +- Intégration avec sdk_common +- Sécurité et isolation +- Performance et optimisations +- Monitoring et observabilité ### 📡 [Référence API](API.md) Contrats publics WASM/Rust, structures, erreurs, invariants et limites. @@ -79,13 +79,16 @@ Roadmap de développement détaillée. ## 🧪 Guides de Test ### 🧪 [Guide des Tests](TESTING.md) -Guide complet pour les tests du SDK. -- **Tests unitaires Rust** -- **Tests d'intégration WASM** -- **Tests de performance** -- **Tests de sécurité** -- **Tests de compatibilité** -- **Tests de régression** +- Tests unitaires et intégration (cargo) +- Tests WASM (Windows): script `scripts/run-wasm-tests.ps1` (LLVM/Clang requis, runner wasm-bindgen) + +#### Commandes utiles +```bash +# Tests natifs +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é 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** 🚀 diff --git a/tests/connect.rs b/tests/connect.rs index ddad570..8207ae0 100644 --- a/tests/connect.rs +++ b/tests/connect.rs @@ -9,6 +9,7 @@ use sdk_common::sp_client::bitcoin::OutPoint; use sdk_common::sp_client::OwnedOutput; use tsify::JsValueSerdeExt; +#[allow(dead_code)] use wasm_bindgen_test::*; mod utils; diff --git a/tests/pairing.rs b/tests/pairing.rs index c06f7ae..646b090 100644 --- a/tests/pairing.rs +++ b/tests/pairing.rs @@ -12,6 +12,7 @@ use serde_wasm_bindgen; use sdk_common::secrets::SecretsStore; use serde_json::{json}; +#[allow(dead_code)] use wasm_bindgen_test::*; mod utils; diff --git a/tests/utils.rs b/tests/utils.rs index a45c408..f498516 100644 --- a/tests/utils.rs +++ b/tests/utils.rs @@ -1,3 +1,4 @@ +#![allow(dead_code)] use std::collections::HashMap; use sdk_client::api::{parse_new_tx, ApiReturn};