Jaringan terdistribusi Jami

Konektivitas

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

  • Tidak ada titik kegagalan,

  • Lebih tahan terhadap sensor,

  • Tidak bergantung pada apa pun selain pengguna,

  • Percaya antara simpul tidak diperlukan.

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,

  • Penggunaan protokol standar untuk penembakan lubang NAT.

Jami dibangun di atas dua jaringan terdistribusi yang berbeda:

  • jaringan kademlia OpenDHT untuk menyediakan penempatan konektivitas terdistribusi dan distribusi pesan,

  • Jamins blockchain untuk menyediakan pendaftaran nama terdistribusi.

Jaringan OpenDHT

Lihat juga

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.

Sebuah jaringan OpenDHT dapat bergabung dengan mengetahui tentang node yang sudah terhubung ke jaringan. node ini kemudian akan berbagi pengetahuan tentang node lain di jaringan.

Klien Jami menggunakan cache node yang tetap untuk terhubung kembali ke jaringan setelah sesi pertama. Node "bootstrap" yang dapat dikonfigurasi, dikenal, stabil digunakan untuk koneksi pertama atau jika node yang disimpan tidak menjawab.

Klien Jami saat ini menggunakan bootstrap.jami.net:4222 sebagai node bootstrap default (dikonfigurasi) dan ID jaringan 0 (default, jaringan OpenDHT publik).

Berpartisipasi dalam jaringan OpenDHT

Setiap akun Jami menjalankan node OpenDHT, berkontribusi pada jaringan dan memungkinkan Jami untuk berskala.

Pengguna Jami dapat memiliki kemandirian penuh dengan menjalankan node OpenDHT yang stabil dan mengkonfigurasinya sebagai node bootstrap di Jami, sambil membantu meningkatkan stabilitas, ketahanan dan ketahanan bagi setiap pengguna jaringan OpenDHT publik.

Sebuah node mandiri dapat dijalankan menggunakan utilitas [dhtnode]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) yang termasuk dengan OpenDHT. dhtnode tidak mempertahankan data dan memiliki batas penyimpanan default dalam memori 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.

Catatan

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

Blockchain JamiNS

Blockchain JamiNS adalah eksperimen dan arsitekturnya diharapkan akan berkembang.

Klien Jami tidak menjalankan node blockchain sendiri tetapi lebih berkomunikasi dengan server JamiNS menggunakan HTTP untuk pendaftaran nama dan kueri, dengan REST API. Ini karena sumber daya yang dibutuhkan untuk menjalankan node blockchain terlalu tinggi untuk sebagian besar pengguna akhir.

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

Berkontribusi ke blok blok 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.

Mengoperasikan Node Jami

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

Bergabung dengan Jaringan Jami

Proses bergabung dengan jaringan Jami mirip dengan proses bergabung dengan jaringan ethereum biasa dengan perbedaan bahwa file genesis digunakan untuk menginisialisasi direktori data.

  1. Unduh file Jami genesis dari repos Jami github

  2. Buat direktori di komputer Anda yang akan Anda gunakan untuk menyimpan data Jami blockchain

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

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

    • Contoh untuk Windows (C:\User\username\jamichain)

  3. Gunakan geth untuk menginisialisasi direktori yang Anda buat di (2) dengan menjalankan ./geth --datadir /home/username/jamichain init genes is.json

  4. Sekarang Anda bisa memulai geth dengan opsi baris perintah yang Anda butuhkan dan menentukan salah satu booting node Jami sebagai berikut:

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

Ini akan memulai geth daemon dengan konsol yang disatukan yang sekarang sinkronisasi dengan jaringan Jami.