जामी वितरित नेटवर्क

कनेक्टिविटी

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 नेटवर्क,

  • जामीएनएस ब्लॉकचेन वितरित नाम पंजीकरण प्रदान करने के लिए।

ओपनडीएचटी नेटवर्क

यह भी देखिए

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.

एक ओपनडीएचटी नेटवर्क में पहले से ही नेटवर्क से जुड़े किसी भी नोड के बारे में जानने से जुड़ सकते हैं। यह नोड फिर नेटवर्क पर अन्य नोड के बारे में अपना ज्ञान साझा करेगा।

जेमी क्लाइंट्स पहले सत्र के बाद नेटवर्क से फिर से जुड़ने के लिए एक स्थायी नोड कैश का उपयोग करते हैं। पहले कनेक्शन के लिए एक कॉन्फ़िगरेबल, ज्ञात, स्थिर "बूटस्ट्रैप" नोड का उपयोग किया जाता है या यदि कैश किए गए नोड जवाब नहीं देते हैं।

जेमी क्लाइंट वर्तमान में डिफ़ॉल्ट (कॉन्फ़िगरेबल) बूटस्ट्रैप नोड और नेटवर्क आईडी 0 (डिफ़ॉल्ट, सार्वजनिक ओपनडीएचटी नेटवर्क) के रूप में बूटस्ट्रैप.जेमी.नेट:4222 का उपयोग करते हैं।

ओपनडीएचटी नेटवर्क में योगदान

प्रत्येक जेमी खाते में एक ओपनडीएचटी नोड चलता है, जो नेटवर्क में योगदान देता है और जेमी को स्केल करने की अनुमति देता है।

जेमी उपयोगकर्ता अपने स्वयं के स्थिर ओपनडीएचटी नोड को चलाकर और इसे जेमी में बूटस्ट्रैप नोड के रूप में कॉन्फ़िगर करके पूरी स्वतंत्रता प्राप्त कर सकते हैं, जबकि सार्वजनिक ओपनडीएचटी नेटवर्क के प्रत्येक उपयोगकर्ता के लिए स्थिरता, मजबूती और लचीलापन में सुधार करने में मदद कर सकते हैं।

एक स्टैंडअलोन नोड को [dhtnode उपयोगिता]https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode) के साथ चलाया जा सकता है जो OpenDHT के साथ शामिल है। dhtnode किसी भी डेटा को बरकरार नहीं रखता है और इसमें डिफ़ॉल्ट मेमोरी में 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.

टिप्पणी

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

JamiNS ब्लॉकचेन

जेमीएनएस ब्लॉकचेन प्रयोगात्मक है और इसकी वास्तुकला विकसित होने की उम्मीद है।

जेमी क्लाइंट खुद ब्लॉकचेन नोड्स को नहीं चलाते बल्कि नाम पंजीकरण और क्वेरी के लिए HTTP का उपयोग करके जेमीएनएस सर्वर के साथ संवाद करते हैं, एक REST एपीआई के साथ। यह इसलिए है क्योंकि ब्लॉकचेन नोड को चलाने के लिए आवश्यक संसाधन अधिकांश अंतिम उपयोगकर्ताओं के लिए बहुत अधिक हैं।

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

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.

एक जेमी नोड चला रहा है

Prerequisites

  1. Geth 1.8.23+ (download from here)

  2. Jami genesis file (download from here)

जमी नेटवर्क में शामिल होना

जेमी नेटवर्क में शामिल होने की प्रक्रिया एक नियमित ईथरियम नेटवर्क में शामिल होने की प्रक्रिया के समान है, लेकिन अंतर यह है कि डेटा निर्देशिका को आरंभ करने के लिए उत्पत्ति फ़ाइल का उपयोग किया जाता है।

  1. Jami github repo से Jami उत्पत्ति फ़ाइल डाउनलोड करें

  2. अपने कंप्यूटर पर एक निर्देशिका बनाएं जिसका उपयोग आप जेमी ब्लॉकचेन डेटा को संग्रहीत करने के लिए करेंगे

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

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

    • विंडोज के लिए उदाहरण (सीः\उपयोगकर्ता\उपयोगकर्ता नाम\जमीचैन)

  3. ./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

यह एक संलग्न कंसोल के साथ एक गेथ डेमोन शुरू होगा जो अब जामी के नेटवर्क के साथ सिंक्रनाइज़ किया जा रहा है।