- 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
223 lines
5.5 KiB
Markdown
223 lines
5.5 KiB
Markdown
# Résumé : Ajout du Relais dev3.4nkweb.com
|
|
|
|
## 🎯 Objectif
|
|
|
|
Ajouter le relais externe `dev3.4nkweb.com` à l'infrastructure 4NK Node pour étendre le réseau de relais.
|
|
|
|
## ✅ Actions Réalisées
|
|
|
|
### 1. Découverte du relais
|
|
|
|
- **URL** : dev3.4nkweb.com
|
|
- **Port** : 443 (HTTPS/WSS)
|
|
- **Chemin WebSocket** : `/ws/`
|
|
- **URL complète** : `wss://dev3.4nkweb.com:443/ws/`
|
|
|
|
### 2. Tests de connectivité
|
|
|
|
```bash
|
|
# Test HTTPS de base
|
|
curl -v https://dev3.4nkweb.com:443
|
|
# ✅ Réponse : Page HTML 4NK Web5
|
|
|
|
# Test 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/
|
|
# ✅ Réponse : 101 Switching Protocols
|
|
```
|
|
|
|
### 3. Tests Python
|
|
|
|
```bash
|
|
# Test simple
|
|
python3 test_dev3_simple.py
|
|
# ✅ Connexion WSS établie
|
|
# ⚠️ Limitations de taille de message
|
|
|
|
# Test complet
|
|
python3 test_dev3_connectivity.py
|
|
# ✅ Connexion WSS établie
|
|
# ❌ Messages trop gros pour la synchronisation
|
|
```
|
|
|
|
### 4. Configuration
|
|
|
|
```toml
|
|
# external_nodes.conf
|
|
[relays]
|
|
dev3-relay = "dev3.4nkweb.com:443"
|
|
```
|
|
|
|
## 📊 Résultats des Tests
|
|
|
|
### ✅ Connectivité
|
|
- **HTTPS** : ✅ Accessible
|
|
- **WSS** : ✅ Accessible sur `/ws/`
|
|
- **SSL** : ✅ Certificat Let's Encrypt valide
|
|
- **Protocole** : TLSv1.3
|
|
|
|
### ⚠️ Limitations Découvertes
|
|
- **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
|
|
|
|
## 🛠️ Outils Créés
|
|
|
|
### 1. Script de test simple
|
|
- **Fichier** : `test_dev3_simple.py`
|
|
- **Fonction** : Test de connectivité avec messages courts
|
|
- **Usage** : `python3 test_dev3_simple.py`
|
|
|
|
### 2. Script de test complet
|
|
- **Fichier** : `test_dev3_connectivity.py`
|
|
- **Fonction** : Test de compatibilité ancienne/nouvelle version
|
|
- **Usage** : `python3 test_dev3_connectivity.py`
|
|
|
|
### 3. Documentation de configuration
|
|
- **Fichier** : `CONFIGURATION_DEV3.md`
|
|
- **Contenu** : Guide complet d'utilisation et de dépannage
|
|
|
|
## 🚀 Utilisation
|
|
|
|
### Connexion WebSocket
|
|
|
|
```javascript
|
|
// Connexion JavaScript
|
|
const ws = new WebSocket('wss://dev3.4nkweb.com:443/ws/');
|
|
|
|
ws.onopen = function() {
|
|
// 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/"
|
|
|
|
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 = {
|
|
"type": "handshake",
|
|
"client_id": "python-client",
|
|
"version": "0.9.0"
|
|
}
|
|
await websocket.send(json.dumps(handshake))
|
|
|
|
asyncio.run(connect_to_dev3())
|
|
```
|
|
|
|
## 📈 État Actuel
|
|
|
|
### Configuration Active
|
|
```bash
|
|
# Liste des nœuds externes
|
|
./add_external_node.sh list
|
|
# Output:
|
|
# 🔸 external-relay-2 -> localhost:8090
|
|
# 🔸 dev3-relay -> dev3.4nkweb.com:443
|
|
```
|
|
|
|
### Tests de Validation
|
|
```bash
|
|
# Test de connectivité
|
|
./add_external_node.sh test dev3-relay
|
|
# ✅ Port 443 accessible sur dev3.4nkweb.com
|
|
# ✅ WebSocket répond
|
|
# ✅ Connectivité OK
|
|
```
|
|
|
|
## 🔄 Prochaines Étapes
|
|
|
|
### 1. Intégration dans le code
|
|
Pour que les relais locaux utilisent dev3.4nkweb.com, il faut :
|
|
|
|
```rust
|
|
// Modifier sync.rs pour charger external_nodes.conf
|
|
impl SyncManager {
|
|
pub fn load_external_config(&self) -> Result<ExternalConfig> {
|
|
let config_content = fs::read_to_string("external_nodes.conf")?;
|
|
let config: ExternalConfig = toml::from_str(&config_content)?;
|
|
Ok(config)
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2. Redémarrage des relais
|
|
```bash
|
|
# Appliquer la configuration
|
|
docker-compose restart sdk_relay_1 sdk_relay_2 sdk_relay_3
|
|
```
|
|
|
|
### 3. Tests de synchronisation
|
|
```bash
|
|
# Tester la synchronisation avec dev3
|
|
./test_sync_logs.sh test
|
|
```
|
|
|
|
## ⚠️ Limitations Actuelles
|
|
|
|
### 1. Synchronisation
|
|
- Le relais dev3.4nkweb.com ne supporte pas la synchronisation
|
|
- Messages de sync trop gros pour l'ancienne version
|
|
- Nécessite une mise à jour du relais
|
|
|
|
### 2. Messages
|
|
- Limitation de taille des messages
|
|
- Format ancien uniquement
|
|
- Pas de support des nouveaux protocoles
|
|
|
|
### 3. Compatibilité
|
|
- Compatible avec l'ancienne version
|
|
- Incompatible avec la nouvelle version
|
|
- Nécessite adaptation des messages
|
|
|
|
## 🎯 Recommandations
|
|
|
|
### 1. Utilisation immédiate
|
|
- ✅ Utiliser pour les connexions basiques
|
|
- ✅ Compatible avec l'ancienne version
|
|
- ⚠️ Éviter les messages de synchronisation
|
|
|
|
### 2. Amélioration future
|
|
- 🔄 Mettre à jour le relais dev3.4nkweb.com
|
|
- 🔄 Supprimer les limitations de taille
|
|
- 🔄 Ajouter le support de la synchronisation
|
|
|
|
### 3. Monitoring
|
|
- 📊 Surveiller la connectivité
|
|
- 📊 Tester régulièrement
|
|
- 📊 Documenter les changements
|
|
|
|
## 📝 Conclusion
|
|
|
|
Le relais `dev3.4nkweb.com` a été **ajouté avec succès** à la configuration externe. Il est :
|
|
|
|
- ✅ **Accessible** en WSS sur le port 443
|
|
- ✅ **Fonctionnel** pour les connexions basiques
|
|
- ⚠️ **Limité** par l'ancienne version
|
|
- 🔄 **Prêt** pour une future mise à jour
|
|
|
|
La configuration est maintenant prête pour l'intégration dans le code et les tests de synchronisation !
|