- Ajout du script add_external_node.sh pour gérer les nœuds externes - Configuration external_nodes.conf avec dev3-relay - Scripts de test pour dev3.4nkweb.com (connectivité WSS) - Documentation complète (CONFIGURATION_DEV3.md, RESUME_AJOUT_DEV3.md) - Scripts de test de synchronisation et monitoring - Configuration multi-relais avec 3 instances - Mise à jour de la documentation technique et fonctionnelle - Scripts de démarrage et monitoring pour les 3 relais
217 lines
5.1 KiB
Markdown
217 lines
5.1 KiB
Markdown
# Configuration du Relais dev3.4nkweb.com
|
|
|
|
## 📋 Informations du Relais
|
|
|
|
- **Nom** : dev3-relay
|
|
- **URL** : dev3.4nkweb.com
|
|
- **Port** : 443 (HTTPS/WSS)
|
|
- **Chemin WebSocket** : `/ws/`
|
|
- **URL complète** : `wss://dev3.4nkweb.com:443/ws/`
|
|
- **Version** : Ancienne version (sans synchronisation)
|
|
- **SSL/TLS** : Activé (Let's Encrypt)
|
|
|
|
## 🔧 Configuration Actuelle
|
|
|
|
### Fichier de configuration externe
|
|
|
|
```toml
|
|
# external_nodes.conf
|
|
[relays]
|
|
dev3-relay = "dev3.4nkweb.com:443"
|
|
```
|
|
|
|
### Configuration spéciale requise
|
|
|
|
Le relais dev3.4nkweb.com nécessite une configuration spéciale car :
|
|
|
|
1. **WSS au lieu de WS** : Utilise WebSocket Secure sur le port 443
|
|
2. **Chemin spécifique** : `/ws/` au lieu de la racine
|
|
3. **Limitations de message** : Messages limités en taille
|
|
4. **Ancienne version** : Ne supporte pas la synchronisation entre relais
|
|
|
|
## 🧪 Tests de Connectivité
|
|
|
|
### Test de base
|
|
|
|
```bash
|
|
# Test de connectivité HTTPS
|
|
curl -v https://dev3.4nkweb.com:443
|
|
|
|
# Test de connectivité WebSocket
|
|
curl -v -H "Connection: Upgrade" \
|
|
-H "Upgrade: websocket" \
|
|
-H "Sec-WebSocket-Key: test" \
|
|
-H "Sec-WebSocket-Version: 13" \
|
|
https://dev3.4nkweb.com:443/ws/
|
|
```
|
|
|
|
### Test avec Python
|
|
|
|
```bash
|
|
# Test simple
|
|
python3 test_dev3_simple.py
|
|
|
|
# Test complet
|
|
python3 test_dev3_connectivity.py
|
|
```
|
|
|
|
## 📊 Résultats des Tests
|
|
|
|
### ✅ Connectivité
|
|
- **HTTPS** : ✅ Accessible
|
|
- **WSS** : ✅ Accessible sur `/ws/`
|
|
- **SSL** : ✅ Certificat Let's Encrypt valide
|
|
|
|
### ⚠️ Limitations
|
|
- **Taille des messages** : Limitée (erreur "message too big")
|
|
- **Synchronisation** : Non supportée (ancienne version)
|
|
- **Handshake** : Format ancien uniquement
|
|
|
|
### 🔧 Compatibilité
|
|
- **Ancienne version** : ✅ Compatible
|
|
- **Nouvelle version** : ❌ Messages trop gros
|
|
- **Synchronisation** : ❌ Non supportée
|
|
|
|
## 🚀 Utilisation
|
|
|
|
### Connexion WebSocket
|
|
|
|
```javascript
|
|
// Connexion JavaScript
|
|
const ws = new WebSocket('wss://dev3.4nkweb.com:443/ws/');
|
|
|
|
ws.onopen = function() {
|
|
console.log('Connecté à dev3.4nkweb.com');
|
|
|
|
// Handshake simple (ancienne version)
|
|
const handshake = {
|
|
type: 'handshake',
|
|
client_id: 'test-client',
|
|
version: '0.9.0'
|
|
};
|
|
ws.send(JSON.stringify(handshake));
|
|
};
|
|
```
|
|
|
|
### Connexion Python
|
|
|
|
```python
|
|
import asyncio
|
|
import websockets
|
|
import json
|
|
import ssl
|
|
|
|
async def connect_to_dev3():
|
|
uri = "wss://dev3.4nkweb.com:443/ws/"
|
|
|
|
# Configuration SSL
|
|
ssl_context = ssl.create_default_context()
|
|
ssl_context.check_hostname = False
|
|
ssl_context.verify_mode = ssl.CERT_NONE
|
|
|
|
async with websockets.connect(uri, ssl=ssl_context) as websocket:
|
|
# Handshake simple
|
|
handshake = {
|
|
"type": "handshake",
|
|
"client_id": "python-client",
|
|
"version": "0.9.0"
|
|
}
|
|
await websocket.send(json.dumps(handshake))
|
|
|
|
# Écouter les réponses
|
|
async for message in websocket:
|
|
data = json.loads(message)
|
|
print(f"Message reçu: {data}")
|
|
|
|
asyncio.run(connect_to_dev3())
|
|
```
|
|
|
|
## 🔒 Sécurité
|
|
|
|
### Certificat SSL
|
|
- **Émetteur** : Let's Encrypt
|
|
- **Validité** : 17 août 2025 - 15 novembre 2025
|
|
- **Domaine** : dev3.4nkweb.com
|
|
- **Protocole** : TLSv1.3
|
|
|
|
### Recommandations
|
|
- ✅ Utiliser WSS pour les connexions
|
|
- ✅ Vérifier le certificat SSL
|
|
- ⚠️ Limiter la taille des messages
|
|
- ⚠️ Gérer les timeouts
|
|
|
|
## 📈 Monitoring
|
|
|
|
### Scripts de monitoring
|
|
|
|
```bash
|
|
# Test de connectivité
|
|
./add_external_node.sh test dev3-relay
|
|
|
|
# Monitoring en continu
|
|
while true; do
|
|
python3 test_dev3_simple.py
|
|
sleep 300 # Test toutes les 5 minutes
|
|
done
|
|
```
|
|
|
|
### Métriques à surveiller
|
|
- **Connectivité** : WSS accessible
|
|
- **Latence** : Temps de réponse
|
|
- **Erreurs** : Messages trop gros
|
|
- **Disponibilité** : Uptime du service
|
|
|
|
## 🔄 Mise à Jour
|
|
|
|
### Pour la synchronisation
|
|
|
|
Le relais dev3.4nkweb.com nécessite une mise à jour pour supporter :
|
|
|
|
1. **Messages plus gros** : Supprimer la limitation de taille
|
|
2. **Synchronisation** : Implémenter le protocole de sync
|
|
3. **Nouveau format** : Support des messages `Sync`
|
|
|
|
### Plan de migration
|
|
|
|
```bash
|
|
# 1. Tester la compatibilité
|
|
python3 test_dev3_connectivity.py
|
|
|
|
# 2. Mettre à jour le relais (si possible)
|
|
# Contact: admin@4nkweb.com
|
|
|
|
# 3. Tester la nouvelle version
|
|
python3 test_websocket_messages.py
|
|
|
|
# 4. Activer la synchronisation
|
|
docker-compose restart sdk_relay_1 sdk_relay_2 sdk_relay_3
|
|
```
|
|
|
|
## 📝 Notes
|
|
|
|
- Le relais dev3.4nkweb.com est fonctionnel mais limité
|
|
- Utiliser des messages courts pour éviter les erreurs
|
|
- La synchronisation n'est pas encore supportée
|
|
- Surveiller les logs pour détecter les problèmes
|
|
- Considérer une mise à jour pour la compatibilité complète
|
|
|
|
## 🆘 Dépannage
|
|
|
|
### Problèmes courants
|
|
|
|
1. **"message too big"**
|
|
- Solution : Réduire la taille des messages
|
|
- Alternative : Utiliser des messages simples
|
|
|
|
2. **Timeout de connexion**
|
|
- Vérifier la connectivité réseau
|
|
- Tester avec curl en premier
|
|
|
|
3. **Erreur SSL**
|
|
- Vérifier le certificat
|
|
- Utiliser `ssl_context.verify_mode = ssl.CERT_NONE` pour les tests
|
|
|
|
4. **Pas de réponse**
|
|
- Le relais peut être en maintenance
|
|
- Vérifier l'uptime du service
|