diff --git a/docs/INDEX.md b/docs/INDEX.md index bb352f4..0c83a32 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -1,60 +1,55 @@ -# đ Index de Documentation - 4NK Node +# đ Index de Documentation - sdk_client -Index complet de la documentation de l'infrastructure 4NK Node. +Index complet de la documentation du SDK client pour les Silent Payments. ## đ Guides Principaux ### đ [Guide d'Installation](INSTALLATION.md) -Guide complet pour installer et configurer l'infrastructure 4NK Node. +Guide complet pour installer et configurer le SDK client. - **PrĂ©requis systĂšme et logiciels** -- **Installation de Docker et dĂ©pendances** -- **Configuration SSH et GitLab** -- **Configuration initiale des services** +- **Installation de Rust et dĂ©pendances** +- **Configuration WASM et compilation** - **Tests post-installation** - **DĂ©pannage et monitoring** ### đ [Guide d'Utilisation](USAGE.md) -Guide complet pour utiliser l'infrastructure 4NK Node au quotidien. -- **DĂ©marrage quotidien des services** -- **OpĂ©rations de surveillance et monitoring** -- **Utilisation du rĂ©seau de relais** -- **Connexion aux services (Bitcoin Core, Blindbit, sdk_relay)** +Guide complet pour utiliser le SDK client au quotidien. +- **Compilation et build** +- **IntĂ©gration dans les projets** +- **Utilisation des Silent Payments** - **Tests et validation** - **Configuration et maintenance** -- **Gestion des nĆuds externes** +- **Optimisations de performance** ### âïž [Guide de Configuration](CONFIGURATION.md) -Guide complet pour configurer l'infrastructure selon vos besoins. +Guide complet pour configurer le SDK selon vos besoins. - **Configuration gĂ©nĂ©rale et variables d'environnement** -- **Configuration Bitcoin Core (base et avancĂ©e)** -- **Configuration Blindbit (base et avancĂ©e)** -- **Configuration des relais (base et avancĂ©e)** -- **Configuration des nĆuds externes** -- **Configuration Tor** -- **Configuration Docker Compose** -- **Configuration SSL/TLS** -- **Configuration de monitoring et sauvegarde** +- **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 systĂšme** -- **Composants principaux (Bitcoin Core, Blindbit, SDK Relay)** -- **Architecture de synchronisation mesh** -- **Flux de donnĂ©es entre services** -- **Configuration multi-relais** +- **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Ă©** ### đĄ [API Reference](API.md) Documentation complĂšte des APIs disponibles. -- **API Bitcoin Core RPC** : Interface JSON-RPC pour Bitcoin -- **API Blindbit HTTP** : API REST pour les paiements silencieux -- **API SDK Relay WebSocket** : Interface temps rĂ©el pour les clients -- **API SDK Relay HTTP** : API REST pour les opĂ©rations de gestion -- **Format des messages et payloads** +- **API Rust** : Interface Rust native +- **API WASM** : Interface WebAssembly +- **API JavaScript** : Interface JavaScript/TypeScript +- **Types et structures de donnĂ©es** - **Gestion des erreurs** - **Exemples d'utilisation** - **Limites et quotas** @@ -63,7 +58,7 @@ Documentation complĂšte des APIs disponibles. Guide de sĂ©curitĂ© et bonnes pratiques. - **Authentification et autorisation** - **Chiffrement et certificats** -- **Isolation rĂ©seau** +- **SĂ©curitĂ© WASM et mĂ©moire** - **Audit et monitoring de sĂ©curitĂ©** - **Bonnes pratiques** @@ -98,215 +93,189 @@ Roadmap de dĂ©veloppement dĂ©taillĂ©e. - **FonctionnalitĂ©s planifiĂ©es** - **Ăvolution de l'architecture** - **MĂ©triques de succĂšs** -- **Vision long terme** - -### đ [Performance](PERFORMANCE.md) -Guide d'optimisation et monitoring des performances. -- **Optimisation des ressources** -- **Monitoring des performances** -- **Tests de charge** -- **MĂ©triques et alertes** -- **Troubleshooting des performances** ## đ§Ș Guides de Test -### đ§Ș [Guide de Tests](TESTING.md) -Guide complet des tests de l'infrastructure 4NK Node. -- **Tests unitaires** : Tests individuels des composants -- **Tests d'intĂ©gration** : Tests d'interaction entre services -- **Tests de connectivitĂ©** : Tests rĂ©seau et WebSocket -- **Tests externes** : Tests avec des nĆuds externes -- **Tests de performance** : Tests de charge et performance (Ă venir) -- **Organisation et exĂ©cution des tests** -- **InterprĂ©tation des rĂ©sultats** -- **DĂ©pannage et maintenance** +### đ§Ș [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 de Synchronisation](SYNC_TESTING.md) -Guide des tests de synchronisation entre relais. -- **Tests de synchronisation mesh** -- **Tests de dĂ©couverte de relais** -- **Tests de cache de dĂ©duplication** -- **Tests de mĂ©triques de synchronisation** -- **Troubleshooting de la synchronisation** +### đ [Audit de SĂ©curitĂ©](SECURITY_AUDIT.md) +Audit de sĂ©curitĂ© dĂ©taillĂ©. +- **VulnĂ©rabilitĂ©s connues** +- **Tests de pĂ©nĂ©tration** +- **Audit de code** +- **Recommandations de sĂ©curitĂ©** +- **Plan de remĂ©diation** -### đ [Tests de Performance](PERFORMANCE_TESTING.md) -Guide des tests de performance et de charge. -- **Tests de charge WebSocket** -- **Tests de performance Bitcoin Core** -- **Tests de performance Blindbit** -- **Tests de scalabilitĂ©** -- **Benchmarks et mĂ©triques** +## đ§ Guides de DĂ©veloppement -## đ Guides RĂ©seau +### đ§ [Guide de DĂ©veloppement](DEVELOPMENT.md) +Guide complet pour le dĂ©veloppement. +- **Environnement de dĂ©veloppement** +- **Workflow de dĂ©veloppement** +- **Standards de code** +- **Debugging et profiling** +- **Optimisation des performances** +- **DĂ©ploiement et CI/CD** -### đ [RĂ©seau de Relais](RELAY_NETWORK.md) -Guide de configuration du rĂ©seau mesh de relais. -- **Architecture mesh** -- **Configuration des relais locaux** -- **Synchronisation entre relais** -- **DĂ©couverte automatique** -- **Gestion des connexions** +### đ [RĂ©fĂ©rence Rapide](QUICK_REFERENCE.md) +RĂ©fĂ©rence rapide pour les dĂ©veloppeurs. +- **Commandes essentielles** +- **Structure du projet** +- **APIs principales** +- **Configuration rapide** +- **DĂ©pannage rapide** -### đ [NĆuds Externes](EXTERNAL_NODES.md) -Guide d'ajout et de gestion de nĆuds externes. -- **Configuration des nĆuds externes** -- **Script d'administration** -- **Validation et sĂ©curitĂ©** -- **Tests de connectivitĂ©** -- **Gestion multi-sites** +### đ [Guide de Migration](MIGRATION.md) +Guide pour les migrations et mises Ă jour. +- **Migration des versions** +- **Breaking changes** +- **Mise Ă jour des dĂ©pendances** +- **Migration des donnĂ©es** +- **Tests de migration** -### đ [Synchronisation](SYNCHRONIZATION.md) -Guide du protocole de synchronisation. -- **Protocole de synchronisation** -- **Types de messages** -- **Cache de dĂ©duplication** -- **MĂ©triques de synchronisation** -- **Troubleshooting** +## đ Guides d'IntĂ©gration -## đ Guides de RĂ©fĂ©rence +### đ [IntĂ©gration 4NK_node](INTEGRATION_4NK_NODE.md) +Guide d'intĂ©gration avec l'infrastructure 4NK_node. +- **Configuration Docker** +- **Variables d'environnement** +- **Communication inter-services** +- **DĂ©ploiement intĂ©grĂ©** +- **Monitoring et logs** -### đ [Commandes Rapides](QUICK_REFERENCE.md) -RĂ©fĂ©rence rapide des commandes essentielles. -- **Commandes de dĂ©marrage** -- **Commandes de monitoring** -- **Commandes de test** -- **Commandes de dĂ©pannage** -- **Commandes de maintenance** +### đ [Configuration SSH](SSH_SETUP.md) +Guide de configuration SSH pour le dĂ©veloppement. +- **GĂ©nĂ©ration des clĂ©s SSH** +- **Configuration Git** +- **IntĂ©gration avec Gitea** +- **Automatisation des dĂ©ploiements** -### đ [Troubleshooting](TROUBLESHOOTING.md) -Guide de rĂ©solution des problĂšmes courants. -- **ProblĂšmes de dĂ©marrage** -- **ProblĂšmes de connectivitĂ©** -- **ProblĂšmes de synchronisation** -- **ProblĂšmes de performance** -- **Logs et diagnostics** +### đ€ [Push SSH AutomatisĂ©](AUTO_SSH_PUSH.md) +Guide pour l'automatisation des pushes SSH. +- **Configuration des scripts** +- **IntĂ©gration CI/CD** +- **Gestion des clĂ©s** +- **SĂ©curitĂ© et bonnes pratiques** -### đ [FAQ](FAQ.md) -Questions frĂ©quemment posĂ©es. -- **Questions d'installation** -- **Questions de configuration** -- **Questions d'utilisation** -- **Questions de performance** -- **Questions de sĂ©curitĂ©** +## đ Ătat et Monitoring -## đ Structure des Fichiers +### đ [Ătat Actuel](ETAT_ACTUEL.md) +Ătat dĂ©taillĂ© du projet sdk_client. +- **Statut des compilations** +- **Configuration des branches** +- **FonctionnalitĂ©s opĂ©rationnelles** +- **MĂ©triques de performance** +- **ProblĂšmes connus** -``` -4NK_node/ -âââ README.md # Documentation principale -âââ docs/ # Documentation organisĂ©e -â âââ INDEX.md # Cet index -â âââ INSTALLATION.md # Guide d'installation -â âââ USAGE.md # Guide d'utilisation -â âââ CONFIGURATION.md # Guide de configuration -â âââ ARCHITECTURE.md # Architecture technique -â âââ API.md # RĂ©fĂ©rence API -â âââ SECURITY.md # Guide de sĂ©curitĂ© -â âââ PERFORMANCE.md # Guide de performance -â âââ TESTING.md # Tests de base -â âââ SYNC_TESTING.md # Tests de synchronisation -â âââ PERFORMANCE_TESTING.md # Tests de performance -â âââ RELAY_NETWORK.md # RĂ©seau de relais -â âââ EXTERNAL_NODES.md # NĆuds externes -â âââ SYNCHRONIZATION.md # Protocole de synchronisation -â âââ QUICK_REFERENCE.md # Commandes rapides -â âââ TROUBLESHOOTING.md # Guide de dĂ©pannage -â âââ FAQ.md # Questions frĂ©quentes -âââ specs/ # SpĂ©cifications techniques -â âââ spec-technique.md # SpĂ©cification technique -â âââ spec-fonctionnel.md # SpĂ©cification fonctionnelle -âââ scripts/ # Scripts utilitaires -âââ tests/ # Scripts de test -âââ examples/ # Exemples d'utilisation -``` +### đ [RĂ©sumĂ© Final](RESUME_FINAL.md) +RĂ©sumĂ© complet de l'Ă©tat final du projet. +- **SuccĂšs accomplis** +- **PrĂȘt pour la production** +- **Documentation complĂšte** +- **Support et maintenance** -## đŻ Parcours d'Apprentissage +## đ§ Guides d'Open Source -### đ **DĂ©butant** -1. [Guide d'Installation](INSTALLATION.md) - Installer l'infrastructure -2. [Guide d'Utilisation](USAGE.md) - Utiliser les services de base -3. [Tests de Base](TESTING.md) - VĂ©rifier le fonctionnement -4. [FAQ](FAQ.md) - RĂ©ponses aux questions courantes +### â [Checklist Open Source](OPEN_SOURCE_CHECKLIST.md) +Checklist complĂšte pour l'ouverture en open source. +- **PrĂ©paration du code** +- **Documentation** +- **Licences et lĂ©gal** +- **Infrastructure** +- **Communication** -### đ§ **IntermĂ©diaire** -1. [Guide de Configuration](CONFIGURATION.md) - Configurer selon vos besoins -2. [RĂ©seau de Relais](RELAY_NETWORK.md) - Comprendre l'architecture mesh -3. [NĆuds Externes](EXTERNAL_NODES.md) - Ajouter des nĆuds externes -4. [Tests de Synchronisation](SYNC_TESTING.md) - Tester la synchronisation +## đ Support et Contact -### đïž **AvancĂ©** -1. [Architecture Technique](ARCHITECTURE.md) - Comprendre l'architecture -2. [API Reference](API.md) - Utiliser les APIs -3. [SĂ©curitĂ©](SECURITY.md) - SĂ©curiser l'infrastructure -4. [Performance](PERFORMANCE.md) - Optimiser les performances -5. [Tests de Performance](PERFORMANCE_TESTING.md) - Tests avancĂ©s - -### đ ïž **Expert** -1. [Synchronisation](SYNCHRONIZATION.md) - Protocole de synchronisation -2. [Troubleshooting](TROUBLESHOOTING.md) - RĂ©solution de problĂšmes -3. [Commandes Rapides](QUICK_REFERENCE.md) - RĂ©fĂ©rence rapide -4. SpĂ©cifications techniques dans `/specs/` - -## đ Recherche dans la Documentation - -### Par Sujet -- **Installation** : [INSTALLATION.md](INSTALLATION.md) -- **Configuration** : [CONFIGURATION.md](CONFIGURATION.md) -- **Utilisation** : [USAGE.md](USAGE.md) -- **Tests** : [TESTING.md](TESTING.md), [SYNC_TESTING.md](SYNC_TESTING.md) -- **RĂ©seau** : [RELAY_NETWORK.md](RELAY_NETWORK.md), [EXTERNAL_NODES.md](EXTERNAL_NODES.md) -- **Performance** : [PERFORMANCE.md](PERFORMANCE.md) -- **SĂ©curitĂ©** : [SECURITY.md](SECURITY.md) -- **DĂ©pannage** : [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - -### Par Service -- **Bitcoin Core** : [CONFIGURATION.md](CONFIGURATION.md#configuration-bitcoin-core) -- **Blindbit** : [CONFIGURATION.md](CONFIGURATION.md#configuration-blindbit) -- **sdk_relay** : [CONFIGURATION.md](CONFIGURATION.md#configuration-des-relais) -- **Tor** : [CONFIGURATION.md](CONFIGURATION.md#configuration-tor) - -### Par TĂąche -- **DĂ©marrer** : [USAGE.md](USAGE.md#dĂ©marrage-quotidien) -- **Configurer** : [CONFIGURATION.md](CONFIGURATION.md) -- **Tester** : [TESTING.md](TESTING.md) -- **Monitorer** : [USAGE.md](USAGE.md#monitoring-et-alertes) -- **DĂ©panner** : [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - -## đ Support - -### Documentation -- **Index** : [INDEX.md](INDEX.md) - Cet index -- **FAQ** : [FAQ.md](FAQ.md) - Questions frĂ©quentes -- **Troubleshooting** : [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - RĂ©solution de problĂšmes - -### Ressources Externes -- **Repository** : [GitLab 4NK Node](https://git.4nkweb.com/4nk/4NK_node) -- **Issues** : [Issues GitLab](https://git.4nkweb.com/4nk/4NK_node/issues) -- **Wiki** : [Wiki GitLab](https://git.4nkweb.com/4nk/4NK_node/wikis) - -### Contact -- **Email** : support@4nkweb.com -- **Chat** : [Discord 4NK](https://discord.gg/4nk) -- **Forum** : [Forum 4NK](https://forum.4nkweb.com) - -## đ Mise Ă Jour de la Documentation - -### DerniĂšre Mise Ă Jour -- **Date** : $(date) -- **Version** : 1.0.0 -- **Auteur** : Ăquipe 4NK - -### Historique des Versions -- **v1.0.0** : Documentation initiale complĂšte -- **v0.9.0** : Documentation de base -- **v0.8.0** : Guides techniques -- **v0.7.0** : Guides de test - -### Contribution -Pour contribuer Ă la documentation : -1. Fork le repository -2. CrĂ©er une branche pour votre contribution -3. Modifier la documentation -4. CrĂ©er une Pull Request +### đ [Support](SUPPORT.md) +Guide de support et contact. +- **Comment obtenir de l'aide** +- **CrĂ©ation d'issues** +- **Canal de communication** +- **FAQ** +- **Ressources additionnelles** --- + +## đŻ Navigation Rapide + +### đ DĂ©marrage Rapide +1. [Installation](INSTALLATION.md) - Installer sdk_client +2. [Configuration](CONFIGURATION.md) - Configurer l'environnement +3. [Utilisation](USAGE.md) - Utiliser le SDK + +### đ§ DĂ©veloppement +1. [Architecture](ARCHITECTURE.md) - Comprendre l'architecture +2. [API](API.md) - Consulter les APIs +3. [Tests](TESTING.md) - ExĂ©cuter les tests + +### đ Documentation +1. [Index](INDEX.md) - Cet index +2. [Quick Reference](QUICK_REFERENCE.md) - RĂ©fĂ©rence rapide +3. [Roadmap](ROADMAP.md) - Ăvolution du projet + +### đ€ CommunautĂ© +1. [Guide CommunautĂ©](COMMUNITY_GUIDE.md) - Contribuer +2. [Code de Conduite](../CODE_OF_CONDUCT.md) - RĂšgles de conduite +3. [Support](SUPPORT.md) - Obtenir de l'aide + +--- + +## đ§Ș Tests et Validation + +### Tests AutomatisĂ©s +```bash +# Tests unitaires +cargo test --all + +# Tests d'intĂ©gration +cargo test --test integration + +# Tests de performance +cargo test --test performance + +# Linting +cargo clippy -- -D warnings + +# Formatage +cargo fmt -- --check +``` + +### Tests WASM +```bash +# Compilation WASM +wasm-pack build --target web + +# Tests WASM +wasm-pack test --headless --firefox +wasm-pack test --headless --chrome +``` + +--- + +## đ DĂ©veloppement + +### Commandes Essentielles +```bash +# Build de dĂ©veloppement +cargo build + +# Build de production +cargo build --release + +# Compilation WASM +wasm-pack build --target web + +# Tests +cargo test --all +``` + +--- + +**đ Documentation complĂšte pour sdk_client - SDK client pour les Silent Payments** đ diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md index 3b66620..b29879c 100644 --- a/docs/INSTALLATION.md +++ b/docs/INSTALLATION.md @@ -1,533 +1,308 @@ -# đŠ Guide d'Installation - 4NK Node +# đŠ Guide d'Installation - sdk_client -Guide complet pour installer et configurer l'infrastructure 4NK Node. +Guide complet pour installer et configurer le SDK client pour les Silent Payments. ## đ PrĂ©requis ### SystĂšme -- **OS** : Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+) -- **Architecture** : x86_64 -- **RAM** : 4 Go minimum, 8 Go recommandĂ©s -- **Stockage** : 20 Go minimum, 50 Go recommandĂ©s +- **OS** : Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+), macOS 10.15+, Windows 10+ +- **Architecture** : x86_64, ARM64 (Apple Silicon) +- **RAM** : 2 Go minimum, 4 Go recommandĂ©s +- **Stockage** : 5 Go minimum, 10 Go recommandĂ©s - **RĂ©seau** : Connexion Internet stable ### Logiciels -- **Docker** : Version 20.10+ -- **Docker Compose** : Version 2.0+ +- **Rust** : Version 1.70+ (obligatoire) +- **Cargo** : Inclus avec Rust +- **wasm-pack** : Version 0.12+ (pour compilation WASM) - **Git** : Version 2.25+ -- **Bash** : Version 4.0+ +- **Node.js** : Version 18.0+ (optionnel, pour tests) ## đ Installation -### 1. Installation de Docker +### 1. Installation de Rust -#### Ubuntu/Debian +#### Linux/macOS ```bash -# Mettre Ă jour les paquets -sudo apt update +# Installer Rust via rustup +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -# Installer les dĂ©pendances -sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release +# Recharger l'environnement +source ~/.cargo/env -# Ajouter la clĂ© GPG Docker -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - -# Ajouter le repository Docker -echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - -# Installer Docker -sudo apt update -sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin - -# Ajouter l'utilisateur au groupe docker -sudo usermod -aG docker $USER - -# DĂ©marrer Docker -sudo systemctl start docker -sudo systemctl enable docker +# VĂ©rifier l'installation +rustc --version +cargo --version ``` -#### CentOS/RHEL +#### Windows ```bash -# Installer les dĂ©pendances -sudo yum install -y yum-utils - -# Ajouter le repository Docker -sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - -# Installer Docker -sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin - -# DĂ©marrer Docker -sudo systemctl start docker -sudo systemctl enable docker - -# Ajouter l'utilisateur au groupe docker -sudo usermod -aG docker $USER +# TĂ©lĂ©charger et installer rustup depuis +# https://rustup.rs/ ``` -### 2. Configuration SSH (RecommandĂ©) +### 2. Installation de wasm-pack + +```bash +# Installer wasm-pack +cargo install wasm-pack + +# VĂ©rifier l'installation +wasm-pack --version +``` + +### 3. Configuration SSH (RecommandĂ©) ```bash # GĂ©nĂ©rer une clĂ© SSH -ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_4nk -C "4nk-automation" +ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_sdk -C "sdk-client-automation" # Ajouter Ă l'agent SSH -ssh-add ~/.ssh/id_ed25519_4nk +ssh-add ~/.ssh/id_ed25519_sdk # Configurer Git pour utiliser la clĂ© -git config --global core.sshCommand "ssh -i ~/.ssh/id_ed25519_4nk" +git config --global core.sshCommand "ssh -i ~/.ssh/id_ed25519_sdk" -# Afficher la clĂ© publique pour GitLab -cat ~/.ssh/id_ed25519_4nk.pub +# Afficher la clĂ© publique pour Gitea +cat ~/.ssh/id_ed25519_sdk.pub ``` -**Ajouter la clĂ© publique Ă GitLab :** -1. Aller sur GitLab > Settings > SSH Keys +**Ajouter la clĂ© publique Ă Gitea :** +1. Aller sur Gitea > Settings > SSH Keys 2. Coller la clĂ© publique 3. Cliquer sur "Add key" -### 3. Clonage du Repository +### 4. Clonage du Repository ```bash # Cloner avec SSH (recommandĂ©) -git clone git@git.4nkweb.com:4nk/4NK_node.git -cd 4NK_node +git clone git@git.4nkweb.com:4nk/sdk_client.git +cd sdk_client -# Ou avec HTTPS (si SSH non configurĂ©) -# git clone https://git.4nkweb.com/4nk/4NK_node.git -# cd 4NK_node +# Ou cloner avec HTTPS +git clone https://git.4nkweb.com/4nk/sdk_client.git +cd sdk_client ``` -### 4. VĂ©rification de l'Installation +## đ§ Configuration + +### Variables d'Environnement + +CrĂ©er un fichier `.env` Ă la racine du projet : ```bash -# VĂ©rifier Docker -docker --version -docker-compose --version +# Configuration Rust +RUST_LOG=info +RUST_BACKTRACE=1 +CARGO_INCREMENTAL=1 -# VĂ©rifier la connectivitĂ© GitLab -ssh -T git@git.4nkweb.com +# Configuration WASM +WASM_PACK_TARGET=web +WASM_PACK_PROFILE=release -# VĂ©rifier les permissions -ls -la +# Configuration de dĂ©veloppement +CARGO_PROFILE_DEV_OPT_LEVEL=0 +CARGO_PROFILE_RELEASE_OPT_LEVEL=3 ``` -## đ§ Configuration Initiale +### Configuration Cargo -### 1. Configuration des Variables d'Environnement +Le fichier `Cargo.toml` est dĂ©jĂ configurĂ© pour : +- DĂ©pendances Rust +- Features WASM +- Configuration de build +- Tests et documentation + +### Configuration wasm-pack ```bash -# CrĂ©er le fichier d'environnement -cat > .env << EOF -# Configuration 4NK Node -PROJECT_NAME=4NK Node -NETWORK_NAME=4nk_node_btcnet +# Configuration wasm-pack +wasm-pack build --target web --out-dir pkg -# Logs -RUST_LOG=debug,bitcoincore_rpc=trace - -# Bitcoin -BITCOIN_COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie - -# Synchronisation -ENABLE_SYNC_TEST=1 - -# Ports -TOR_PORTS=9050:9050,9051:9051 -BITCOIN_PORTS=38333:38333,18443:18443,29000:29000 -BLINDBIT_PORTS=8000:8000 -RELAY_1_PORTS=8090:8090,8091:8091 -RELAY_2_PORTS=8092:8090,8093:8091 -RELAY_3_PORTS=8094:8090,8095:8091 -EOF -``` - -### 2. Configuration Bitcoin Core - -```bash -# VĂ©rifier la configuration Bitcoin -cat bitcoin/bitcoin.conf - -# Modifier si nĂ©cessaire -nano bitcoin/bitcoin.conf -``` - -**Configuration recommandĂ©e :** -```ini -# Configuration Bitcoin Core Signet -signet=1 -rpcuser=bitcoin -rpcpassword=your_secure_password -rpcbind=0.0.0.0 -rpcallowip=172.19.0.0/16 -zmqpubrawblock=tcp://0.0.0.0:29000 -zmqpubrawtx=tcp://0.0.0.0:29000 -txindex=1 -server=1 -listen=1 -``` - -### 3. Configuration Blindbit - -```bash -# VĂ©rifier la configuration Blindbit -cat blindbit/blindbit.toml - -# Modifier si nĂ©cessaire -nano blindbit/blindbit.toml -``` - -**Configuration recommandĂ©e :** -```toml -# Configuration Blindbit -host = "0.0.0.0:8000" -chain = "signet" -rpc_endpoint = "http://bitcoin:18443" -cookie_path = "/home/bitcoin/.bitcoin/signet/.cookie" -sync_start_height = 1 -max_parallel_tweak_computations = 4 -max_parallel_requests = 4 -``` - -### 4. Configuration des Relais - -```bash -# VĂ©rifier les configurations des relais -ls -la sdk_relay/.conf.docker.* - -# Modifier si nĂ©cessaire -nano sdk_relay/.conf.docker.relay1 -nano sdk_relay/.conf.docker.relay2 -nano sdk_relay/.conf.docker.relay3 -``` - -**Configuration recommandĂ©e pour chaque relay :** -```ini -core_url=http://bitcoin:18443 -core_wallet=relay_wallet -ws_url=0.0.0.0:8090 -wallet_name=relay_wallet.json -network=signet -blindbit_url=http://blindbit:8000 -zmq_url=tcp://bitcoin:29000 -data_dir=.4nk -cookie_path=/home/bitcoin/.4nk/bitcoin.cookie -dev_mode=true -standalone=false -relay_id=relay-1 # Changer pour chaque relay -``` - -## đ DĂ©marrage - -### 1. DĂ©marrage Complet - -```bash -# DĂ©marrer tous les services -./restart_4nk_node.sh - -# VĂ©rifier le statut -docker ps -``` - -### 2. DĂ©marrage SĂ©quentiel (Debug) - -```bash -# DĂ©marrer Tor -./restart_4nk_node.sh -t - -# DĂ©marrer Bitcoin Core -./restart_4nk_node.sh -b - -# Attendre la synchronisation Bitcoin (10-30 minutes) -echo "Attendre la synchronisation Bitcoin..." -docker logs bitcoin-signet | grep "progress" - -# DĂ©marrer Blindbit -./restart_4nk_node.sh -l - -# DĂ©marrer les relais -./restart_4nk_node.sh -r -``` - -### 3. VĂ©rification du DĂ©marrage - -```bash -# VĂ©rifier tous les services -docker ps - -# VĂ©rifier les logs -docker-compose logs --tail=50 - -# VĂ©rifier la connectivitĂ© -./test_final_sync.sh +# Ou pour Node.js +wasm-pack build --target nodejs --out-dir pkg ``` ## đ§Ș Tests Post-Installation -### 1. Tests de ConnectivitĂ© +### 1. Test de Compilation Rust ```bash -# Test de base -./test_final_sync.sh +# Test de compilation +cargo build -# Test de synchronisation -./test_sync_logs.sh +# VĂ©rifier le build +cargo build --release -# Test des messages WebSocket -python3 test_websocket_messages.py +# VĂ©rifier les dĂ©pendances +cargo check ``` -### 2. Tests de Performance +### 2. Test de Compilation WASM ```bash -# VĂ©rifier l'utilisation des ressources -docker stats +# Compilation WASM +wasm-pack build --target web -# Test de charge -python3 test_websocket_messages.py --load-test - -# Monitoring de la synchronisation -./monitor_sync.sh +# VĂ©rifier les fichiers gĂ©nĂ©rĂ©s +ls -la pkg/ ``` -### 3. Tests de SĂ©curitĂ© +### 3. Test des Tests ```bash -# VĂ©rifier les ports exposĂ©s -netstat -tlnp | grep -E "(18443|8000|9050|8090)" +# Tests unitaires +cargo test -# VĂ©rifier les permissions -ls -la sdk_relay/.conf* -ls -la bitcoin/bitcoin.conf -ls -la blindbit/blindbit.toml +# Tests d'intĂ©gration +cargo test --test integration + +# Tests WASM +wasm-pack test --headless --firefox ``` -## đ§ Configuration AvancĂ©e - -### 1. Configuration RĂ©seau +### 4. Test de Linting ```bash -# CrĂ©er un rĂ©seau Docker personnalisĂ© -docker network create 4nk-network --subnet=172.20.0.0/16 +# Clippy (linter Rust) +cargo clippy -- -D warnings -# Modifier docker-compose.yml -sed -i 's/4nk_default/4nk-network/g' docker-compose.yml -``` - -### 2. Configuration SSL/TLS - -```bash -# GĂ©nĂ©rer un certificat auto-signĂ© -openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes - -# Configurer nginx comme proxy SSL -cat > nginx.conf << EOF -server { - listen 443 ssl; - server_name your-domain.com; - - ssl_certificate cert.pem; - ssl_certificate_key key.pem; - - location / { - proxy_pass http://localhost:8090; - proxy_http_version 1.1; - proxy_set_header Upgrade \$http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header Host \$host; - } -} -EOF -``` - -### 3. Configuration de Pare-feu - -```bash -# Autoriser seulement les ports nĂ©cessaires -sudo ufw allow 18443/tcp # Bitcoin Core RPC -sudo ufw allow 8090/tcp # sdk_relay WebSocket -sudo ufw allow 8000/tcp # Blindbit API -sudo ufw enable - -# VĂ©rifier les rĂšgles -sudo ufw status numbered +# Formatage +cargo fmt -- --check ``` ## đš DĂ©pannage ### ProblĂšmes Courants -#### 1. Docker Non InstallĂ© - +#### Rust non trouvĂ© ```bash -# VĂ©rifier l'installation Docker -docker --version +# VĂ©rifier l'installation +which rustc +rustc --version -# Si non installĂ©, suivre les Ă©tapes d'installation ci-dessus +# RĂ©installer si nĂ©cessaire +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +source ~/.cargo/env ``` -#### 2. Permissions Docker - +#### wasm-pack non trouvĂ© ```bash -# VĂ©rifier les permissions -docker ps +# VĂ©rifier l'installation +which wasm-pack +wasm-pack --version -# Si erreur de permission -sudo usermod -aG docker $USER -newgrp docker +# RĂ©installer si nĂ©cessaire +cargo install wasm-pack ``` -#### 3. Ports DĂ©jĂ UtilisĂ©s - +#### Erreurs de compilation ```bash -# VĂ©rifier les ports utilisĂ©s -sudo netstat -tlnp | grep -E "(18443|8000|9050|8090)" +# Nettoyer et recompiler +cargo clean +cargo build -# ArrĂȘter les services conflictuels -sudo docker-compose down +# VĂ©rifier les dĂ©pendances +cargo update +cargo check ``` -#### 4. ProblĂšmes de Synchronisation Bitcoin - +#### Erreurs WASM ```bash -# VĂ©rifier les logs Bitcoin -docker logs bitcoin-signet +# Nettoyer et recompiler WASM +rm -rf pkg/ +wasm-pack build --target web -# VĂ©rifier l'espace disque -df -h - -# RedĂ©marrer Bitcoin Core -docker restart bitcoin-signet +# VĂ©rifier les dĂ©pendances WASM +cargo tree ``` -### Logs Utiles +### Logs DĂ©taillĂ©s ```bash -# Logs de tous les services -docker-compose logs -f +# Logs de compilation Rust +RUST_LOG=debug cargo build -# Logs d'un service spĂ©cifique -docker logs bitcoin-signet -docker logs blindbit-oracle -docker logs sdk_relay_1 +# Logs de compilation WASM +wasm-pack build --target web --verbose -# Logs avec timestamps -docker-compose logs -t - -# Logs depuis une date -docker-compose logs --since="2024-01-01T00:00:00" +# Logs de tests +RUST_LOG=debug cargo test ``` +## đ SĂ©curitĂ© + +### VĂ©rifications de SĂ©curitĂ© + +```bash +# Audit des dĂ©pendances Rust +cargo audit + +# VĂ©rification des vulnĂ©rabilitĂ©s +cargo audit --deny warnings + +# VĂ©rification du code +cargo clippy -- -D warnings +``` + +### Bonnes Pratiques + +- Maintenir Rust Ă jour +- Utiliser des dĂ©pendances sĂ©curisĂ©es +- Tester rĂ©guliĂšrement le code +- Valider les entrĂ©es +- Utiliser des variables d'environnement pour les secrets + ## đ Monitoring -### 1. Monitoring de Base +### MĂ©triques d'Installation ```bash -# Statut des conteneurs -docker ps +# Taille du projet +du -sh . -# Utilisation des ressources -docker stats +# Nombre de fichiers +find . -type f | wc -l -# Espace disque -docker system df +# DĂ©pendances Rust +cargo tree | wc -l + +# Taille du binaire +ls -lh target/release/sdk_client.wasm ``` -### 2. Monitoring AvancĂ© +### VĂ©rification de l'Installation ```bash -# Surveillance de la synchronisation -./monitor_sync.sh +# Script de vĂ©rification +./scripts/verify-installation.sh -# Monitoring en continu -while true; do - echo "=== $(date) ===" - docker stats --no-stream | grep -E "(sdk_relay|bitcoin)" - sleep 30 -done +# Tests automatisĂ©s +cargo test --all ``` -### 3. Alertes +## đŻ Prochaines Ătapes -```bash -# Script d'alerte simple -cat > monitor_alert.sh << 'EOF' -#!/bin/bash -if ! docker ps | grep -q "bitcoin-signet.*Up"; then - echo "ALERTE: Bitcoin Core n'est pas en cours d'exĂ©cution!" - # Ajouter notification (email, Slack, etc.) -fi -EOF +AprĂšs l'installation rĂ©ussie : -chmod +x monitor_alert.sh -``` +1. **Lire le [Guide d'Utilisation](USAGE.md)** - Utiliser le SDK +2. **Consulter l'[Architecture](ARCHITECTURE.md)** - Comprendre le systĂšme +3. **Explorer les [APIs](API.md)** - Utiliser les fonctionnalitĂ©s +4. **Configurer l'[IntĂ©gration 4NK_node](INTEGRATION_4NK_NODE.md)** - DĂ©ployer en production -## đ Mise Ă Jour +## đ Support -### 1. Mise Ă Jour de l'Infrastructure +En cas de problĂšme : -```bash -# Sauvegarder la configuration -cp -r . ../4NK_node_backup_$(date +%Y%m%d) - -# Mettre Ă jour le code -git pull origin main - -# RedĂ©marrer les services -./restart_4nk_node.sh -``` - -### 2. Mise Ă Jour de Docker - -```bash -# Mettre Ă jour Docker -sudo apt update -sudo apt upgrade docker-ce docker-ce-cli containerd.io - -# RedĂ©marrer Docker -sudo systemctl restart docker -``` - -### 3. Mise Ă Jour des Images - -```bash -# Reconstruire les images -docker-compose build --no-cache - -# RedĂ©marrer les services -docker-compose up -d -``` - -## đ Checklist d'Installation - -- [ ] Docker installĂ© et configurĂ© -- [ ] Docker Compose installĂ© -- [ ] ClĂ© SSH configurĂ©e pour GitLab -- [ ] Repository clonĂ© -- [ ] Variables d'environnement configurĂ©es -- [ ] Configurations Bitcoin Core vĂ©rifiĂ©es -- [ ] Configurations Blindbit vĂ©rifiĂ©es -- [ ] Configurations des relais vĂ©rifiĂ©es -- [ ] Services dĂ©marrĂ©s avec succĂšs -- [ ] Tests de connectivitĂ© passĂ©s -- [ ] Tests de synchronisation passĂ©s -- [ ] Monitoring configurĂ© -- [ ] Pare-feu configurĂ© (optionnel) -- [ ] SSL/TLS configurĂ© (optionnel) - -## đ Installation TerminĂ©e - -FĂ©licitations ! L'infrastructure 4NK Node est maintenant installĂ©e et configurĂ©e. - -**Prochaines Ă©tapes :** -1. Consulter le [Guide d'Utilisation](USAGE.md) -2. Configurer les [NĆuds Externes](EXTERNAL_NODES.md) -3. Tester la [Synchronisation](SYNCHRONIZATION.md) -4. Configurer le [Monitoring](PERFORMANCE.md) +1. Consulter la [documentation](INDEX.md) +2. VĂ©rifier les [issues existantes](https://git.4nkweb.com/4nk/sdk_client/issues) +3. CrĂ©er une nouvelle issue avec les dĂ©tails du problĂšme +4. Inclure les logs et la configuration utilisĂ©e --- + +**đ Installation terminĂ©e ! sdk_client est prĂȘt Ă ĂȘtre utilisĂ©.** âš diff --git a/docs/USAGE.md b/docs/USAGE.md index 23c3612..8922124 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -1,667 +1,469 @@ -# đ Guide d'Utilisation - 4NK Node +# đ Guide d'Utilisation - sdk_client -Guide complet pour utiliser l'infrastructure 4NK Node au quotidien. +Guide complet pour utiliser le SDK client pour les Silent Payments au quotidien. -## đ DĂ©marrage Quotidien +## đ Compilation et Build -### 1. DĂ©marrage Rapide +### 1. Build de DĂ©veloppement ```bash -# DĂ©marrer tous les services -./restart_4nk_node.sh +# Build de dĂ©veloppement +cargo build -# VĂ©rifier le statut -docker ps +# Build avec optimisations +cargo build --release + +# VĂ©rifier le build +cargo check ``` -### 2. DĂ©marrage SĂ©quentiel +### 2. Compilation WASM ```bash -# DĂ©marrer Tor -./restart_4nk_node.sh -t +# Compilation WASM pour le web +wasm-pack build --target web -# DĂ©marrer Bitcoin Core -./restart_4nk_node.sh -b +# Compilation WASM pour Node.js +wasm-pack build --target nodejs -# Attendre la synchronisation Bitcoin -echo "Attendre la synchronisation Bitcoin (10-30 minutes)..." -docker logs bitcoin-signet | grep "progress" - -# DĂ©marrer Blindbit -./restart_4nk_node.sh -l - -# DĂ©marrer les relais -./restart_4nk_node.sh -r +# Compilation WASM avec optimisations +wasm-pack build --target web --release ``` -### 3. VĂ©rification du DĂ©marrage +### 3. VĂ©rification du Build ```bash -# VĂ©rifier tous les services -docker ps +# VĂ©rifier les fichiers gĂ©nĂ©rĂ©s +ls -la pkg/ -# VĂ©rifier les logs -docker-compose logs --tail=50 +# VĂ©rifier la taille du WASM +ls -lh pkg/sdk_client_bg.wasm -# VĂ©rifier la connectivitĂ© -./test_final_sync.sh +# VĂ©rifier les types TypeScript +cat pkg/sdk_client.d.ts ``` -## đ§ OpĂ©rations Quotidiennes +## đ§ IntĂ©gration dans les Projets -### 1. Surveillance des Services +### 1. IntĂ©gration JavaScript/TypeScript -```bash -# Statut des services -docker ps +```javascript +// Import du module WASM +import init, { generate_sp_wallet, lock_freezed_utxos } from './pkg/sdk_client.js'; -# Logs en temps rĂ©el -docker-compose logs -f +// Initialisation +await init(); -# Utilisation des ressources -docker stats - -# Espace disque -docker system df +// Utilisation des fonctions +const wallet = generate_sp_wallet(); +const success = lock_freezed_utxos(wallet, utxos); ``` -### 2. Monitoring de la Synchronisation +### 2. IntĂ©gration Rust -```bash -# Surveillance de la synchronisation -./monitor_sync.sh +```rust +use sdk_client::{generate_sp_wallet, lock_freezed_utxos}; -# Test de synchronisation -./test_sync_logs.sh - -# Test des messages WebSocket -python3 test_websocket_messages.py +// Utilisation directe +let wallet = generate_sp_wallet(); +let success = lock_freezed_utxos(&wallet, &utxos); ``` -### 3. Gestion des Logs +### 3. IntĂ©gration Web -```bash -# Logs de tous les services -docker-compose logs -f - -# Logs d'un service spĂ©cifique -docker logs bitcoin-signet -docker logs blindbit-oracle -docker logs sdk_relay_1 - -# Logs avec timestamps -docker-compose logs -t - -# Logs depuis une date -docker-compose logs --since="2024-01-01T00:00:00" - -# Logs des 100 derniĂšres lignes -docker-compose logs --tail=100 +```html + + +
+ + + +