Джами разпространена мрежа
Свързаност
Jami разчита на [разпределена мрежа](учебни материали/Jami-разпределена мрежа), която носи множество предимства в сравнение с федералните мрежи:
Няма смисъл да се проваляш.
По-устойчиви към цензурата,
Не зависи от нищо друго освен от потребителите,
Не е необходимо да се вярва между възел.
[Свързаност-топо]
Тази мрежа образува разпределена хаш таблица (DHT)
Основният проблем на разпределените комуникационни системи е свързаността между колегите, която Джами постига чрез два елемента:
Криптирани съобщения за DHT,
Използване на стандартни протоколи за пробиване на дупки от NAT.
Jami е изградена върху две различни разпределени мрежи:
мрежата OpenDHT kademlia за осигуряване на разпределено съоръжение за свързаност и разпространение на съобщения,
Блокчейнът JamiNS ще осигури разпространено регистрация на имена.
Мрежата OpenDHT
Вижте https://github.com/savoirfairelinux/opendht> за повече информация за OpenDHT, който осигурява разпространен ценни данни за ключови данни за установяване на връзка (с ICE) и разпространение на съобщения в 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.
Стабилни DHT възли, управлявани от общността, ще бъдат добавени към списъка с дефолтни стартиращи устройства по искане на техния собственик, тъй като повече бутстрап възли означава по-устойчива, независима мрежа.
Блокчейнът на JamiNS
Блокчейнът на JamiNS е експериментален и се очаква архитектурата му да се развива.
Клиентите на Jami не изпълняват блокчейн възли сами, а по-скоро комуникират с сървър на JamiNS, използвайки HTTP за регистрация на имена и запитвания, с REST API. Това е така, защото ресурсите, необходими за изпълнението на блокчейн възли са твърде високи за повечето крайни потребители.
Наменният сървър може да бъде конфигуриран като подсчет в Jami, което позволява свързване на клиенти на Jami с различни по-малко централизирани потребителски каталози.
Принос към блокчейн на 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 : 1
Използване на Джами Нод
Предварителни изисквания:
Geth 1.8.23+ (изтеглете от [ЕТИ]
Jami genesis file (download from HERE)
Присъединявам се към мрежата на Jami
Процесът на присъединяване към мрежата на Jami е подобен на процеса на присъединяване към редовна мрежа на Ethereum с разликата, че файлът генезис се използва за инициализиране на каталога с данни.
Свържете файла Jami genesis от репото на Jami github
Създайте каталог на компютъра си, който ще използвате за съхраняване на данни от блокчейна на Jami.
Пример за MacOS (/User/username/jamichain)
Пример за Linux (/home/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
Това ще стартира дамон с конзола, която сега се синхронизира с мрежата на Джами.