4NK_node/README.md

5.9 KiB

4NK Node - Infrastructure Docker

Infrastructure Docker complète pour le développement et le déploiement de services 4NK

🏗️ Architecture

4NK Node est composé de plusieurs services orchestrés via Docker Compose :

  • Tor : Proxy anonyme pour Bitcoin Core
  • Bitcoin Core : Nœud Bitcoin en mode signet
  • Blindbit : Service de filtres pour les paiements silencieux
  • sdk_relay : Service de relais pour l'intégration avec les applications

🚀 Démarrage rapide

Prérequis

  • Docker et Docker Compose installés
  • Au moins 10 Go d'espace disque disponible
  • Connexion Internet pour la synchronisation Bitcoin

Installation

# Cloner le repository
git clone https://git.4nkweb.com/4nk/4NK_node.git
cd 4NK_node

# Lancer tous les services
sudo docker-compose up -d

# Vérifier le statut des services
sudo docker-compose ps

Services disponibles

Service Port Description
Tor 9050, 9051 Proxy anonyme
Bitcoin Core 18443 (RPC), 29000 (ZMQ) Nœud Bitcoin signet
Blindbit 8000 Service de filtres
sdk_relay 8090, 8091 Service de relais

📋 Configuration

Bitcoin Core

Configuration automatique pour le réseau signet avec :

  • RPC activé sur le port 18443
  • ZMQ activé sur le port 29000
  • Connexion Tor pour l'anonymat
  • Synchronisation automatique

Blindbit

Service de filtres pour les paiements silencieux :

  • Version stable (branche master)
  • Connexion automatique à Bitcoin Core
  • API REST sur le port 8000

sdk_relay

Service de relais pour l'intégration :

  • Configuration Docker automatique
  • Authentification par cookie Bitcoin Core
  • Connexion aux services via réseau Docker

🔧 Scripts utilitaires

Tests de connectivité

# Test complet de tous les services
cd sdk_relay
./test_final.sh

# Test de connectivité réseau
./test_connectivity.sh

# Test simple
./test_simple.sh

Débogage

# Débogage du container sdk_relay
./debug_container.sh

# Logs des services
sudo docker-compose logs [service_name]

🌐 Réseau Docker

Tous les services communiquent via le réseau 4nk_node_btcnet avec résolution DNS automatique :

  • bitcoin : Bitcoin Core
  • blindbit : Service Blindbit
  • tor : Proxy Tor
  • sdk_relay : Service de relais

📊 Monitoring

Healthchecks

Les services incluent des healthchecks automatiques :

# Vérifier l'état des healthchecks
sudo docker-compose ps

# Logs des healthchecks
sudo docker-compose logs | grep health

Logs

# Logs de tous les services
sudo docker-compose logs -f

# Logs d'un service spécifique
sudo docker-compose logs -f bitcoin
sudo docker-compose logs -f blindbit
sudo docker-compose logs -f sdk_relay

🔒 Sécurité

Authentification

  • Bitcoin Core utilise l'authentification par cookie
  • Les cookies sont automatiquement copiés dans les containers
  • Permissions restrictives sur les fichiers sensibles

Réseau

  • Isolation via réseau Docker
  • Communication interne uniquement
  • Ports exposés limités au minimum nécessaire

🛠️ Développement

Ajout d'un nouveau service

  1. Créer le Dockerfile dans un sous-répertoire
  2. Ajouter le service dans docker-compose.yml
  3. Configurer les dépendances et le réseau
  4. Ajouter les healthchecks si nécessaire

Modification de la configuration

# Modifier la configuration Bitcoin Core
sudo docker-compose down
# Éditer bitcoin/bitcoin.conf
sudo docker-compose up -d bitcoin

# Modifier la configuration Blindbit
# Éditer blindbit/blindbit.toml
sudo docker-compose restart blindbit

📁 Structure des fichiers

lecoffre_node/
├── bitcoin/
│   ├── Dockerfile
│   └── bitcoin.conf
├── blindbit/
│   ├── Dockerfile
│   └── blindbit.toml
├── sdk_relay/
│   ├── Dockerfile
│   ├── .conf.docker
│   └── scripts/
├── tor/
│   ├── Dockerfile
│   └── torrc
├── docker-compose.yml
└── README.md

🚨 Dépannage

Problèmes courants

  1. Ports déjà utilisés

    # Vérifier les ports utilisés
    sudo netstat -tlnp | grep -E "(18443|8000|9050)"
    
    # Arrêter les services conflictuels
    sudo docker-compose down
    
  2. Problèmes de synchronisation Bitcoin

    # Vérifier les logs Bitcoin Core
    sudo docker-compose logs bitcoin
    
    # Redémarrer Bitcoin Core
    sudo docker-compose restart bitcoin
    
  3. Problèmes de connectivité sdk_relay

    # Tester la connectivité
    cd sdk_relay
    ./test_final.sh
    
    # Vérifier la configuration
    ./debug_container.sh
    

Logs détaillés

# Logs avec timestamps
sudo docker-compose logs -t

# Logs des 100 dernières lignes
sudo docker-compose logs --tail=100

# Logs depuis une date
sudo docker-compose logs --since="2024-01-01T00:00:00"

📈 Performance

Ressources recommandées

  • CPU : 2 cœurs minimum, 4 cœurs recommandés
  • RAM : 4 Go minimum, 8 Go recommandés
  • Stockage : 20 Go minimum pour la blockchain signet
  • Réseau : Connexion stable pour la synchronisation

Optimisations

# Limiter l'utilisation CPU
sudo docker-compose up -d --scale bitcoin=1

# Surveiller l'utilisation des ressources
sudo docker stats

🤝 Contribution

  1. Fork le repository
  2. Créer une branche feature (git checkout -b feature/nouvelle-fonctionnalite)
  3. Commit les changements (git commit -am 'Ajout de nouvelle fonctionnalité')
  4. Push la branche (git push origin feature/nouvelle-fonctionnalite)
  5. Créer une Pull Request

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

🆘 Support

Pour obtenir de l'aide :

  1. Consulter la documentation
  2. Vérifier les issues existantes
  3. Créer une nouvelle issue avec les détails du problème
  4. Inclure les logs et la configuration utilisée