4NK_dev/README.md

3.3 KiB

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

# 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

# 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

# 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

🔧 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.