شبكة جامي الموزعة

الاتصال

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

  • لا يوجد نقطة للفشل

  • أكثر مقاومة للرقابة،

  • لا تعتمد على أي شيء آخر غير مستخدميها

  • الثقة بين العقد ليست ضرورية

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,

  • استخدام البروتوكولات القياسية لضرب ثقوب NAT.

جامي مبنية على شبكتين مختلفتين:

  • شبكة OpenDHT kademlia لتوفير إنشاء اتصال مُوزع وتوزيع الرسائل،

  • بلوكتشين جامينز لتوفير تسجيل الأسماء الموزعة

شبكة OpenDHT

شاهد أيضا

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 من خلال معرفة أي عقدة متصلة بالفعل بالشبكة. ثم ستشارك هذه العقدة معارفها حول العقدة الأخرى على الشبكة.

يستخدم عملاء جامي كاش عقد ثابت لإعادة الاتصال بالشبكة بعد جلسة أولية. يتم استخدام عقد قابلة للتكوين ومعروف ومستقر "bootstrap" للاتصال الأول أو إذا لم ترد العقدات المحفوظة في كاش.

يستخدم عملاء Jami حاليا bootstrap.jami.net:4222 كعقدة bootstrap افتراضية (مُمكن التكوين) و ID الشبكة 0 (الشبكة OpenDHT العامة افتراضية).

المساهمة في شبكة OpenDHT

كل حساب جامي يدير عقد OpenDHT، المساهمة في الشبكة و السماح جامي للتوسع.

يمكن لمستخدمي جامي أن يكونوا مستقلين تمامًا من خلال تشغيل عقد OpenDHT المستقر الخاص بهم وتكوينه كعقد bootstrap في جامي ، مع المساعدة في تحسين الاستقرار والثبات والمرونة لكل مستخدم لشبكة OpenDHT العامة.

يمكن تشغيل عقدة مستقلة باستخدام [مرافق dhtnode]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) المضمنة مع OpenDHT. dhtnode لا تستمر في أي بيانات ولديها حدود تخزين افتراضي في الذاكرة من 8 مي بايت.

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.

ملاحظة

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

بلوكتشين جامينز

بلوكتشين جامينس تجربي ومن المتوقع أن تتطور بنيتها.

لا يقوم عملاء جامي بتشغيل عقدات بلوكتشين بأنفسهم ولكن بدلاً من ذلك يتواصلون مع خادم جامينس باستخدام HTTP للتسجيل والمسألة بالاسم ، مع API REST. هذا لأن الموارد اللازمة لتشغيل عقدة بلوكتشين مرتفعة للغاية لمعظم المستخدمين النهائيين.

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

المساهمة في بلوكتشين جامينز

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.

تشغيل عقدة جامي

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

الانضمام إلى شبكة جامي

عملية الانضمام إلى شبكة جامي تشبه عملية الانضمام إلى شبكة إيثيريوم عادية مع الفرق الذي يستخدم ملف الجينيس لبدء إعدادات البيانات.

  1. قم بتنزيل ملف جنيس جامي من موقع جمي github repo

  2. إخلق دليل على جهاز الكمبيوتر الخاص بك الذي سوف تستخدم لتخزين بيانات جمي blockchain

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

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

    • مثال على Windows (C:\ مستخدمين\ اسم المستخدم\ جمي تشين)

  3. استخدم geth لتبني الإداري الذي قمت بإنشاؤه في (2) عن طريق تشغيل ./geth --datadir /home/username/jamichain init genes is.json

  4. يمكنك الآن البدء في غيث مع خيارات خط الأوامر التي تحتاجها وتحديد واحد من عقدات تشغيل جامي على النحو التالي:

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

هذا سيبدأ بعملية "جيت" مع جهاز تشغيل متصل الآن مع شبكة "جامي".