Jami verteilte Netzwerk
Verbindung
Jami setzt auf ein [verteiltes Netzwerk] (Tutorials/Jami-verteiltes Netzwerk), das im Vergleich zu federalen Netzwerken mehrere Vorteile bietet:
Es gibt keinen Punkt zum Scheitern.
Mehr widerstandsfähiger gegenüber Zensur,
Sie sind nicht von anderen als ihren Nutzern abhängig,
Vertrauen zwischen Knoten ist nicht notwendig.
Die Kommission hat die Kommission mit der Erarbeitung von Vorschlägen für die Durchführung der Richtlinie über die Überwachung der Umweltverträglichkeitsprüfung (ABl.
Dieses Netzwerk bildet eine verteilte Hash-Tabelle (DHT)
Das Kernproblem verteilter Kommunikationssysteme ist die Peer-Konnektivität, die Jami durch zwei Elemente erreicht:
Verschlüsselte Ankündigungen über DHT,
Verwendung von Standardprotokollen für das Lochschlagen von NAT-Löchern.
Jami basiert auf zwei verschiedenen Netzwerken:
das OpenDHT-Kademlia-Netzwerk zur Bereitstellung von verteilten Verbindungsstellen und der Nachrichtenverteilung,
Die JamiNS-Blockchain zur Verfügung stellt eine verteilte Namensregistrierung.
Das OpenDHT-Netzwerk
Siehe https://github.com/savoirfairelinux/opendht> für weitere Informationen zu OpenDHT, das einen verteilten Datenspeicher mit Schlüsselwert für die Anbindungseinrichtung (mit ICE) und die Nachrichtenverteilung in Jami bietet.
Ein OpenDHT-Netzwerk kann durch Kenntnis von jedem Knoten, der bereits mit dem Netzwerk verbunden ist, verbunden werden. Dieser Knoten wird dann sein Wissen über andere Knoten im Netzwerk teilen.
Jami-Kunden verwenden einen persistenten Knoten-Cache, um nach einer ersten Sitzung wieder mit dem Netzwerk zu verbinden. Ein konfigurierbarer, bekannter, stabiler „Bootstrap“ Knoten wird für die erste Verbindung verwendet oder wenn die in Cache gespeicherten Knoten nicht antworten.
Jami-Kunden verwenden derzeit bootstrap.jami.net:4222 als Standard (konfigurerbar) Bootstrap-Node und Netzwerk-ID 0 (das Standard-öffentliche OpenDHT-Netzwerk).
Beitrag zum OpenDHT-Netzwerk
Jedes Jami-Konto führt einen OpenDHT-Knoten, der zum Netzwerk beiträgt und Jami zum Skalieren ermöglicht.
Jami-Benutzer können vollständige Unabhängigkeit haben, indem sie ihren eigenen stabilen OpenDHT-Node ausführen und ihn in Jami als Bootstrap-Node konfigurieren, und gleichzeitig die Stabilität, Robustheit und Widerstandsfähigkeit für jeden Benutzer des öffentlichen OpenDHT-Netzwerks verbessern.
Ein eigenständiger Knoten kann mit dem [dhtnode Utility] (https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) ausgeführt werden, der mit OpenDHT enthalten ist.
Stabile DHT-Knoten, die von der Gemeinschaft betrieben werden, werden auf Wunsch ihres Eigentümers in die Standard-Bootstrap-Liste hinzugefügt, da mehr Bootstrap-Knoten ein widerstandsfähigeres, unabhängiges Netzwerk bedeutet.
Die JamiNS-Blockchain
Die JamiNS-Blockchain ist experimentell und die Architektur wird voraussichtlich weiterentwickelt.
Jami-Kunden führen keine Blockchain-Knoten selbst aus, sondern kommunizieren mit einem JamiNS-Server mit HTTP für Namensregistrierung und Abfrage, mit einer REST-API. Dies liegt daran, dass die Ressourcen, die für den Betrieb eines Blockchain-Knodes benötigt werden, für die meisten Endbenutzer zu hoch sind.
Der Nameserver kann in Jami als Nebenkonto konfiguriert werden, sodass Jami-Kunden mit verschiedenen mehr oder weniger zentralisierten Benutzerverzeichnissen verbunden werden können.
Beitrag zur JamiNS-Blockchain
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.
Code of the Ethereum contract, the blockchain genesis file, and the NodeJS module (HTTP server) can be found here : 1
Ein Jami-Knoten
Voraussetzungen:
Geth 1.8.23+ (heruntergeladen von [HERE]
Jami genesis file (download from HERE)
Mit dem Jami-Netzwerk verbunden
Der Prozess der Verbindung zum Jami-Netzwerk ist ähnlich wie der Prozess der Verbindung zu einem regulären Ethereum-Netzwerk, mit dem Unterschied, dass die Genesis-Datei verwendet wird, um das Datenverzeichnis zu initialisieren.
Laden Sie die Jami genesis Datei aus dem Jami github Repo herunter
Erstellen Sie ein Verzeichnis auf Ihrem Computer, mit dem Sie die Jami Blockchain-Daten speichern
Beispiel für MacOS (/Benutzer/Benutzername/jamichain)
Beispiel für Linux (/home/username/jamichain)
Beispiel für Windows (C:\Benutzer\Name\jamichain)
Geth ist ein einfacher Weg, um das von Ihnen erstellte Verzeichnis zu initialisieren, indem Sie
./geth --datadir /home/username/jamichain init genes is.json
Sie können jetzt mit den Befehlszeilen beginnen und einen der Bootknoten von Jami wie folgt angeben:
geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console
Damit startet ein Geth-Demon mit einer angeschlossenen Konsole, die jetzt mit Jami’s Netzwerk synchronisiert wird.