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 Coreblindbit
: Service Blindbittor
: Proxy Torsdk_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
- Créer le Dockerfile dans un sous-répertoire
- Ajouter le service dans
docker-compose.yml
- Configurer les dépendances et le réseau
- 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
-
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
-
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
-
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
- Fork le repository
- Créer une branche feature (
git checkout -b feature/nouvelle-fonctionnalite
) - Commit les changements (
git commit -am 'Ajout de nouvelle fonctionnalité'
) - Push la branche (
git push origin feature/nouvelle-fonctionnalite
) - 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 :
- Consulter la documentation
- Vérifier les issues existantes
- Créer une nouvelle issue avec les détails du problème
- Inclure les logs et la configuration utilisée
v1.1.2
Latest
Languages
Shell
96.9%
TypeScript
3.1%