117 lines
3.3 KiB
Markdown
117 lines
3.3 KiB
Markdown
# 4NK Development Environment
|
|
|
|
Ce dépôt contient l'environnement de développement complet pour l'écosystème 4NK, incluant tous les modules SDK, clients et services.
|
|
|
|
## 🏗️ Architecture
|
|
|
|
### Projets SDK (Rust)
|
|
- **sdk_common** : Bibliothèque commune avec types et utilitaires partagés
|
|
- **sdk_client** : Client SDK principal avec support WASM (migration flate2 en cours)
|
|
- **sdk_storage** : Service de stockage distribué
|
|
- **sdk_signer** : Service de signature avec interface TypeScript
|
|
|
|
### Clients (Node.js/TypeScript)
|
|
- **sdk_signer_client** : Client TypeScript pour sdk_signer
|
|
- **ihm_client** : Interface utilisateur web
|
|
|
|
### Services
|
|
- **4NK_node** : Infrastructure Docker complète avec Bitcoin, Tor, et services 4NK
|
|
- **sdk_relay** : Service de relais pour la communication P2P
|
|
|
|
### Outils
|
|
- **4NK_template** : Template Docker pour les nouveaux projets
|
|
- **4NK_wallet** : Application wallet
|
|
|
|
## 🚀 Démarrage rapide
|
|
|
|
### Prérequis
|
|
- Docker et Docker Compose v2
|
|
- Rust (latest stable)
|
|
- Node.js 18+
|
|
- Git
|
|
|
|
### Installation
|
|
```bash
|
|
# Cloner le dépôt
|
|
git clone <repository-url>
|
|
cd 4NK_dev
|
|
|
|
# Configurer l'environnement
|
|
./setup_dev_env.sh
|
|
|
|
# Démarrer l'infrastructure
|
|
cd 4NK_node
|
|
./scripts/manage_services.sh start
|
|
```
|
|
|
|
## 📦 Gestion des dépendances WASM
|
|
|
|
### État actuel
|
|
- **sdk_common** : ✅ Migré vers `flate2` (remplace `zstd`)
|
|
- **sdk_client** : 🔄 Stub WASM temporaire avec `flate2` (en attente de migration complète)
|
|
- **sdk_signer** : ✅ Compatible avec le stub WASM
|
|
|
|
### Migration en cours
|
|
1. **Phase 1** : ✅ Migration `sdk_common` vers `flate2`
|
|
2. **Phase 2** : 🔄 Migration `sdk_client` vers `k256` et `flate2`
|
|
3. **Phase 3** : ⏳ Intégration complète WASM
|
|
4. **Phase 4** : ⏳ Déploiement
|
|
|
|
## 🛠️ Développement
|
|
|
|
### Compilation des projets
|
|
```bash
|
|
# Compiler tous les projets Rust
|
|
for project in sdk_common sdk_client sdk_storage; do
|
|
cd $project && cargo build --release && cd ..
|
|
done
|
|
|
|
# Compiler les projets Node.js
|
|
for project in sdk_signer sdk_signer_client ihm_client; do
|
|
cd $project && npm install && npm run build && cd ..
|
|
done
|
|
```
|
|
|
|
### Gestion des services
|
|
```bash
|
|
# Arrêter tous les services
|
|
cd 4NK_node && ./scripts/manage_services.sh stop
|
|
|
|
# Nettoyer l'environnement
|
|
./scripts/manage_services.sh clean
|
|
|
|
# Redémarrer les services
|
|
./scripts/manage_services.sh start
|
|
```
|
|
|
|
## 📚 Documentation
|
|
|
|
- [Résultats de compilation](COMPILATION_RESULTS.md) - Statut détaillé de tous les projets
|
|
- [Modules Docker](docs/modules.md) - Documentation des modules Docker
|
|
- [Changelog](CHANGELOG.md) - Historique des versions
|
|
|
|
## 🔧 Scripts utiles
|
|
|
|
- `setup_dev_env.sh` : Configuration de l'environnement de développement
|
|
- `update_repos.sh` : Mise à jour des dépôts depuis repos.csv
|
|
- `4NK_node/scripts/manage_services.sh` : Gestion des services Docker
|
|
|
|
## 📋 Structure des branches
|
|
|
|
- **main** : Branche principale pour 4NK_dev et 4NK_node
|
|
- **docker-support** : Branche de développement pour les SDKs et clients
|
|
- **dev** : Branche de développement pour certaines fonctionnalités
|
|
|
|
## 🤝 Contribution
|
|
|
|
1. Créer une branche depuis `docker-support` ou `main` selon le projet
|
|
2. Développer et tester localement
|
|
3. Pousser les modifications sur la branche appropriée
|
|
4. Créer une pull request
|
|
|
|
## 📄 Licence
|
|
|
|
MIT License - voir les fichiers LICENSE individuels dans chaque projet.
|
|
|
|
|