docs: Mise à jour complète de la documentation

- Ajout du README.md principal avec architecture et guide d'utilisation
- Mise à jour de docs/modules.md avec les nouveaux scripts de gestion
- Documentation de la migration WASM et de l'état actuel des projets
- Guides d'installation et de développement pour tous les composants
This commit is contained in:
Debian 2025-08-29 15:44:48 +00:00
parent 9b9f238ab0
commit fa87597d15
2 changed files with 209 additions and 16 deletions

114
README.md Normal file
View File

@ -0,0 +1,114 @@
# 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.

View File

@ -1,27 +1,73 @@
# Modules Docker (4NK_dev)
## 4NK_node
- Sappuie sur le `docker-compose.yml` existant dans `4NK_node/`.
- Scripts:
- `modules/4NK_node/build.sh` : construit les services avec `docker compose build`.
- `modules/4NK_node/up.sh` : démarre les services en détaché.
- `modules/4NK_node/down.sh` : arrête et nettoie les services.
- `modules/4NK_node/logs.sh` : affiche les logs (suivi).
- `modules/4NK_node/clean.sh` : down -v + prune dimages.
- Version/tag: lit `4NK_node/VERSION` si présent, sinon utilise `git describe` pour définir `COMPOSE_PROJECT_NAME`.
Infrastructure Docker complète pour l'écosystème 4NK avec Bitcoin, Tor, et services 4NK.
### Services inclus
- **bitcoin-signet** : Nœud Bitcoin testnet
- **tor-proxy** : Proxy Tor pour l'anonymat
- **blindbit-oracle** : Oracle pour les transactions confidentielles
- **sdk-storage** : Service de stockage distribué
- **sdk_relay_1/2/3** : Services de relais P2P
- **4nk-ihm-client** : Interface utilisateur web
- **4nk-reverse-proxy** : Proxy inverse pour les services
### Scripts de gestion
- `4NK_node/scripts/manage_services.sh` : Script principal de gestion
- `start` : Démarre tous les services
- `stop` : Arrête tous les services
- `clean` : Nettoie conteneurs, images, volumes
- `restart` : Redémarre tous les services
- `status` : Affiche le statut des services
- `logs` : Affiche les logs des services
### Scripts legacy (modules/)
- `modules/4NK_node/build.sh` : construit les services avec `docker compose build`
- `modules/4NK_node/up.sh` : démarre les services en détaché
- `modules/4NK_node/down.sh` : arrête et nettoie les services
- `modules/4NK_node/logs.sh` : affiche les logs (suivi)
- `modules/4NK_node/clean.sh` : down -v + prune d'images
### Version/tag
Lit `4NK_node/VERSION` si présent, sinon utilise `git describe` pour définir `COMPOSE_PROJECT_NAME`.
## 4NK_template
- Dockerfile multi-stage Node fourni dans `modules/4NK_template/Dockerfile`.
- Scripts:
- `modules/4NK_template/build.sh` : build de limage à partir de `4NK_template/`.
- `modules/4NK_template/run.sh` : exécute limage, mappe le port 3000.
- `modules/4NK_template/clean.sh` : supprime limage construite et fait un prune.
- Version/tag: lit `4NK_template/VERSION` si présent, sinon `git describe`.
Template Docker multi-stage Node.js pour les nouveaux projets 4NK.
### Dockerfile
- Multi-stage build optimisé
- Support pour Node.js et Rust
- Configuration automatique des hooks Git
### Scripts
- `modules/4NK_template/build.sh` : build de l'image à partir de `4NK_template/`
- `modules/4NK_template/run.sh` : exécute l'image, mappe le port 3000
- `modules/4NK_template/clean.sh` : supprime l'image construite et fait un prune
### Version/tag
Lit `4NK_template/VERSION` si présent, sinon `git describe`.
## Prérequis
- Docker et Docker Compose (plugin) installés.
- Docker et Docker Compose v2 (plugin) installés
- Rust (latest stable) pour les projets SDK
- Node.js 18+ pour les clients
## Utilisation (séquentielle)
## Utilisation (recommandée)
### Gestion moderne avec manage_services.sh
```bash
# Démarrer l'infrastructure complète
cd 4NK_node
./scripts/manage_services.sh start
# Vérifier le statut
./scripts/manage_services.sh status
# Arrêter et nettoyer
./scripts/manage_services.sh clean
```
### Utilisation séquentielle (legacy)
1. Construire 4NK_node
- `bash modules/4NK_node/build.sh`
2. Démarrer 4NK_node
@ -35,3 +81,36 @@
6. Arrêt 4NK_node
- `bash modules/4NK_node/down.sh`
## Configuration
### Variables d'environnement
- `COMPOSE_PROJECT_NAME` : Nom du projet Docker (auto-détecté)
- `DOCKER_BUILDKIT` : Active BuildKit pour des builds plus rapides
### Ports exposés
- **9050-9051** : Tor proxy
- **18443** : Bitcoin RPC
- **29000** : Bitcoin P2P
- **8000** : Blindbit oracle
- **8081** : SDK Storage
- **8090-8091** : SDK Relays
## Troubleshooting
### Problèmes courants
1. **Ports déjà utilisés** : Vérifier avec `netstat -tulpn | grep <port>`
2. **Images corrompues** : Utiliser `./scripts/manage_services.sh clean`
3. **Services qui ne démarrent pas** : Vérifier les logs avec `./scripts/manage_services.sh logs`
### Logs et debugging
```bash
# Logs de tous les services
./scripts/manage_services.sh logs
# Logs d'un service spécifique
docker compose logs <service-name>
# Shell dans un conteneur
docker compose exec <service-name> /bin/bash
```