Jami distribuita reto

Konektiveco

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

  • Neniu punkto de fiasko,

  • Pli rezistema al cenzuro,

  • Ne dependas de io alia ol ĝiaj uzantoj,

  • Konfido inter nodoj ne estas necesa.

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,

  • Uzo de normaj protokoloj por NAT-truo-perfendo.

Jami estas konstruita sur du apartaj distribuitaj retoj:

  • la OpenDHT kademlia reto por disponigi distribuitan konektan establon kaj mesaĝdistribuon,

  • la JamiNS blokĉeno por disponigi distribuita nomo registrado.

La OpenDHT reto

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-reto povas esti aliĝita sciante pri iu nodo jam konektita al la reto. Tiu nodo tiam dividos sian scion pri aliaj nodoj en la reto.

Jami-klientoj uzas persistan nodo-memorgaĵon por reiri al la reto post unua sesio. Konfigurebla, konata, stabila “bootstrap” nodo estas uzita por la unua konekto aŭ se enmemorgaj nodoj ne respondas.

Jami klientoj nuntempe uzas bootstrap.jami.net:4222 kiel la defaŭlte (konfigurebla) bootstrap nodo kaj reto ID 0 (la defaŭlte, publika OpenDHT reto).

kontribuo al la OpenDHT reto

Ĉiu konto de Jami havas OpenDHT-nodo, kiu kontribuas al la reto kaj permesas al Jami skali.

Jami-uzantoj povas havi plenan sendependecon prizorgante sian propran stabilan OpenDHT-nodo kaj konfiguri ĝin kiel startnodo en Jami, helpante al plibonigo de stabileco, solideco kaj rezisto por ĉiu uzanto de la publika OpenDHT-reto.

Sendependa nodo povas esti prizorgita uzante la [dhtnode utility]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) inkluzivita kun OpenDHT. dhtnode ne konservas iujn ajn datumojn kaj havas defaŭltan enmemorigan stoklimiton de 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.

La blokĉeno de JamiNS

La blokĉeno de JamiNS estas eksperimenta kaj ĝia arkitekturo estas atendata evolui.

Klientoj de Jami ne funkciigas blokĉenknodojn mem, sed prefere komunikas kun servilo de JamiNS uzante HTTP por registrado de nomoj kaj demandoj, kun REST API. Tio estas ĉar la resursoj necesaj por funkciigi blokĉenknodojn estas tro altaj por la plej multaj finuzantoj.

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

kontribuu al la blokĉeno de 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.

La funkciado de la nodo de Jami

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

Aliĝante al la reto de Jami

La procezo de aliĝo al la reto de Jami estas simila al la procezo de aliĝo al regula ethereum reto kun la diferenco ke la genesis-dosiero estas uzata por iniciati la datendoktejon.

  1. Elŝutu la dosieron Jami genesis de la repudio Jami github

  2. Krei adresaron sur via komputilo, kiun vi uzos por stoki la datumojn de la blokĉeno de Jami.

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

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

    • Ekzemplo por Windows (C:\User\username\jamichain)

  3. Uzu geth por iniciati la adresaron vi kreis en (2) kurante ./geth --datadir /home/username/jamichain init genes is.json

  4. Vi nun povas komenci geth kun la komando-liniopcioj vi bezonas kaj specifi unu el la ekirnodoj de Jami kiel sekvas:

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

Tio komencos geth-demonon kun konsola konekto kiu nun sinkronigas kun la reto de Jami.