Jami distribuirana mreža
Spojivost
Jami relies on a distributed network, which brings multiple advantages when compared to federated networks:
Nema smisla za neuspjeh.
Više otporna na cenzuru,
Ne zavisno od bilo čega osim svojih korisnika,
Povjerenje među čvorovima nije neophodno.
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,
Upotreba standardnih protokola za udaranje rupa NAT-a.
Jami je izgrađen na dvije različite distribuirane mreže:
U skladu s člankom 4. stavkom 1. stavkom 1. stavkom 1.
-Blokčein JamiNS-a za distribuiranu registraciju imena.
OpenDHT mreža
Više informacija
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 mreži se može pridružiti poznavanjem bilo kojeg čvora koji je već povezan s mrežom.
Jami klijenti koriste stalnu kašnu mrežu za ponovno povezivanje s mrežom nakon prve sesije. Konfigurativni, poznati, stabilni „bootstrap” čvor se koristi za prvu povezanost ili ako se kaširani čvorovi ne javljaju.
Jami klijenti trenutno koriste bootstrap.jami.net:4222 kao podrazumevan (konfiguriran) čvor za bootstrap i mrežni ID 0 (podrazumevan, javni OpenDHT mreža).
Doprinos mreži OpenDHT
Svaki Jami račun pokreće OpenDHT čvor, doprinosi mreži i omogućava Jami skali.
Korisnici Jamija mogu imati potpunu nezavisnost pokretom vlastitog stabilnog OpenDHT čvora i konfiguriranjem ga kao čvor za pokretanje u Jamiju, uz pomoć poboljšanja stabilnosti, robustnosti i otpornosti za svakog korisnika javne OpenDHT mreže.
Samostalni čvor može se pokrenuti koristeći [dhtnode utility]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) uključen u OpenDHT. dhtnode ne zadržava podatke i ima privržen limit memorije od 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.
Napomena
To add a community-run DHT node to the default bootstrap server list, please email contact@jami.net.
Blokčein JamiNS
Blokčein JamiNS je eksperimentalni i očekuje se da će se njegova arhitektura razviti.
Jami klijenti ne pokreću blockchain čvorove sami, već komuniciraju s JamiNS serverom koristeći HTTP za registraciju imena i upitke, s REST API. To je zato što su resursi potrebni za pokretanje blockchain čvor su previše visoki za većinu krajnjih korisnika.
The name server is set at the account level. This enables the Jami client to connect simultaneously to multiple user directories.
Doprinos 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.
Uvoditi Jami čvor
Prerequisites
Ulaz u mrežu Jami
Proces pridruživanja mreži Jami je sličan procesu pridruživanja redovnoj ethereumskoj mreži s različitom da se genesis fajl koristi za iniciraciju direktorija podataka.
Snimite datoteku Jami genesis iz repo-a Jami github-a
Stvorite direktorij na svom računaru koji ćete koristiti za pohranjenje podataka Jami blockchain
Example for GNU/Linux (/home/username/jamichain)
Example for macOS (/Users/username/jamichain)
Primjer za Windows (C:\User\username\jamichain)
Koristite geth za inicializaciju direktorija koji ste stvorili u (2) pokretom
./geth --datadir /home/username/jamichain init genes is.json
Sada možete početi s geth-om s opcijama zapovjedničke linije koje vam trebaju i navesti jedan od Jami-jevog boot nodova kao što slijedi:
geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console
Ovo će pokrenuti geth daemon s priključenom konzolom koja je sada sinhronizirana s Jamijevom mrežom.