
Some checks failed
CI - 4NK Node / Code Quality (push) Failing after 46s
CI - 4NK Node / Unit Tests (push) Failing after 29s
CI - 4NK Node / Integration Tests (push) Failing after 10s
CI - 4NK Node / Docker Build & Test (push) Failing after 8s
CI - 4NK Node / Documentation Tests (push) Failing after 4s
CI - 4NK Node / Security Tests (push) Failing after 27s
CI - 4NK Node / Release Guard (push) Has been skipped
CI - 4NK Node / Performance Tests (push) Failing after 27s
CI - 4NK Node / Notify (push) Failing after 1s
493 lines
10 KiB
Markdown
493 lines
10 KiB
Markdown
# ⚡ Référence Rapide - 4NK Node
|
|
|
|
Référence rapide des commandes essentielles pour l'infrastructure 4NK Node.
|
|
|
|
## 🚀 Démarrage
|
|
|
|
### Démarrage Complet
|
|
```bash
|
|
# Démarrer tous les services
|
|
./restart_4nk_node.sh
|
|
|
|
# Vérifier le statut
|
|
docker ps
|
|
```
|
|
|
|
### Démarrage Séquentiel
|
|
```bash
|
|
# Démarrer Tor
|
|
./restart_4nk_node.sh -t
|
|
|
|
# Démarrer Bitcoin Core
|
|
./restart_4nk_node.sh -b
|
|
|
|
# Démarrer Blindbit
|
|
./restart_4nk_node.sh -l
|
|
|
|
# Démarrer les relais
|
|
./restart_4nk_node.sh -r
|
|
```
|
|
|
|
### Options du Script de Redémarrage
|
|
```bash
|
|
./restart_4nk_node.sh -h # Aide
|
|
./restart_4nk_node.sh -s # Arrêter
|
|
./restart_4nk_node.sh -c # Nettoyer
|
|
./restart_4nk_node.sh -n # Créer réseau
|
|
./restart_4nk_node.sh -t # Démarrer Tor
|
|
./restart_4nk_node.sh -b # Démarrer Bitcoin
|
|
./restart_4nk_node.sh -l # Démarrer Blindbit
|
|
./restart_4nk_node.sh -r # Démarrer relais
|
|
./restart_4nk_node.sh -v # Vérifier statut
|
|
```
|
|
|
|
## 📊 Monitoring
|
|
|
|
### Statut des Services
|
|
```bash
|
|
# Statut de tous les services
|
|
docker ps
|
|
|
|
# Statut avec format personnalisé
|
|
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
|
|
|
# Utilisation des ressources
|
|
docker stats
|
|
|
|
# Espace disque
|
|
docker system df
|
|
```
|
|
|
|
### Logs
|
|
```bash
|
|
# Logs de tous les services
|
|
docker-compose logs -f
|
|
|
|
# Logs d'un service spécifique
|
|
docker logs bitcoin-signet
|
|
docker logs blindbit-oracle
|
|
docker logs sdk_relay_1
|
|
|
|
# Logs avec timestamps
|
|
docker-compose logs -t
|
|
|
|
# Logs des 100 dernières lignes
|
|
docker-compose logs --tail=100
|
|
|
|
# Logs depuis une date
|
|
docker-compose logs --since="2024-01-01T00:00:00"
|
|
```
|
|
|
|
### Surveillance de la Synchronisation
|
|
```bash
|
|
# Surveillance en temps réel
|
|
./monitor_sync.sh
|
|
|
|
# Test de synchronisation
|
|
./test_sync_logs.sh
|
|
|
|
# Test de synchronisation forcé
|
|
./test_sync_logs.sh force
|
|
|
|
# Test de synchronisation en continu
|
|
./test_sync_logs.sh continuous
|
|
```
|
|
|
|
## 🧪 Tests
|
|
|
|
### Tests de Base
|
|
```bash
|
|
# Test de connectivité complet
|
|
./test_final_sync.sh
|
|
|
|
# Test de synchronisation
|
|
./test_sync_logs.sh
|
|
|
|
# Test des messages WebSocket
|
|
python3 test_websocket_messages.py
|
|
|
|
# Test des 3 relais
|
|
./test_3_relays.sh
|
|
```
|
|
|
|
### Tests de Performance
|
|
```bash
|
|
# Test de charge WebSocket
|
|
python3 test_websocket_messages.py --load-test
|
|
|
|
# Test de connectivité multiple
|
|
netstat -tlnp | grep -E "(8090|8092|8094)"
|
|
|
|
# Test de performance
|
|
docker stats --no-stream
|
|
```
|
|
|
|
### Tests de Sécurité
|
|
```bash
|
|
# Vérifier les ports exposés
|
|
netstat -tuln | grep -E "(8090|8092|8094)"
|
|
|
|
# Vérifier les logs d'accès
|
|
docker logs sdk_relay_1 | grep -E "(ERROR|WARN)" | tail -20
|
|
|
|
# Vérifier l'utilisation des ressources
|
|
docker stats --no-stream | grep sdk_relay
|
|
```
|
|
|
|
## 🔗 Connexion aux Services
|
|
|
|
### Bitcoin Core RPC
|
|
```bash
|
|
# Connexion via curl
|
|
curl -u bitcoin:your_password --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getblockchaininfo", "params": []}' -H 'content-type: text/plain;' http://localhost:18443/
|
|
|
|
# Connexion via bitcoin-cli
|
|
docker exec bitcoin-signet bitcoin-cli -signet getblockchaininfo
|
|
|
|
# Vérifier la synchronisation
|
|
docker exec bitcoin-signet bitcoin-cli -signet getblockchaininfo | jq '.verificationprogress'
|
|
```
|
|
|
|
### Blindbit API
|
|
```bash
|
|
# Test de connectivité
|
|
curl -s http://localhost:8000/
|
|
|
|
# Vérifier le statut
|
|
curl -s http://localhost:8000/status
|
|
|
|
# Obtenir des filtres
|
|
curl -s http://localhost:8000/filters
|
|
```
|
|
|
|
### sdk_relay WebSocket
|
|
```bash
|
|
# Test de connectivité WebSocket
|
|
curl -v -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Key: test" http://localhost:8090/
|
|
|
|
# Test avec wscat (si installé)
|
|
wscat -c ws://localhost:8090
|
|
|
|
# Test avec Python
|
|
python3 test_websocket_messages.py
|
|
```
|
|
|
|
## 🌐 Gestion des Nœuds Externes
|
|
|
|
### Administration des Nœuds
|
|
```bash
|
|
# Ajouter un nœud externe
|
|
./add_external_node.sh add external-relay-1 external-relay-1.example.com:8090
|
|
|
|
# Lister les nœuds configurés
|
|
./add_external_node.sh list
|
|
|
|
# Tester la connectivité
|
|
./add_external_node.sh test external-relay-1
|
|
|
|
# Supprimer un nœud
|
|
./add_external_node.sh remove external-relay-1
|
|
|
|
# Valider une adresse
|
|
./add_external_node.sh validate 192.168.1.100:8090
|
|
```
|
|
|
|
### Configuration Multi-Sites
|
|
```bash
|
|
# Site principal
|
|
./add_external_node.sh add site-paris-1 paris-relay-1.4nk.net:8090
|
|
./add_external_node.sh add site-paris-2 paris-relay-2.4nk.net:8090
|
|
|
|
# Site secondaire
|
|
./add_external_node.sh add site-lyon-1 lyon-relay-1.4nk.net:8090
|
|
./add_external_node.sh add site-lyon-2 lyon-relay-2.4nk.net:8090
|
|
|
|
# Site de backup
|
|
./add_external_node.sh add backup-1 backup-relay-1.4nk.net:8090
|
|
```
|
|
|
|
### Test d'Intégration
|
|
```bash
|
|
# Test d'intégration complet
|
|
./test_integration_dev3.sh
|
|
|
|
# Test de connectivité dev3
|
|
python3 test_dev3_simple.py
|
|
|
|
# Test de connectivité avancé
|
|
python3 test_dev3_connectivity.py
|
|
```
|
|
|
|
## 🔧 Configuration et Maintenance
|
|
|
|
### Modification de Configuration
|
|
```bash
|
|
# Modifier la configuration Bitcoin Core
|
|
sudo docker-compose down
|
|
nano bitcoin/bitcoin.conf
|
|
sudo docker-compose up -d bitcoin
|
|
|
|
# Modifier la configuration Blindbit
|
|
nano blindbit/blindbit.toml
|
|
sudo docker-compose restart blindbit
|
|
|
|
# Modifier la configuration des relais
|
|
nano sdk_relay/.conf.docker.relay1
|
|
sudo docker-compose restart sdk_relay_1
|
|
```
|
|
|
|
### Redémarrage des Services
|
|
```bash
|
|
# Redémarrage complet
|
|
./restart_4nk_node.sh
|
|
|
|
# Redémarrage d'un service spécifique
|
|
docker-compose restart bitcoin
|
|
docker-compose restart blindbit
|
|
docker-compose restart sdk_relay_1
|
|
|
|
# Redémarrage avec reconstruction
|
|
docker-compose down
|
|
docker-compose build --no-cache
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Sauvegarde et Restauration
|
|
```bash
|
|
# Sauvegarde des données
|
|
docker exec bitcoin-signet tar czf /tmp/bitcoin-backup.tar.gz /home/bitcoin/.bitcoin
|
|
docker cp bitcoin-signet:/tmp/bitcoin-backup.tar.gz ./backup/
|
|
|
|
# Sauvegarde des configurations
|
|
tar czf config-backup.tar.gz sdk_relay/.conf* external_nodes.conf
|
|
|
|
# Restauration
|
|
docker cp ./backup/bitcoin-backup.tar.gz bitcoin-signet:/tmp/
|
|
docker exec bitcoin-signet tar xzf /tmp/bitcoin-backup.tar.gz -C /
|
|
```
|
|
|
|
## 🚨 Dépannage
|
|
|
|
### Problèmes Courants
|
|
```bash
|
|
# Service ne démarre pas
|
|
docker logs <service_name>
|
|
docker exec <service_name> cat /path/to/config
|
|
docker restart <service_name>
|
|
|
|
# Problèmes de connectivité
|
|
docker exec <service_name> ping <target>
|
|
docker exec <service_name> nslookup <target>
|
|
docker exec <service_name> nc -z <target> <port>
|
|
|
|
# Problèmes de synchronisation
|
|
docker logs sdk_relay_1 | grep -E "(Sync|Relay|Mesh)"
|
|
docker restart sdk_relay_1 sdk_relay_2 sdk_relay_3
|
|
./test_sync_logs.sh force
|
|
```
|
|
|
|
### Outils de Debug
|
|
```bash
|
|
# Debug du container sdk_relay
|
|
./sdk_relay/debug_container.sh
|
|
|
|
# Test du healthcheck
|
|
./sdk_relay/test_healthcheck.sh
|
|
|
|
# Test de connectivité
|
|
./sdk_relay/test_connectivity.sh
|
|
|
|
# Test simple
|
|
./sdk_relay/test_simple.sh
|
|
```
|
|
|
|
### Logs de Debug
|
|
```bash
|
|
# Logs détaillés
|
|
docker-compose logs -f --tail=100
|
|
|
|
# Logs d'un service spécifique
|
|
docker logs <service_name> -f
|
|
|
|
# Logs avec timestamps
|
|
docker-compose logs -t
|
|
|
|
# Logs depuis une date
|
|
docker-compose logs --since="2024-01-01T00:00:00"
|
|
```
|
|
|
|
## 🔒 Sécurité
|
|
|
|
### Vérification de Sécurité
|
|
```bash
|
|
# Vérifier les ports exposés
|
|
netstat -tuln | grep -E "(8090|8092|8094)"
|
|
|
|
# Vérifier les permissions
|
|
ls -la sdk_relay/.conf*
|
|
ls -la bitcoin/bitcoin.conf
|
|
ls -la blindbit/blindbit.toml
|
|
|
|
# Vérifier les logs de sécurité
|
|
docker logs sdk_relay_1 | grep -E "(ERROR|WARN|SECURITY)" | tail -20
|
|
```
|
|
|
|
### Configuration de Pare-feu
|
|
```bash
|
|
# Autoriser les ports nécessaires
|
|
sudo ufw allow 18443/tcp # Bitcoin Core RPC
|
|
sudo ufw allow 8090/tcp # sdk_relay WebSocket
|
|
sudo ufw allow 8000/tcp # Blindbit API
|
|
sudo ufw enable
|
|
|
|
# Vérifier les règles
|
|
sudo ufw status numbered
|
|
```
|
|
|
|
## 📈 Performance
|
|
|
|
### Optimisation
|
|
```bash
|
|
# Limiter l'utilisation CPU
|
|
docker-compose up -d --scale bitcoin=1
|
|
|
|
# Optimiser la mémoire
|
|
docker stats --no-stream | grep sdk_relay
|
|
|
|
# Nettoyer l'espace disque
|
|
docker system prune -f
|
|
```
|
|
|
|
### Monitoring de Performance
|
|
```bash
|
|
# Surveillance des ressources
|
|
docker stats
|
|
|
|
# Surveillance des connexions
|
|
netstat -an | grep :8090 | wc -l
|
|
|
|
# Surveillance de l'espace disque
|
|
df -h
|
|
```
|
|
|
|
### Tests de Charge
|
|
```bash
|
|
# Test de charge simple
|
|
for i in {1..50}; do
|
|
python3 test_websocket_messages.py &
|
|
sleep 0.1
|
|
done
|
|
wait
|
|
|
|
# Test de charge avancé
|
|
python3 test_websocket_messages.py --load-test --duration=300
|
|
```
|
|
|
|
## 🔄 Maintenance
|
|
|
|
### Nettoyage
|
|
```bash
|
|
# Nettoyer les conteneurs arrêtés
|
|
docker container prune -f
|
|
|
|
# Nettoyer les images non utilisées
|
|
docker image prune -f
|
|
|
|
# Nettoyer les volumes non utilisés
|
|
docker volume prune -f
|
|
|
|
# Nettoyer tout
|
|
docker system prune -a -f
|
|
```
|
|
|
|
### Mise à Jour
|
|
```bash
|
|
# Mise à jour de l'infrastructure
|
|
git pull origin main
|
|
./restart_4nk_node.sh
|
|
|
|
# Mise à jour des images
|
|
docker-compose build --no-cache
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Sauvegarde Automatique
|
|
```bash
|
|
# Script de sauvegarde
|
|
cat > backup_4nk.sh << 'EOF'
|
|
#!/bin/bash
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
BACKUP_DIR="/backup/4nk_node_$DATE"
|
|
mkdir -p $BACKUP_DIR
|
|
cp -r sdk_relay/.conf* $BACKUP_DIR/
|
|
cp external_nodes.conf $BACKUP_DIR/
|
|
docker exec bitcoin-signet tar czf /tmp/bitcoin-backup.tar.gz /home/bitcoin/.bitcoin
|
|
docker cp bitcoin-signet:/tmp/bitcoin-backup.tar.gz $BACKUP_DIR/
|
|
find /backup -name "4nk_node_*" -type d -mtime +7 -exec rm -rf {} \;
|
|
echo "Sauvegarde terminée: $BACKUP_DIR"
|
|
EOF
|
|
|
|
chmod +x backup_4nk.sh
|
|
|
|
# Ajouter au cron
|
|
echo "0 2 * * * /path/to/backup_4nk.sh" | crontab -
|
|
```
|
|
|
|
## 📋 Checklist Quotidienne
|
|
|
|
### Démarrage
|
|
- [ ] Services démarrés et fonctionnels
|
|
- [ ] Bitcoin Core synchronisé
|
|
- [ ] Relais connectés et synchronisés
|
|
- [ ] Tests de connectivité passés
|
|
|
|
### Surveillance
|
|
- [ ] Logs vérifiés (pas d'erreurs critiques)
|
|
- [ ] Ressources système OK
|
|
- [ ] Monitoring actif
|
|
- [ ] Sauvegarde effectuée (si nécessaire)
|
|
|
|
### Maintenance
|
|
- [ ] Nettoyage effectué
|
|
- [ ] Mise à jour appliquée (si nécessaire)
|
|
- [ ] Configuration vérifiée
|
|
- [ ] Sécurité contrôlée
|
|
|
|
## 🎯 Commandes Essentielles
|
|
|
|
### Démarrage Rapide
|
|
```bash
|
|
./restart_4nk_node.sh
|
|
docker ps
|
|
./test_final_sync.sh
|
|
```
|
|
|
|
### Monitoring Rapide
|
|
```bash
|
|
docker ps
|
|
docker-compose logs -f
|
|
./monitor_sync.sh
|
|
```
|
|
|
|
### Test Rapide
|
|
```bash
|
|
./test_final_sync.sh
|
|
./test_sync_logs.sh
|
|
python3 test_websocket_messages.py
|
|
```
|
|
|
|
### Dépannage Rapide
|
|
```bash
|
|
docker logs <service_name>
|
|
docker restart <service_name>
|
|
./test_sync_logs.sh force
|
|
```
|
|
|
|
### Arrêt Propre
|
|
```bash
|
|
docker-compose down
|
|
docker system prune -f
|
|
```
|
|
|
|
---
|