Rețeaua distribuită Jami

Conectare

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

  • Niciun punct de eșec,

  • Mai rezistentă la cenzură,

  • Nu depinde de nimic altceva decît de utilizatorii săi,

  • Încrederea între utilizatori nu este necesară.

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,

  • Utilizarea protocoalelor standard pentru perforarea NAT.

Jami este construit pe două rețele distribuite distincte:

  • rețeaua OpenDHT kademlia pentru a asigura stabilirea conexiunii distribuite și transmiterea mesajelor,

  • blockchain-ul JamiNS pentru a asigura înscrierea distribuită a numelor.

Rețeaua OpenDHT

Vezi și

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.

Unei rețele OpenDHT i te poți alătura dacă ai informații despre unul dintre noduri care este deja conectat la rețea. Acest nod va împărtăși apoi cunoștințele sale despre alte noduri din rețea.

Aplicațiile Jami utilizează o memorie cache persistentă a nodurilor pentru a se reconecta la rețea după o primă sesiune. Un nod „de pornire” configurabil, cunoscut și stabil este utilizat pentru prima conexiune sau în cazul în care nodurile din memoria cache nu răspund.

Aplicațiile Jami utilizează în prezent bootstrap.jami.net:4222 ca nod de pornire prestabilit (configurabil) și ID-ul de rețea 0 (rețeaua OpenDHT publică prestabilită).

Contribuie la rețeaua OpenDHT

Fiecare cont Jami este un nod OpenDHT, care contribuie la rețea și permite ca Jami să se extindă.

Utilizatorii Jami pot avea independență totală prin utilizarea propriului nod OpenDHT stabil și configurarea acestuia ca nod de pornire în Jami, contribuind în același timp la îmbunătățirea stabilității, robusteții și rezistenței pentru fiecare utilizator al rețelei publice OpenDHT.

Un nod de sine stătător poate funcționa folosind dhtnode utility inclus în OpenDHT. dhtnode nu păstrează nicio informație și are o limită de stocare în memorie de 8 MB.

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.

Notă

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

Blockchain JamiNS

Blockchain-ul JamiNS este experimental și se așteaptă ca arhitectura sa să evolueze.

Aplicațiile Jami nu gestionează noduri blockchain, ci comunică cu un server JamiNS folosind HTTP pentru înscrierea și căutarea numelui, cu un API REST. Acest lucru se datorează faptului că resursele necesare pentru a gestiona un nod blockchain sînt prea mari pentru majoritatea utilizatorilor finali.

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

Contribuie la blockchain-ul JamiNS

Serviciul de nume Jami prestabilit este ns.jami.net, furnizat de Savoir-faire Linux, conectat la un nod de blockchain Ethereum; scopul este de a oferi tuturor posibilitatea (dacă doresc) de a utiliza propriul nod de blockchain și propriul serviciu HTTP, de a mina niște Ether și de a-i folosi pentru a plăti taxa de tranzacție necesară pentru a-și înscrie numele de utilizator în Jami.

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

Utilizarea unui nod Jami

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

Unirea cu rețeaua Jami

Procesul de unire cu rețeaua Jami este similar cu procesul de unire cu o rețea ethereum obișnuită, cu diferența că fișierul genesis este utilizat pentru a inițializa dosarul de date.

  1. Descarcă fișierul Jami genesis de pe Jami github repo

  2. Creează un dosar în computerul tău pe care îl vei folosi pentru a stoca datele Jami blockchain.

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

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

    • Exemplu pentru Windows (C:\Users\username\jamichain)

  3. Folosește geth pentru a inițializa dosarul pe care l-ai creat în (2) executînd ./geth --datadir /home/username/jamichain  init genes is.json

  4. Acum poți porni geth cu opțiunile liniei de comandă de care ai nevoie și specificînd unul dintre nodurile de pornire ale lui Jami, după cum urmează:

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

Acest lucru va porni un serviciu geth cu o consolă atașată, care se sincronizează acum cu rețeaua lui Jami.