4NK_node/README.md

277 lines
5.9 KiB
Markdown

# 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