3Box अनुसंधान: वितरित डेटाबेस GUN, ऑर्बिटडी और स्कूटलबैट की तुलना

लोकप्रिय वितरित डेटाबेस प्रोटोकॉल के बीच समानताएं और अंतर

इस पोस्ट में 3 बॉक्स टीम द्वारा किए गए शोध का सारांश है। हम लोकप्रिय वितरित डेटाबेस प्रौद्योगिकियों के बीच समानता और अंतर को रेखांकित करते हैं, और अंततः कहते हैं कि हमने ऑर्बिटडी पर निर्माण क्यों चुना।

लोकप्रिय वितरित डेटाबेस का अवलोकन

वेब 3 में, ऐसा लगता है कि नई और रोमांचक प्रौद्योगिकियों की कभी न खत्म होने वाली आपूर्ति है जो आपकी समस्याओं को उपन्यास तरीके से हल करने का दावा करती है। Ethereum उपयोगकर्ताओं के लिए एक सामाजिक डेटाबेस 3Box को डिज़ाइन करते समय, हमें ऑफ-चेन सामग्री को रखने और साझा करने के लिए एक वितरित डेटाबेस (DDB) समाधान की आवश्यकता थी। हमने आज बाजार में सबसे लोकप्रिय DDB कार्यान्वयन में से कुछ पर शोध शुरू किया। हम अपने निष्कर्षों को खोलने और उन्हें समुदाय के साथ साझा करने के लिए सुपर उत्साहित हैं।

यह शोध तीन अलग-अलग वितरित डेटाबेस प्रोटोकॉल का अवलोकन प्रदान करेगा जो 3Box: GUN, OrbitDB, और Secure Scuttlebutt (SSB) के अनुसंधान और विकास के दौरान माना जाता था।

बंदूक

GUN एक विकेंद्रीकृत, ऑफ़लाइन-प्रथम, ग्राफ़ डेटाबेस है। यह डेवलपर्स के लिए एक आसान इंटरफ़ेस प्रदान करता है, जो ऐसे ऐप्स बनाता है जो ऑफ़लाइन काम करते हैं, और जब एप्लिकेशन एक समन्वय सर्वर से जुड़ा होता है, तो यह स्वचालित रूप से अन्य नोड्स में सिंक हो जाता है। लिखने के समय इसके लगभग 3K मासिक डाउनलोड (npm पर) हैं और एक सक्रिय समुदाय है।

OrbitDB

OrbitDB एक सहकर्मी से सहकर्मी डेटाबेस प्रोटोकॉल है, साथ ही प्रोटोकॉल का कार्यान्वयन भी है। यह कोर प्रोटोकॉल के शीर्ष पर विभिन्न प्रकार के डेटाबेस प्रदान करता है, और उपयोगकर्ताओं को अपने स्वयं के प्रकारों को लागू करने की अनुमति देता है। लेखन के समय इसके लगभग 3K मासिक डाउनलोड (npm पर) हैं और इसे हजा नेटवर्क द्वारा विकसित किया गया है।

सुरक्षित स्कूटलबैट (एसएसबी)

SSB एक पीयर-टू-पीयर लॉग स्टोर है जो डेटाबेस, पहचान प्रदाता और मैसेजिंग सिस्टम के रूप में उपयोग किया जाता है। यह मुख्य रूप से एक सामाजिक नेटवर्क के रूप में उपयोग के लिए जाना जाता है; पैचवर्क उनका सबसे लोकप्रिय क्लाइंट है। उनके क्लाइंट, स्कुटेलबोट, वर्तमान में लगभग 3K मासिक डाउनलोड (npm पर) हैं। SSB के पास अपने सोशल नेटवर्क में उपयोगकर्ताओं का एक बहुत सक्रिय समुदाय है।

एक वितरित डेटाबेस के परतें

गन, ऑर्बिटडीबी और स्कटलबुट की जांच करते समय, हमने देखा कि डीडीबी आर्किटेक्चर कुछ समानताएं साझा करते हैं। प्रोटोकॉल को अलग-अलग परतों में सोचा जा सकता है:

  1. नेटवर्किंग: संचार प्रोटोकॉल जो सिंक में नोड्स रखता है
  2. इवेंट लॉग: डेटाबेस के लिए कोर डेटा मॉडल
  3. उपयोगकर्ता प्रमाणीकरण: डेटाबेस तक पहुंच नियंत्रण विधि
  4. इंटरफ़ेस: डेवलपर्स के लिए एपि

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

1. नेटवर्किंग

वितरित डेटाबेस सिस्टम को सहकर्मी नोड्स के बीच विश्वसनीय रूप से अपडेट करने की आवश्यकता होती है। नेटवर्किंग परत परिभाषित करती है कि डीडीबी नोड्स को कैसे अपडेट करता है और इन अद्यतनों पर सहमत होता है। नेटवर्किंग परत किसी भी वितरित डेटाबेस का एक बहुत ही महत्वपूर्ण पहलू है, क्योंकि एक खराब नेटवर्किंग परत नोड्स में गलत अपडेट और असंगत स्थिति पैदा कर सकती है।

आइए देखें कि तीन डीडीबी अपने पी 2 पी नेटवर्किंग प्रोटोकॉल को कैसे लागू करते हैं:

गन ने अपने नेटवर्क स्टैक को अत्याधुनिक वेब्राटैक और वेबसोकेट तकनीक का उपयोग करके लागू किया। इसका मतलब है कि ब्राउज़र किसी भी सर्वर की आवश्यकता के बिना एक दूसरे के साथ सीधे संवाद कर सकते हैं (एक कनेक्शन को बातचीत करने के लिए एक webrtc सर्वर को छोड़कर, जो सभी ब्राउज़र आधारित पी 2 पी तकनीक के लिए सच है)।

SSB एक कस्टम P2p नेटवर्क को परिभाषित और कार्यान्वित करता है। यह आपको अपने स्थानीय नेटवर्क में साथियों की खोज करने, पब (सार्वजनिक नोड्स) से जुड़ने और अन्य उपयोगकर्ताओं द्वारा विज्ञापित पबों की खोज करने की अनुमति देता है। यह एसएसबी को एक केंद्रीय सर्वर पर निर्भर होने और चलने के बिना काम करने की अनुमति देता है।

OrbitDB libp2p का उपयोग करता है जो एक मॉड्यूलर पी 2 पी लाइब्रेरी है जो कई अलग-अलग ट्रांसपोर्ट पर काम कर सकता है और विभिन्न वातावरणों में बहुत सारे काम करता है। js-libp2p ब्राउज़र ग्राहकों को वेबब्रेट सर्वरों के साथ संचार करने की अनुमति देता है, अन्य ब्राउज़र ग्राहकों के साथ वेबब्रक और अन्य के माध्यम से। वर्तमान में इसका उपयोग IPFS, Parity Substrate में किया जाता है, और इसका उपयोग Eth2.0 में किया जाएगा।

2. राज्य प्रबंधन

वितरित डेटाबेस सिस्टम को डेटा को इस तरह से मॉडल करने की आवश्यकता है कि उपयोगकर्ता इसकी अखंडता की गारंटी दे सकें। यह अलग-अलग तरीकों से अलग-अलग तरीकों से हासिल किया जाता है। एक दृष्टिकोण डेटा के साथ एक लिंक की गई सूची बना रहा है। विभिन्न प्रकार के सीआरडीटी का भी उपयोग किया जा सकता है।

लिंक की गई सूची का उपयोग उन दो वितरित डेटाबेस प्रणालियों में कोर डेटा मॉडल के रूप में किया जाता है, जिनकी हमने जांच की थी। हर लिंक पिछली प्रविष्टि का हैश है; और प्रत्येक प्रविष्टि डेटाबेस के लिए एक स्व-निहित अद्यतन है। हालाँकि, सिस्टम में लिंक की गई सूचियों को लागू करने के तरीके में अंतर हैं:

SSB एक परिशिष्ट-केवल लॉग का उपयोग करता है, जिसे वे फ़ीड कहते हैं। हम उनके डॉक्स में क्या पा सकते हैं, ऐसा लगता है कि यह लॉग मानता है कि कोई संघर्ष नहीं है। इस मॉडल में, वे मानते हैं कि एक उपयोगकर्ता हमेशा अपने फ़ीड की सबसे हाल की स्थिति जानता है। यदि उपयोगकर्ता के पास परस्पर विरोधी अपडेट प्रदान करने वाले कई उपकरण हैं, तो यह समस्याग्रस्त बनने की क्षमता रखता है, जो आसानी से हो सकता है यदि कोई उपयोगकर्ता एक डिवाइस पर ऑफ़लाइन हो, लेकिन दूसरे पर नहीं। कृपया हमें बताएं कि यदि आपके पास किसी भी तरह से अधिक जानकारी है तो इसे किसी तरह से एसएसबी द्वारा नियंत्रित किया जाता है क्योंकि हम जागरूक नहीं हैं।

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

GUN एक राज्य आधारित CRDT का उपयोग करता है, जिसका अर्थ है कि यह केवल लॉग का उपयोग नहीं करता है। इसके बजाय यह किसी भी समय सिस्टम की स्थिति का संचार करता है। उनका यहाँ संक्षिप्त वर्णन है।

3. उपयोगकर्ता प्रमाणीकरण

डेटाबेस को विभिन्न कार्यों को करने वाले अनुमतियों को प्रबंधित करने के तरीके की आवश्यकता होती है। चूंकि वितरित डेटाबेस पहुँच नियंत्रण अनुमतियों को नियंत्रित करने के लिए एक केंद्रीय सर्वर पर भरोसा नहीं कर सकते हैं, इसके बजाय प्रमाणीकरण सार्वजनिक-कुंजी क्रिप्टोग्राफी पर भरोसा कर सकते हैं।

SSB के पास पहचान की अवधारणा है जहां एक फ़ीड केवल एक पहचान के स्वामित्व में हो सकता है। एसएसबी के मामले में एक पहचान बस एक असममित कुंजी जोड़ी है। यह ट्विटर जैसे सामाजिक नेटवर्क के उपयोग के मामलों के लिए बहुत अच्छा है जहां उपयोगकर्ता वैश्विक पोस्ट बनाते हैं, लेकिन टिप्पणी अनुभागों आदि के लिए कम आदर्श हो सकते हैं।

OrbitDB में एक अभिगम नियंत्रण प्रणाली है जहां आप DB निर्माण पर सार्वजनिक कुंजी का एक सेट परिभाषित करते हैं। यह आपको एक डीबी रखने की अनुमति देता है जो कई उपयोगकर्ता एक बार में अपडेट कर सकते हैं। वर्तमान में सार्वजनिक कुंजी के प्रारंभिक सेट को बदलने का कोई तरीका नहीं है, हालांकि अधिक उन्नत प्रमाणीकरण प्रणाली पर काम किया जा रहा है।

GUN में एक उपनाम और पासवर्ड के आधार पर प्रमाणीकरण प्रणाली है। उनके उदाहरणों को देखने से ऐसा लगता है कि लोगों को गतिशील रूप से पहुंच प्रदान करना संभव है, हालांकि उनके प्रलेखन में काफी कमी है।

4. इंटरफ़ेस

डेटाबेस को चुनते समय प्रयोज्यता और लचीलापन डेवलपर्स के लिए चिंता का विषय है। तो हमने खुद से पूछा, इंटरफ़ेस या एपीआई कितना आसान है जो डेवलपर्स को डेटाबेस के साथ बातचीत करने और इसके शीर्ष पर एप्लिकेशन बनाने की अनुमति देता है?

SSB में प्लगइन्स की अवधारणा है जो SSB लॉग पर विभिन्न "दृश्य" प्रदान करता है। हम वास्तव में इन प्लगइन्स को लिखने के बारे में बहुत अधिक दस्तावेज नहीं पा सकते हैं लेकिन ऐसा लगता है कि आपको मूल रूप से एक नक्शा लिखना है और फ़ंक्शन को कम करना है।

OrbitDB विभिन्न प्रकार के डेटा स्टोर के लिए अलग-अलग विकल्प प्रदान करता है जिसमें एक बहुत स्पष्ट एपीआई है। लॉग स्टोर एसएसबी फीड के काफी समान हैं, जबकि की-वैल्यू स्टोर में लोकलस्टोरेज के समान इंटरफ़ेस है, जो सभी वेब ब्राउज़र में उपलब्ध है।

GUN DB की हेरफेर करने के लिए एक इंटरफ़ेस के रूप में एक ग्राफ की अवधारणा का उपयोग करता है। मूल रूप से आपको एक नोड मिलता है, फिर आप उस पर डेटा डाल सकते हैं या उस पर अपडेट सुन सकते हैं। उनका हैलो वर्ल्ड उदाहरण आपको यह समझने में मदद करेगा कि यह कैसे काम करता है।

डेटा बैकअप और होस्टिंग

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

कुछ प्रश्न जिन पर आप विचार कर सकते हैं: क्या होगा यदि आपका उपयोगकर्ता अपना फोन या कंप्यूटर खो देता है जहां सभी डेटा संग्रहीत है? या अगर उपयोगकर्ता ऑफ़लाइन है, तो userB के बारे में उपयोगकर्ता जानकारी प्राप्त करना चाहता है, तो क्या होगा?

GUN उपयोगकर्ताओं को एक http सर्वर से जुड़ने की अनुमति देता है जो उपयोगकर्ता के DB में सभी डेटा को होस्ट करता है। Http सर्वर गन DB का एक उदाहरण चलाता है और अपने ग्राहकों से सभी परिवर्तनों की प्रतिकृति देता है।

SSB में पब की अवधारणा है, जो बस सार्वजनिक SSB नोड्स हैं जो कई उपयोगकर्ताओं का अनुसरण करते हैं। यदि उपयोगकर्ता अपना डेटा खो देते हैं, तो उन्हें पब से एक प्रति वापस मिल सकती है - यदि यह अभी भी उपलब्ध है। नोट: उपयोगकर्ताओं को एक पब द्वारा स्पष्ट रूप से अनुरोध किया जाना है।

दूसरी ओर ऑर्बिटडीबी में डेटा का बैकअप लेने वाले नोड की कोई मूल अवधारणा नहीं है। इसके बजाय यह पीबी की खोज करने के लिए libp2p pubsub प्रोटोकॉल का उपयोग करता है जो दिए गए DB उदाहरण की नकल कर रहे हैं। यह उपयोगकर्ता के डेटाबेस को सक्रिय रूप से कई सहकर्मी उदाहरणों पर सक्रिय रूप से बैकअप करने की अनुमति देता है, जिसमें उपयोगकर्ता को उनमें से किसी से स्पष्ट रूप से जुड़ने की आवश्यकता नहीं होती है। हमें लगता है कि यह बहुत साफ है।

निष्कर्ष

कुल मिलाकर तीन डेटाबेस कुछ समानताएं साझा करते हैं और उनमें से सभी अभी भी विकास में शुरुआती हैं। भविष्य में हम कल्पना करते हैं कि इनमें से कुछ परियोजनाएं अपनी कुछ परतों को बंद करना शुरू कर सकती हैं। उदाहरण के लिए, हमें लगता है कि यह वास्तव में अच्छा होगा अगर SSB ने libp2p के शीर्ष पर काम किया!

OrbitDB

OrbitDB

इस समय, ऐसा लगता है कि OrbitDB तीन विकल्पों में से सबसे अधिक लचीली वितरित डेटाबेस प्रणाली प्रदान करता है।

  • ऑर्बिट इंटरफ़ेस संभावित उपयोग के मामलों की सबसे विस्तृत श्रृंखला प्रदान करता है। ऑर्बिट द्वारा की पेशकश की जाने वाली डेटा स्टोर की विविधता बहुत व्यापक प्रकार के अनुप्रयोगों और उपकरणों के उपयोग के लिए वैकल्पिकता और लचीलापन प्रदान करती है।
  • ऑर्बिट नेटवर्क परिचित, सुव्यवस्थित प्रौद्योगिकियों के शीर्ष पर बनाया गया है। libp2p और ipfs ऑर्बिट सिस्टम को एक ठोस आधार प्रदान करते हैं, जो एथेरियम समुदाय के कई सदस्य पहले से ही परिचित हैं। Libp2p के अन्य उल्लेखनीय लाभ यह हैं कि
  • ब्राउजर में ऑर्बिट को बहुत आसानी से चलाया जा सकता है। यह फिर से libp2p की वजह से है।
  • ऑर्बिट नेटवर्क कई साथियों को डेटा होस्ट करने और साझा करने की अनुमति देता है। libp2p OrbitDB को कई साथियों से डेटाबेस अपडेट को आसानी से सिंक करने की अनुमति देता है, जो कई साथियों को डेटा होस्ट करने की अनुमति देता है। इस वजह से, ऑर्बिट एक नेटवर्क के निर्माण की अनुमति देता है, जो किसी को भी डेटा उपलब्ध रखने में मदद करने के लिए शामिल हो सकता है, जिससे पूरे नेटवर्क को और अधिक मजबूत बनाया जा सकता है।

बंदूक

3 बॉक्स टीम ने GUN को दिलचस्प पाया, और हम आगे ग्राफ अवधारणा का पता लगाएंगे। हालाँकि परियोजना की एक खामी यह है कि प्रलेखन काफी गड़बड़ है जिससे डीबी का उपयोग कैसे किया जा सकता है इसकी अच्छी समझ प्राप्त करना मुश्किल है।

एसएसबी

सुरक्षित स्कूटलबैट एक विशिष्ट वितरित सामाजिक नेटवर्क एप्लिकेशन की तरह लगता है, जिस पर एप्लिकेशन बनाने के लिए डेटाबेस की तुलना में अधिक है। और वास्तव में, एक सामाजिक नेटवर्क वही है जो टीम कहती है कि वे निर्माण कर रहे हैं। SSB एक शांत प्रणाली है लेकिन कार्यक्षमता में सीमित और अनम्य है। यह बहुत ही सीमित विकल्पों के साथ मानक एकल-फ़ीड-आधारित सामाजिक नेटवर्क के बाहर कुछ भी बनाने की कोशिश कर रहे डेवलपर्स को छोड़ देगा। इसके शीर्ष पर विविध ऐप्स का निर्माण करना चुनौतीपूर्ण होगा।

3Box OrbitDB पर बनाया गया है

3 बॉक्स web3 के लिए सामाजिक प्रोफ़ाइल बना रहा है; और हमने उपरोक्त सभी कारणों के लिए OrbitDB के शीर्ष पर बनाना चुना।

3Box एप्लिकेशन उपयोगकर्ताओं को उनके Ethereum पते के लिए एक सामाजिक प्रोफ़ाइल बनाने, उनकी जानकारी अपलोड करने और dapps में लॉग इन करने की अनुमति देता है।

हमारे प्रोफाइल एपीआई को एथेरियम खातों के बारे में जानकारी प्राप्त करना और सेट करना आसान बनाता है, जो ऑनबोर्डिंग में सुधार करता है, डेटा साझाकरण को दर्द रहित बनाता है, और डेवलपर्स को उन डेटा पर नियंत्रण देने में मदद करता है जो मायने रखते हैं।

चर्चा जारी है

3Box सभी वितरित डेटाबेस में रुचि रखने वाला एक सक्रिय समुदाय है। यदि आपके पास विचार, प्रतिक्रिया, अनुभव है, तो योगदान करना चाहते हैं, या एकीकृत करना चाहते हैं:

हमारे कलह में शामिल हों

हम इस शोध के इर्द-गिर्द संवाद को वास्तव में सराहेंगे और प्रोत्साहित करेंगे। हमारा लक्ष्य समुदाय के सदस्यों को मूल्यवान बनाना है। कृपया कोई टिप्पणी छोड़ने में संकोच न करें, खासकर अगर हम कुछ भी याद करते हैं या गलत हैं। आपके समर्थन के लिए धन्यवाद, और खुश # शांति!