Réseau distribué Jami
Connectivité
Jami s’appuie sur un [réseau distribué] (tutorials/réseau distribué de Jami), qui présente plusieurs avantages par rapport aux réseaux fédérés:
Pas de problème.
Plus résistant à la censure,
Ne dépend pas de quoi que ce soit d’autre que de ses utilisateurs,
La confiance entre les nœuds n’est pas nécessaire.
Le projet de développement de la communauté internationale de la pêche (JEM) a été lancé en juin dernier.
Ce réseau forme une table hash distribuée (DHT)
Le problème principal des systèmes de communication distribués est la connectivité entre pairs, Jami l’accomplit à travers deux éléments:
Des annonces cryptées sur DHT,
Utilisation de protocoles standard pour le perforation des trous NAT.
Jami est construit sur deux réseaux distincts:
le réseau OpenDHT kademlia pour fournir un établissement de connectivité distribuée et la distribution de messages,
la blockchain JamiNS pour fournir un enregistrement distribué de noms.
Le réseau OpenDHT
Voir https://github.com/savoirfairelinux/opendht> pour plus d’informations sur OpenDHT, qui fournit un magasin de données de valeur clé distribué pour l’établissement de connectivité (avec ICE) et la distribution de messages à Jami.
Un réseau OpenDHT peut être rejoint en sachant à propos de tout nœud déjà connecté au réseau. Ce nœud partagera ensuite ses connaissances sur d’autres nœuds du réseau.
Les clients Jami utilisent un cache de nœud persistant pour se reconnecter au réseau après une première session. Un nœud configurable, connu et stable « bootstrap » est utilisé pour la première connexion ou si les nœuds en cache ne répondent pas.
Les clients Jami utilisent actuellement bootstrap.jami.net:4222 comme nœud de bootstrap par défaut (configurable) et ID réseau 0 (le réseau OpenDHT public par défaut).
Contribuer au réseau OpenDHT
Chaque compte Jami exploite un nœud OpenDHT, contribuant au réseau et permettant à Jami de faire évoluer.
Les utilisateurs de Jami peuvent avoir une pleine indépendance en exécutant leur propre nœud OpenDHT stable et en le configurant comme un nœud de démarrage dans Jami, tout en contribuant à améliorer la stabilité, la robustesse et la résilience de chaque utilisateur du réseau public OpenDHT.
Un nœud autonome peut être exécuté à l’aide de l’utilitaire [dhtnode]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) inclus avec OpenDHT. dhtnode ne persiste pas de données et a une limite de stockage par défaut en mémoire de 8 MiB.
Les nœuds DHT stables gérés par la communauté seront ajoutés à la liste de démarrage par défaut à la demande de leur propriétaire, car plus de nœuds de démarrage signifient un réseau plus résilient et indépendant.
La blockchain JamiNS
La blockchain JamiNS est expérimentale et son architecture devrait évoluer.
Les clients Jami ne gèrent pas eux-mêmes les nœuds de blockchain mais communiquent plutôt avec un serveur JamiNS en utilisant HTTP pour l’enregistrement de noms et la requête, avec une API REST.
Le serveur de noms peut être configuré sous-compte dans Jami, permettant de connecter les clients Jami à divers répertoires d’utilisateurs plus ou moins centralisés.
Contribuer à la blockchain JamiNS
The default Jami name service is ns.jami.net, provided by Savoir-faire Linux Inc., connected to an Ethereum blockchain node; the goal being to give everyone the possibility (if they which so) to run their own blockchain node and HTTP service, mine some Ether, and use it to pay the transaction fee needed to register their username in Jami.
le code du contrat Ethereum, le fichier de la blockchain, et le module NodeJS (server HTTP) peuvent être trouvés ici : 1
Exécuter un nœud Jami
Pré-réquis:
Geth 1.8.23+ (télécharger à partir de [CEI]
Jami genesis file (download from HERE)
Joindre le réseau Jami
Le processus de rejoindre le réseau Jami est similaire au processus de rejoindre un réseau ethérique régulier avec la différence que le fichier génèse est utilisé pour initialiser le répertoire de données.
Téléchargez le fichier Jami genesis depuis le repositorium Jami github
Créez un répertoire sur votre ordinateur que vous utiliserez pour stocker les données de la blockchain Jami
Exemple pour MacOS (/Users/username/jamichain)
Exemple pour Linux (/Users/username/jamichain)
Exemple pour Windows (C:\User\username\jamichain)
Utilisez geth pour initialiser le répertoire que vous avez créé dans (2) en exécutant
./geth --datadir /home/username/jamichain init genes is.json
Vous pouvez maintenant commencer Geth avec les options de ligne de commande dont vous avez besoin et spécifier l’un des nœuds de démarrage de Jami comme suit:
geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console
Cela va démarrer un daemon geth avec une console attachée qui est maintenant synchronisé avec le réseau de Jami.