Џами дистрибуирана мрежа

Спрема

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

  • Нема смисла да не успеш.

  • Већи отпорност на цензуру,

  • Не зависи од ништа друго него од својих корисника,

  • Довер између чворова није неопходан.

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,

  • Употреба стандардних протокола за пробивање рупа НАТ-а.

Џами је изграђен на две различите дистрибуиране мреже:

  • мрежа OpenDHT kademlia за обезбеђивање дистрибуиране локалне повезаности и дистрибуције порука,

  • Блокчејн JamiNS да обезбеди дистрибуирана регистрација имена.

Мрежа OpenDHT

See also

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 мрежа може се придружити знањем о било ком чвору који је већ повезан са мрежом.

Јами клијенти користе персистентни чворовни кеш за поново повезавање са мрежом након прве сесије. Конфигурибилан, познат, стабилни „бутстрап” чворови се користи за прву повезаност или ако се кеш чворови не одговоре.

Клијенти Џами тренутно користе bootstrap.jami.net:4222 као дефолтан (конфигурисатан) бутстрап вуз и мрежни ID 0 (дефолтан, јавни OpenDHT мрежа).

Доноси у мрежу OpenDHT

Сваки акаунт Џами покреће OpenDHT вузло, доприносе сетви и омогућава Џами да се скалише.

Корисници Џами могу имати потпуну независност покретањем свог стабилног OpenDHT чвора и конфигурирањем као бутстрап чвора у Џамију, а истовремено помажући побољшању стабилности, чврстоће и отпорности за сваког корисника јавне OpenDHT мреже.

Сталан узел се може покренути користећи [dhtnode утилиту]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) укључен у OpenDHT. dhtnode не задржава податке и има дефолтну границу за складиштење у меморији од 8 МиБ.

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.

Белешка

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

Блокчејн ЏамиНС

Блокчејн ЏамиНС је експерименталан и очекује се да ће се његова архитектура развијати.

Клијенти Џами не раде блокчејн вузлове сами, већ комуницирају са ЏамиНС-ом сервером користећи HTTP за регистрацију имена и потрагу, са REST API-ом.

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

Доноси у блокчејн 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.

Поправљање Џами Нода

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

Придружење се мрежи Џами

Процес придруживања Џами мрежи је сличан процесу придруживања редовној етеријум мрежи са разликом да се генесска датотека користи за иницијализацију директорије података.

  1. Скачите датотеку Jami genesis из Jami github repo

  2. Kreirajte direktorijum na svom računaru koji ćete koristiti za čuvanje Jami blockchain podataka

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

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

    • Пример за Виндовс (C:\Употребиоци\Позивно име\Джамицхејн)

  3. Koristite geth da inicijalizujete direktorijum koji ste kreirali u (2) pokretanjem ./geth --datadir /home/username/jamichain  init genes is.json

  4. Sada možete započeti geth sa opcijama komandne linije koje su vam potrebne i navođenjem jedne od Jamijevih bootnoda na sledeći način:

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

Ово ће покренути гет демона са прикљученим конзолом који се сада синхронизује са Џамијевом мрежом.