डमी के लिए हाइपरलेजर फैब्रिक

उद्यम के लिए एक ब्लॉकचेन प्लेटफ़ॉर्म

डमी के लिए हाइपरलेजर फैब्रिक

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

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

मेरा लेख हाइपरलेजर फैब्रिक के बारे में लेखों की एक श्रृंखला का हिस्सा है, जिसके अंतर्गत हम विश्वविद्यालय में प्रवेश करने वाले छात्रों की रिकॉर्डिंग के लिए एक सिस्टम प्रोजेक्ट का वर्णन करते हैं।

हाइपरलेजर फैब्रिक की सामान्य वास्तुकला

हाइपरलेजर फैब्रिक एक वितरित ब्लॉकचेन नेटवर्क है जिसमें विभिन्न कार्यात्मक घटक शामिल हैं जो नेटवर्क नोड्स पर स्थापित हैं। हाइपरलेजर फैब्रिक घटक डॉकर कंटेनर हैं जिन्हें डॉकरहब से स्वतंत्र रूप से डाउनलोड किया जा सकता है। हाइपरलेजर फैब्रिक को कुबेरनेट्स वातावरण में भी चलाया जा सकता है।

स्मार्ट कॉन्ट्रैक्ट (हाइपरलेजर फैब्रिक के संदर्भ में चेनकोड) लिखने के लिए, हमने गोलांग का उपयोग किया (हालांकि हाइपरलेजर फैब्रिक अन्य भाषाओं के उपयोग की अनुमति देता है)। एक कस्टम एप्लिकेशन विकसित करने के लिए, हमारे मामले में, हमने संबंधित हाइपरलेजर फैब्रिक एसडीके के साथ Node.js का उपयोग किया।

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

सामान्य वास्तुकला इस प्रकार दिखती है:

डमी के लिए हाइपरलेजर फैब्रिक

चित्र 1. हाइपरलेजर फैब्रिक की सामान्य वास्तुकला

उपयोगकर्ता एप्लिकेशन (सबमिटिंग क्लाइंट) एक एप्लिकेशन है जिसके साथ उपयोगकर्ता ब्लॉकचेन नेटवर्क के साथ काम करते हैं। काम करने के लिए, आपको अधिकृत होना चाहिए और नेटवर्क पर विभिन्न प्रकार की कार्रवाइयों के लिए उचित अधिकार होना चाहिए।

सहकर्मी कई भूमिकाओं में आते हैं:

  • एंडोर्सिंग पीयर एक नोड है जो लेनदेन के निष्पादन का अनुकरण करता है (स्मार्ट अनुबंध कोड निष्पादित करता है)। स्मार्ट अनुबंध के सत्यापन और निष्पादन के बाद, नोड अपने हस्ताक्षर के साथ क्लाइंट एप्लिकेशन को निष्पादन परिणाम लौटाता है।
  • ऑर्डरिंग सेवा कई नोड्स पर एक वितरित सेवा है, जिसका उपयोग वितरित रजिस्ट्री के नए ब्लॉक उत्पन्न करने और लेनदेन के निष्पादन के लिए एक कतार बनाने के लिए किया जाता है। ऑर्डरिंग सेवा रजिस्ट्री में नए ब्लॉक नहीं जोड़ती है (प्रदर्शन में सुधार के लिए इस सुविधा को कमिटिंग पीयर्स में स्थानांतरित कर दिया गया है)।
  • कमिटिंग पीयर एक नोड है जिसमें एक वितरित रजिस्ट्री होती है और रजिस्ट्री में नए ब्लॉक जोड़ता है (जो ऑर्डरिंग सेवा द्वारा उत्पन्न किए गए थे)। सभी प्रतिबद्ध साथियों के पास वितरित खाता-बही की एक स्थानीय प्रति होती है। कमिटिंग पीयर स्थानीय स्तर पर एक नया ब्लॉक जोड़ने से पहले वैधता के लिए ब्लॉक के भीतर सभी लेनदेन की जांच करता है।

पृष्ठांकन नीति किसी लेन-देन की वैधता की जाँच करने की नीति है। ये नीतियां नोड्स के आवश्यक सेट को परिभाषित करती हैं जिन पर लेनदेन को वैध मानने के लिए स्मार्ट अनुबंध निष्पादित किया जाना चाहिए।

वितरित रजिस्ट्री - लेर्जर - में दो भाग होते हैं: वॉल्रल्डस्टेट (जिसे स्टेट डेटाबेस भी कहा जाता है) और ब्लॉकचेन।

ब्लॉकचेन ब्लॉकों की एक श्रृंखला है जो वितरित रजिस्ट्री ऑब्जेक्ट में हुए सभी परिवर्तनों के रिकॉर्ड संग्रहीत करती है।

WolrldState एक वितरित बहीखाता घटक है जो सभी वितरित बहीखाता वस्तुओं के वर्तमान (अत्याधुनिक) मूल्यों को संग्रहीत करता है।

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

चूंकि हाइपरलेजर फैब्रिक एक नेटवर्क है जिसमें सभी प्रतिभागियों को जाना जाता है और प्रमाणित किया जाता है, यह एक समर्पित प्रमाणन प्राधिकरण - सीए (प्रमाणन प्राधिकरण) का उपयोग करता है। CA X.509 मानक और सार्वजनिक कुंजी अवसंरचना - PKI के आधार पर संचालित होता है।

सदस्यता सेवा एक ऐसी सेवा है जिसके माध्यम से सदस्य यह सत्यापित करते हैं कि कोई वस्तु किसी विशेष संगठन या चैनल से संबंधित है।

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

चैनल एक बंद सबनेटवर्क है जिसमें दो या दो से अधिक ब्लॉकचेन नेटवर्क प्रतिभागी शामिल होते हैं, जिन्हें प्रतिभागियों के एक सीमित लेकिन ज्ञात दायरे के भीतर गोपनीय लेनदेन करने के लिए डिज़ाइन किया गया है। चैनल प्रतिभागियों, इसकी वितरित रजिस्ट्री, स्मार्ट अनुबंध, ऑर्डरिंग सेवा, वर्ल्डस्टेट द्वारा निर्धारित किया जाता है। प्रत्येक चैनल प्रतिभागी को चैनल तक पहुंचने के लिए अधिकृत होना चाहिए और विभिन्न प्रकार के लेनदेन करने का अधिकार होना चाहिए। प्राधिकरण सदस्यता सेवा का उपयोग करके किया जाता है।

विशिष्ट लेनदेन निष्पादन परिदृश्य

इसके बाद, मैं एक उदाहरण के रूप में हमारे प्रोजेक्ट का उपयोग करके एक विशिष्ट लेनदेन निष्पादन परिदृश्य के बारे में बात करना चाहूंगा।

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

1) लेन-देन की शुरूआत

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

डमी के लिए हाइपरलेजर फैब्रिक
चित्र 2. लेन-देन आरंभ करना

2) स्मार्ट अनुबंध का निष्पादन

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

डमी के लिए हाइपरलेजर फैब्रिक
चित्र 3. स्मार्ट अनुबंध का निष्पादन

3) क्लाइंट एप्लिकेशन पर डेटा लौटाना

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

डमी के लिए हाइपरलेजर फैब्रिक
चित्र 4. क्लाइंट एप्लिकेशन पर डेटा लौटाना

4) ऑर्डर करने वाले साथियों को आरडब्ल्यू सेट भेजना

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

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

डमी के लिए हाइपरलेजर फैब्रिक
चित्र 5. ऑर्डर करने वाले साथियों को आरडब्ल्यू सेट भेजना

5) कमिटिंग पीयर को जेनरेट किए गए ब्लॉक भेजना

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

डमी के लिए हाइपरलेजर फैब्रिक
चित्र 6. कमिटिंग पीयर को जेनरेट किए गए ब्लॉक भेजना

6) रजिस्ट्री में एक ब्लॉक जोड़ना

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

डमी के लिए हाइपरलेजर फैब्रिक
चित्र 7. रजिस्ट्री में एक ब्लॉक जोड़ना

ऑर्डरिंग सेवा

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

डमी के लिए हाइपरलेजर फैब्रिक
kafka.apache.org से लिया गया

  • चित्र 8. ऑर्डरिंग सेवा विषय संरचना*

उपयोगी कड़ियां

यूट्यूब - हाइपरलेजर प्रोजेक्ट के साथ व्यापार के लिए एक ब्लॉकचेन का निर्माण
हाइपरलेजर फैब्रिक डॉक्स
हाइपरलेजर फैब्रिक: अनुमति प्राप्त ब्लॉकचेन के लिए एक वितरित ऑपरेटिंग सिस्टम

स्वीकृतियाँ

मैं इस लेख को तैयार करने में मदद के लिए अपने सहयोगियों के प्रति गहरी कृतज्ञता व्यक्त करना चाहता हूं:
निकोले मैरिन
इगोर खापोव
दिमित्री गोर्बाचेव
अलेक्जेंडर ज़ेमत्सोव
एकातेरिना गुसेवा

स्रोत: www.habr.com

एक टिप्पणी जोड़ें