Джами разпространена мрежа
Свързаност
Jami relies on a distributed network, which brings multiple advantages when compared to federated networks:
Няма смисъл да се проваляш.
По-устойчиви към цензурата,
Не зависи от нищо друго освен от потребителите,
Не е необходимо да се вярва между възел.
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,
Използване на стандартни протоколи за пробиване на дупки от NAT.
Jami е изградена върху две различни разпределени мрежи:
мрежата 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 мрежата може да бъде свързана с знание за всеки възел, който вече е свързан към мрежата.
Клиентите на Jami използват постоянна кеша на възел, за да се свържат отново с мрежата след първата сесия.
Клиентите на Jami понастоящем използват bootstrap.jami.net:4222 като дефолт (конфигурируем) възел за стартиране и мрежов идентификатор 0 (дефолтната, публична OpenDHT мрежа).
Принос към мрежата OpenDHT
Всяка акаунт на Jami работи с OpenDHT възел, допринасяйки за мрежата и позволявайки на Jami да се разширява.
Потребителите на Jami могат да имат пълна независимост, като изпълняват собствен стабилен OpenDHT узел и го конфигурират като бутстрап узел в Jami, като същевременно помагат за подобряване на стабилността, стабилността и устойчивостта на всеки потребител на публичната OpenDHT мрежа.
Самостоятелен възел може да се изпълнява с помощта на [dhtnode утилита]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) включен с OpenDHT. dhtnode не запазва никакви данни и има дефолт в паметта ограничение за съхранение от 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.
Note
To add a community-run DHT node to the default bootstrap server list, please email contact@jami.net.
Блокчейнът на JamiNS
Блокчейнът на JamiNS е експериментален и се очаква архитектурата му да се развива.
Клиентите на Jami не изпълняват блокчейн възли сами, а по-скоро комуникират с сървър на JamiNS, използвайки 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
Присъединявам се към мрежата на Jami
Процесът на присъединяване към мрежата на Jami е подобен на процеса на присъединяване към редовна мрежа на Ethereum с разликата, че файлът генезис се използва за инициализиране на каталога с данни.
Свържете файла Jami genesis от репото на Jami github
Създайте каталог на компютъра си, който ще използвате за съхраняване на данни от блокчейна на Jami.
Example for GNU/Linux (/home/username/jamichain)
Example for macOS (/Users/username/jamichain)
Пример за Windows (C:\User\username\jamichain)
Използвайте geth за инициализиране на каталога, който сте създали в (2) чрез изпълнението
./geth --datadir /home/username/jamichain init genes is.json
Сега можете да започнете Geth с необходимите опции на командна линия и да посочите едно от бутовите въжета на Jami по следния начин:
geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console
Това ще стартира дамон с конзола, която сега се синхронизира с мрежата на Джами.