# 📦 Guide d'Installation - sdk_client 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+), 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 - **Rust** : Version 1.70+ (obligatoire) - **Cargo** : Inclus avec Rust - **wasm-pack** : Version 0.12+ (pour compilation WASM) - **Git** : Version 2.25+ - **Node.js** : Version 18.0+ (optionnel, pour tests) ## 🚀 Installation ### 1. Installation de Rust #### Linux/macOS ```bash # Installer Rust via rustup curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Recharger l'environnement source ~/.cargo/env # Vérifier l'installation rustc --version cargo --version ``` #### Windows ```bash # Télécharger et installer rustup depuis # https://rustup.rs/ ``` ### 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_sdk -C "sdk-client-automation" # Ajouter à l'agent SSH ssh-add ~/.ssh/id_ed25519_sdk # Configurer Git pour utiliser la clé git config --global core.sshCommand "ssh -i ~/.ssh/id_ed25519_sdk" # Afficher la clé publique pour Gitea cat ~/.ssh/id_ed25519_sdk.pub ``` **Ajouter la clé publique à Gitea :** 1. Aller sur Gitea > Settings > SSH Keys 2. Coller la clé publique 3. Cliquer sur "Add key" ### 4. Clonage du Repository ```bash # Cloner avec SSH (recommandé) git clone git@git.4nkweb.com:4nk/sdk_client.git cd sdk_client # Ou cloner avec HTTPS git clone https://git.4nkweb.com/4nk/sdk_client.git cd sdk_client ``` ## 🔧 Configuration ### Variables d'Environnement Créer un fichier `.env` à la racine du projet : ```bash # Configuration Rust RUST_LOG=info RUST_BACKTRACE=1 CARGO_INCREMENTAL=1 # Configuration WASM WASM_PACK_TARGET=web WASM_PACK_PROFILE=release # Configuration de développement CARGO_PROFILE_DEV_OPT_LEVEL=0 CARGO_PROFILE_RELEASE_OPT_LEVEL=3 ``` ### Configuration Cargo Le fichier `Cargo.toml` est déjà configuré pour : - Dépendances Rust - Features WASM - Configuration de build - Tests et documentation ### Configuration wasm-pack ```bash # Configuration wasm-pack wasm-pack build --target web --out-dir pkg # Ou pour Node.js wasm-pack build --target nodejs --out-dir pkg ``` ## 🧪 Tests Post-Installation ### 1. Test de Compilation Rust ```bash # Test de compilation cargo build # Vérifier le build cargo build --release # Vérifier les dépendances cargo check ``` ### 2. Test de Compilation WASM ```bash # Compilation WASM wasm-pack build --target web # Vérifier les fichiers générés ls -la pkg/ ``` ### 3. Test des Tests ```bash # Tests unitaires cargo test # Tests d'intégration cargo test --test integration # Tests WASM wasm-pack test --headless --firefox ``` ### 4. Test de Linting ```bash # Clippy (linter Rust) cargo clippy -- -D warnings # Formatage cargo fmt -- --check ``` ## 🚨 Dépannage ### Problèmes Courants #### Rust non trouvé ```bash # Vérifier l'installation which rustc rustc --version # Réinstaller si nécessaire curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.cargo/env ``` #### wasm-pack non trouvé ```bash # Vérifier l'installation which wasm-pack wasm-pack --version # Réinstaller si nécessaire cargo install wasm-pack ``` #### Erreurs de compilation ```bash # Nettoyer et recompiler cargo clean cargo build # Vérifier les dépendances cargo update cargo check ``` #### Erreurs WASM ```bash # Nettoyer et recompiler WASM rm -rf pkg/ wasm-pack build --target web # Vérifier les dépendances WASM cargo tree ``` ### Logs Détaillés ```bash # Logs de compilation Rust RUST_LOG=debug cargo build # Logs de compilation WASM wasm-pack build --target web --verbose # 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 ### Métriques d'Installation ```bash # Taille du projet du -sh . # Nombre de fichiers find . -type f | wc -l # Dépendances Rust cargo tree | wc -l # Taille du binaire ls -lh target/release/sdk_client.wasm ``` ### Vérification de l'Installation ```bash # Script de vérification ./scripts/verify-installation.sh # Tests automatisés cargo test --all ``` ## 🎯 Prochaines Étapes Après l'installation réussie : 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 ## 📞 Support En cas de problème : 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é.** ✨