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:
parent
9b9f238ab0
commit
fa87597d15
114
README.md
Normal file
114
README.md
Normal 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.
|
111
docs/modules.md
111
docs/modules.md
@ -1,27 +1,73 @@
|
||||
# Modules Docker (4NK_dev)
|
||||
|
||||
## 4NK_node
|
||||
- S’appuie 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 d’images.
|
||||
- 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 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`.
|
||||
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
|
||||
```
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user