← Retour à l'accueil · Le contrat · Qui êtes-vous ? · Cryptographie
Imaginez que vous voulez envoyer une lettre. Dans un système classique (comme la poste traditionnelle), tous les courriers passent par un seul bureau central. Si ce bureau tombe en panne, plus rien ne fonctionne.
Avec un réseau pair-à-pair (P2P), c'est différent : il y a plusieurs relais (comme plusieurs boîtes aux lettres) répartis sur Internet. Vous pouvez choisir où déposer vos messages, et si un relais ne fonctionne plus, vous pouvez utiliser un autre.
Les avantages de cette approche :
Un relais, c'est comme une boîte aux lettres publique sur Internet. Quand vous voulez communiquer avec quelqu'un, vous déposez trois choses séparément dans cette boîte :
Le système fonctionne comme une boîte aux lettres classique : vous allez vérifier régulièrement s'il y a du courrier. C'est ce qu'on appelle le modèle "pull-only" (vous tirez les informations, elles ne vous sont pas poussées).
Cette méthode fonctionne partout, même dans les environnements les plus restrictifs, car elle utilise simplement le protocole HTTP (comme quand vous visitez un site web).
Les relais peuvent être configurés pour se copier mutuellement les messages :
Exemple : Si vous déposez un message sur le relais A, et que A est configuré pour copier vers B et C, votre message sera disponible sur les trois relais. Si A tombe en panne, vous pouvez toujours récupérer votre message depuis B ou C.
Par défaut, un relais principal est configuré. Vous pouvez en ajouter d'autres, jusqu'à 8 relais au maximum. L'application tente de se connecter à tous les relais activés pour déposer et récupérer les messages.
Plus vous utilisez de relais, plus vos messages ont de chances d'être disponibles et de circuler.
En résumé : configurer jusqu'à 8 relais et tous les activer, c'est maximiser les chemins pour envoyer et recevoir, sans dépendre d'un seul point.
Un relais offre plusieurs "actions" (appelées endpoints) que vous pouvez utiliser. C'est comme une boîte aux lettres avec plusieurs fonctions : déposer, récupérer, vérifier l'état, etc.
Note technique : Ces actions utilisent le protocole HTTP (comme les sites web) avec des méthodes GET (lire) et POST (écrire).
| Méthode | Endpoint | Description |
|---|---|---|
GET |
/health |
Vérifier si le relais fonctionne correctement |
GET |
/messages?start=<ts>&end=<ts>&service=<uuid> |
Récupérer les messages entre deux dates (optionnel : filtrer par service) |
POST |
/messages |
Déposer un message chiffré dans le relais |
GET |
/messages/:hash |
Récupérer un message précis grâce à son identifiant unique (hash) |
GET |
/signatures/:hash |
Récupérer les signatures associées à un message |
POST |
/signatures |
Déposer une signature dans le relais |
GET |
/keys/:hash |
Récupérer les clés pour déchiffrer un message |
POST |
/keys |
Déposer une clé de déchiffrement dans le relais |
GET |
/metrics |
Consulter les statistiques du relais (nombre de messages, signatures, clés stockées) |
GET |
/bloom |
Obtenir une liste des messages déjà vus (pour éviter de demander plusieurs fois le même message) |
Les relais organisent les données comme une bibliothèque bien rangée :
Les relais sont protégés contre les utilisations abusives :
Chaque message a une empreinte unique (comme une empreinte digitale). Le système utilise cette empreinte pour s'assurer qu'un même message n'est pas stocké plusieurs fois, même s'il arrive depuis plusieurs relais. Cela évite aussi que les messages tournent en boucle entre les relais.
Les administrateurs de relais peuvent configurer leurs relais pour se copier mutuellement les messages. Cela se fait via une variable de configuration :
PEER_RELAYS=http://relay1:3019,http://relay2:3019
Quand un message arrive sur un relais, il est automatiquement copié vers tous les relais pairs configurés (si le message n'a pas déjà été vu).
Le endpoint /bloom retourne une liste compacte des messages déjà vus par le relais.
Les applications peuvent utiliser cette liste pour éviter de demander plusieurs fois le même message,
ce qui réduit la charge sur le réseau et améliore les performances.
Le endpoint /metrics expose des statistiques au format Prometheus (pour le monitoring) :
Les applications utilisent un délai d'attente de 15 secondes pour toutes les requêtes vers les relais. Si une requête échoue ou prend trop de temps, l'application peut essayer un autre relais configuré, ou réessayer plus tard avec un délai progressif (backoff exponentiel).
Cette façon de faire a été choisie pour plusieurs raisons importantes :
En résumé, c'est un système simple, fiable et qui vous donne le contrôle, tout en étant sécurisé.
← Retour à l'accueil · Le contrat · Qui êtes-vous ? · Cryptographie