# 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 ```bash # 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é ```bash # 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 ```bash # 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 : ```bash # Vérifier l'état des healthchecks sudo docker-compose ps # Logs des healthchecks sudo docker-compose logs | grep health ``` ### Logs ```bash # 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 ```bash # 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** ```bash # 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** ```bash # 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** ```bash # Tester la connectivité cd sdk_relay ./test_final.sh # Vérifier la configuration ./debug_container.sh ``` ### Logs détaillés ```bash # 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 ```bash # 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