Précédent
Nada

Réseau social distribué
Une messagerie

 

1) Introduction

Au départ, dépourvu de toute fonctionnalité, que reste-t-il du concept de réseau ? un moyen de communication minimaliste..., une messagerie. Le premier réseau distribué à concevoir est donc celui d'une messagerie, permettant d'envoyer un texte à un utilisateur identifié par sa clef publique.

Le réseau est composé de noeuds. Chaque noeud correspond à un utilisateur et contient la clé privé de l'utilisateur. Un utilisateur peut avoir plusieurs noeuds (avec la même clé privé). Pour des raison de sécurité le noeud ne doit pas partager son fonctionnement avec d'autre noeud. Plusieurs noeuds peuvent être hébegés sur un même PC, il faut donc un mécanisme d'adressage pour s'adresser au bon noeud. Comme cette fonction existe déjà qu'est le numéro de port, autant l'utiliser telle quelle, ainsi leurs accès utiliseront des ports distincts.

Le réseau étant distribué, chaque noeud peut recevoir un message qui ne lui est pas destiné, et qu'il doit renvoyer au bon correspondant. Chaque noeud devra avoir un accès rapide à l'annuaire que l'on dupliquera autant que nécessaire.

Le nombres d'utilisateurs est limité par la limitation de taille de l'annuaire. Si on estime que la quantité d'information sur l'annuaire pour un utilisateur peut atteindre 1 Mo, et que l'annuaire ne doit pas dépasser 1 Go, alors il n'y a la place que pour 1000 utilisateurs. Passant d'un milliard d'utilisateurs à mille, on peut prendre une clé d'identification plus courte de 21 décimals ou de 18 hexadécimals, ou de 9 octets.

L'annuaire est un tableau avec comme première colonne les clés publiques. Pour chaque clé publique, il est enregistré comme premier attribut, la liste des enchufes des noeuds de l'utilisteurs, c'est à dire l'adresse IP ou le nom DNS et le numéro de port.

Si plusieurs noeud sont hébergés sur un même PC d'adresse IP publique telle que par exemple 92.150.3.1, alors ils doivent avoir des enchufes distinctes, soit des ports distincts, tels que 92.18.3.1:60000, 92.18.3.1:60001... La gamme de ports utilisée pourrait être : 60000 à 60999. Pour éviter que le noyau du PC n’utilise ces ports pour ses propres connexions éphémères, on peut limiter la plage système des puertos efímeros via :

# Vérifier la plage actuelle
cat /proc/sys/net/ipv4/ip_local_port_range

# Modifier pour éviter ta plage d'application
sudo sysctl -w net.ipv4.ip_local_port_range="32768 59999"

Mais la plus part du temps, le PC n'hébergera qu'un seul noeud au port 60000

L'utilisateur peut avoir plusieurs noeud (avec la même clé privé). La charge de synchroniser les différents noeuds d'un même utilisateurs incombe à l'utilisateur en question. Le message doit être envoyé à un noeud quelconque du destinataire jusqu'a ce qu'au moins un accusé de reception soit reçu en retours. L'accusé de réception ne signifie pas que le message a été lu par le destinataire mais juste réceptionné par son compte, c'est à dire un de ses noeuds quelque part.

L'annuaire est publique et on ajoute un troisième attribut qu'est le nom publique de l'utilisateur, une chaine d'au plus 100 caractères.

Si vous êtes nouveau et que vous souhaitez rejoindre le réseau, il vous faudra d'abord installer un noeud vierge sur votre PC, le raccorder à l'Internet avec une adresse IP publique ou un non DNS publique et ouvrir le ports 60000, puis le démarrer.

L'amorce est une liste d'enchufes de noeuds du réseau dans laquelle il y a toujours au moins un noeud en fonctionnement. Le noeud va grace à l'amorce contacter un autre noeud et récupérer un accès rapide et sûre à l'annuaire, si ce n'est directement une copie de l'annuaire.

Puis vous initialiserez un nouveau compte sur votre noeud en saisissant votre clé d'identification privée. Le noeud vérifiera dans l'annuaire si vous êtes déjà présent ou pas, et vous ajoutera le cas échéant.

Tout semble se répéter comme dans la Cathédral et le Bazard, Lien

2) L'interface web

L'interface graphique Noeud-Utilisateur sera un interface web par simplicité. Que doit-il contenir ? Une page d'initialisation qui n'est utiliser qu'une seul fois lors de l'installation du noeud. Cette page comprend les commandes spécifiques pour consulter l'annuaire, et la possibilité de s'inscrire en saisissant d'une clef privée et son intitulé, puis un bouton de lancement. La page de fonctionnement comprend la liste des entêtes des messages reçus par le noeud dans l'ordre antichronologique, et un bouton "nouveau message". La page message affiche un message avec les commandes spécifiques pour consulter l'annuaire, pour rédiger et pour envoyer, répondre ou transférer un message.

4) Redondance des données

Chaque utilisateur possède au moins un noeud qui contient ses messages, et distribue une copie sur plusieurs autres noeuds pour garantire une possibilité d'accès plus grande, voir permanente. A ce stade, les données du réseau ne sont pas secrète. C'est pourquoi elles ne sont pas cryptées. Et pour vérifier qu'elle n'ont pas été modifié frauduleusement, on vérifit simplement la signature (cryptage de l'emprunte, décripté par la clé publique officielle).

Pour les données d'accès restreint, l'utilisateur mettra à disposition une version cryptée de des données avec une nouvelle clé privé supplémentaire, et donnera aux personnes autorisés à lire ces données, la clé publique correspondante.

5) Ecriture différée ou décentralisée distribuée

Dans le mode différé, les opérations sur les données d'un utilisateur sont faite que par des noeuds de l'utilisateurs, et donc, attendent la disponnibilité d'un tel noeud pour s'exécuter.

Dans l'autre mode, le noeud de l'utilisateur délègue à d'autres noeuds la possibilité de le faire. Cela pose une difficulté de conception pour garantire que le noeud mandaté n'outrepasse pas ses droits et n'agisse à sa guise sur les données de l'utilisateur.

 

 

 

---- 6 novembre 2025 ----

 

 

 

 

 

 

 


Dominique. Mabboux-Stromberg (Octobre 2025)

 

Précédent
Nada