Jaringan terdistribusi Jami

Konektivitas

Jami mengandalkan [jaringan terdistribusi] (tutorial/jaringan terdistribusi) yang membawa beberapa keuntungan dibandingkan dengan jaringan federasi:

  • Tidak ada titik kegagalan,

  • Lebih tahan terhadap sensor,

  • Tidak bergantung pada apa pun selain pengguna,

  • Percaya antara simpul tidak diperlukan.

Jaringan-topo

Jaringan ini membentuk Tabel Hash Terdistribusi (DHT)

Masalah inti dari sistem komunikasi terdistribusi adalah konektivitas peer, Jami mencapai hal itu melalui dua elemen:

  • Pengumuman terenkripsi pada DHT,

  • 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 https://github.com/savoirfairelinux/opendht> untuk informasi lebih lanjut tentang OpenDHT, yang menyediakan toko data kunci-nilai terdistribusi untuk pendirian konektivitas (dengan ICE) dan distribusi pesan di 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.

Kode DHT yang dikelola komunitas yang stabil akan ditambahkan ke daftar bootstrap default atas permintaan pemiliknya, karena lebih banyak node bootstrap berarti jaringan yang lebih tahan, independen.

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.

Nameserver dapat dikonfigurasi sebagai sub-account di Jami, memungkinkan untuk menghubungkan klien Jami ke berbagai direktori pengguna yang lebih atau kurang terpusat.

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 : 1

Mengoperasikan Node Jami

Persyaratan:

  1. Geth 1.8.23+ (download dari [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

  • Contoh untuk MacOS (/User/username/jamichain)

  • Contoh untuk Linux (/home/username/jamichain)

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

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

  2. 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.