Jami distribuirana mreža

Povezljivost

Jami relies on a distributed network, which brings multiple advantages when compared to federated networks:

  • Ni razloga za neuspeh.

  • Bolj odporna na cenzuro,

  • Ne zaupajo na nič drugega kot na svoje uporabnike,

  • Zaupanje med vozlišči ni potrebno.

Network topographies

This forms a Distributed Hash Table (DHT) network.

The core problem of distributed communication systems is peer connectivity. Jami achieves it through two elements:

  • Encrypted announcements on the DHT network,

  • Uporaba standardnih protokolov za udarevanje luknje NAT.

Jami je zgrajena na dveh različnih distribuiranih omrežjih:

  • omrežje kademlije OpenDHT za zagotavljanje distribuiranega vzpostavljanja povezljivosti in distribucije sporočil,

  • Za zagotavljanje distribuirane registracije imen.

Mreža OpenDHT

Poglej Tudi

Visit the https://github.com/savoirfairelinux/opendht page for more information about OpenDHT. OpenDHT provides a distributed key-value datastore for connectivity establishment (with ICE) and message distribution in Jami.

OpenDHT omrežju se lahko pridruži z znanjem o katerem koli vozilu, ki je že povezan z omrežjem.

Jami klienti uporabljajo stalni kapi za ponovno povezovanje z omrežjem po prvi seji. Za prvo povezavo se uporablja konfiguriran, znani, stabilni „bootstrap“ kapi ali če se kapijo kapi ne odgovarjajo.

Klienti Jami trenutno uporabljajo bootstrap.jami.net:4222 kot privzeto (konfigurirljivo) vozlišče za bootstrap in omrežno ID 0 (vzeto, javno OpenDHT omrežje).

Prispevek k omrežju OpenDHT

Vsak račun Jami uporablja OpenDHT vozlišče, ki prispeva k omrežju in omogoča Jamiju, da se poveča.

Uporabniki Jami lahko imajo popolno neodvisnost z izvajanjem lastnega stabilnega OpenDHT vozlišča in ga konfigurirajo kot vozlišče za zagon v Jamiju, hkrati pa pomagajo izboljšati stabilnost, robustnost in odpornost za vsakega uporabnika javnega OpenDHT omrežja.

Samostojni vozlišče se lahko izvaja z uporabo [dhtnode uporabniške]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) vključene z OpenDHT. dhtnode ne ohranja podatkov in ima domnevno omejitev shranjevanja v pomnilniku 8 MiB.

Stable community-run DHT nodes will be added to the default bootstrap server list at the request of their owner, as more bootstrap nodes means a more resilient, independent network.

Opomba

To add a community-run DHT node to the default bootstrap server list, please email contact@jami.net.

Blokčein JamiNS

JamiNS blokčein je eksperimentalen in od njega pričakuje razvoj arhitekture.

Klienti Jami ne izvajajo blockchain vozlišče sami, temveč komunicirajo z JamiNS strežnikom z uporabo HTTP za registracijo imen in povpraševanje, z REST API. To je zato, ker so vire, potrebne za izvajanje blockchain vozlišča, za večino končnih uporabnikov preveč visoke.

The name server is set at the account level. This enables the Jami client to connect simultaneously to multiple user directories.

Prispevek k blokčeinu 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.

Code of the Ethereum contract, the blockchain genesis file, and the NodeJS module (HTTP server) can be found here.

Upravljanje Jami Node

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

Prihajajo v mrežo Jami

Proces pridruživanja se omrežju Jami je podoben procesu pridružitve rednega ethereuma, vendar se genesis datoteka uporablja za inicializacijo podatkovnega imenika.

  1. Izprite datoteko Jami genesis iz repo Jami github

  2. Ustvarite imenik na računalniku, ki ga boste uporabili za shranjevanje podatkov Jami blockchain

    • Example for GNU/Linux (/home/username/jamichain)

    • Example for macOS (/Users/username/jamichain)

    • Primer za Windows (C:\User\username\jamichain)

  3. Uporabite geth za inicializacijo imenika, ki ste ga ustvarili v (2) z uporabo ```./geth –datadir /home/username/jamichain init genes is.json ``

  4. Zdaj lahko začnete z geth z opcijami poveljnega reda, ki jih potrebujete in določite enega od Jamijevjevovh vzvodnih vozlišč:

geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console

To bo sprožilo geth demona z priloženo konzoli, ki je zdaj sinhronizirana z Jamijevo omrežje.