Le serveur Beacon

En réseau local, Discret peut découvrir et se connecter aux pairs sans équipement particulier. Mais quand les Pair sont sur Internet, un serveur de rencontre nommé Beacon est nécessaire pour que les Pairs puissent se retrouver.

Le fonctionnement du serveur de rencontre est le suivant. Supposons qu'Alice et Bob veuillent se connecter:

Hébergement

Le serveur Beacon a pour but de résoudre les adresses IP publiques des Pairs voulant se connecter.

Il ne peut pas être installé sur votre réseau local car il ne pourrait pas résoudre votre adresse IP publique. Il faut donc l'héberger à l'extérieur.

Le serveur Beacon consomme peu de ressources et peut donc être installé sur un serveur peu puissant pour commencer. Par exemple:

Installation

Aucune version pré-compilée n'est actuellement fournie, il vous faut donc compiler vous même le serveur.

Commencer par récupérer le projet

git clone https://github.com/discretlib/discret_beacon.git

pour ensuite le compiler, la compilation peut prendre quelques minutes:

cd discret_beacon
cargo build --release

Le programme compilé se trouvera dans le répertoire ./target/release/. Le nom exact depend de votre système d'exploitation. Sous Linux le fichier se nomme discret_beacon;

Copiez le dans le repertoire de votre choix, puis lancez le. Sous Linux, la commande suivante le lancera en tache de fond.

nohup ./discret_beacon &

Utilisation

Au premier lancement, beacon va créer les fichiers et répertoires suivant:

logs/
Beacon.conf.toml  
certificate_hash.txt  
cert_der.bin
log4rs.yml

Sauvegarde et Restauration

Le fichier cert_der.bin devrait être sauvegarder pour pouvoir reconfigurer un serveur avec le même certificat en cas de panne.

Si vous devez reconfigurer un serveur en cas de crash:

Réutilisation d'un certificat

Le fichier cert_der.bin peut être utilisé par plusieurs serveurs. Pour un système en production il est nécessaire d'avoir plusieurs serveurs Beacon, afin que les pairs puissent se découvrir même si un des serveurs tombe en panne.

Pour simplifier le déploiement de ces serveurs, un seul fichier cert_der.bin peut être utilisé. Ce n'est pas obligatoire, mais cela simplifie la gestion des certificats.

Configuration du client Discret

En supposant que vous ayez déployé trois serveurs (firstbeacon.com, secondbeacon.com, thirdbeacon.com) avec le même fichier cert_der.bin, Discret pourra être configuré de la façon suivante (en supposant que le fichier de configuration est enregistré au format TOML):

beacons =[
  {hostname = "firstbeacon.com:4264",       cert_hash = "weOsoMPwj976xqxRvLElsbb-gijWWn0netOtgPflZnk"},
  {hostname = "secondbeacon.com:4264",      cert_hash = "weOsoMPwj976xqxRvLElsbb-gijWWn0netOtgPflZnk"},
  {hostname = "thirdbeacon.com:4264",       cert_hash = "weOsoMPwj976xqxRvLElsbb-gijWWn0netOtgPflZnk"},
]

Le cert_hash étant la valeur récupérée dans le fichier certificate_hash.txt

Configuration de Beacon.conf.toml

Le fichier ne contient qu'un seul paramètre: