sdk_client/docs/INSTALLATION.md

310 lines
5.6 KiB
Markdown

# 📦 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é.** ✨