311 lines
5.6 KiB
Markdown
311 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é.** ✨
|
|
|
|
|