पेश है मल्टीचैन स्ट्रीम

स्रोत नोड: 1213525

साझा अपरिवर्तनीय कुंजी-मूल्य और समय श्रृंखला डेटाबेस के लिए

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

  1. NoSQL की शैली में एक कुंजी-मूल्य डेटाबेस या दस्तावेज़ स्टोर।
  2. एक समय श्रृंखला डेटाबेस, जो प्रविष्टियों के क्रम पर केंद्रित है।
  3. एक पहचान-संचालित डेटाबेस जहां प्रविष्टियों को उनके लेखक के अनुसार वर्गीकृत किया जाता है।

इन्हें साझा डेटाबेस का 'क्या', 'कब' और 'कौन' माना जा सकता है।

मूल बातें धाराओं

मल्टीचैन ब्लॉकचैन में किसी भी संख्या में धाराएं बनाई जा सकती हैं, और प्रत्येक स्ट्रीम वस्तुओं के एक स्वतंत्र परिशिष्ट के रूप में कार्य करती है। एक स्ट्रीम में प्रत्येक आइटम में निम्नलिखित विशेषताएं हैं:

  • एक या अधिक प्रकाशकों जिन्होंने डिजिटल रूप से उस आइटम पर हस्ताक्षर किए हैं।
  • एक वैकल्पिक कुंजी सुविधाजनक बाद की पुनर्प्राप्ति के लिए।
  • कुछ तिथि, जो पाठ के एक छोटे से टुकड़े से लेकर कई मेगाबाइट कच्चे बाइनरी तक हो सकता है।
  • A टाइमस्टैम्प, जो ब्लॉक के हेडर से लिया जाता है जिसमें आइटम की पुष्टि की जाती है।

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

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

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

जैसा कि मैंने किया है पहले चर्चा की, बड़ी संख्या में ब्लॉकचेन उपयोग के मामलों में गोपनीयता सबसे बड़ी चुनौती है। ऐसा इसलिए है क्योंकि एक ब्लॉकचेन में प्रत्येक नोड को पूरी श्रृंखला की सामग्री की पूरी प्रतिलिपि दिखाई देती है। धाराएँ ब्लॉकचेन पर एन्क्रिप्टेड डेटा का समर्थन करने के लिए एक प्राकृतिक तरीका प्रदान करती हैं, जो निम्नानुसार है:

  1. किसी भी सार्वजनिक कुंजी क्रिप्टोग्राफ़ी योजना के लिए सार्वजनिक कुंजी वितरित करने के लिए प्रतिभागियों द्वारा एक धारा का उपयोग किया जाता है।
  2. डेटा को प्रकाशित करने के लिए एक दूसरी धारा का उपयोग किया जाता है, जहां एक अद्वितीय कुंजी के साथ सममित क्रिप्टोग्राफी का उपयोग करके डेटा के प्रत्येक टुकड़े को एन्क्रिप्ट किया जाता है।
  3. एक तीसरी धारा डेटा एक्सेस प्रदान करती है। प्रत्येक प्रतिभागी के लिए जो डेटा का एक टुकड़ा देखना चाहिए, एक स्ट्रीम प्रविष्टि बनाई जाती है जिसमें उस डेटा की गुप्त कुंजी होती है, जो उस प्रतिभागी की सार्वजनिक कुंजी का उपयोग करके एन्क्रिप्ट की गई होती है।

यह एक ब्लॉकचेन पर डेटा को संग्रहीत करने का एक कुशल तरीका प्रदान करता है, जबकि यह केवल कुछ प्रतिभागियों को दिखाई देता है।

धाराओं से पुनः प्राप्त

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

यदि किसी नोड को किसी स्ट्रीम में सब्सक्राइब किया जाता है, तो उस स्ट्रीम से कई तरीकों से जानकारी प्राप्त की जा सकती है:

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

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

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

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

धाराएँ और मल्टीचैन रोडमैप

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

लंबी अवधि में, मल्टीचैन रोडमैप में धाराएँ कहाँ मिलती हैं? एक कदम पीछे लेते हुए, मल्टीचैइन अब उच्च-स्तरीय कार्यक्षमता के तीन क्षेत्र प्रदान करता है:

  • अनुमतियाँ नियंत्रण करने के लिए, जो कनेक्ट कर सकते हैं, लेन-देन कर सकते हैं, संपत्ति / धाराएं बना सकते हैं, मेरा / मान्य और प्रशासित कर सकते हैं।
  • संपत्ति जारी करना, पुनर्जागरण, स्थानांतरण, परमाणु विनिमय, एस्क्रो और विनाश सहित।
  • स्ट्रीम स्ट्रीम बनाने, लिखने, सदस्यता लेने, अनुक्रमण करने और पुनः प्राप्त करने के लिए API के साथ।

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

पैरामीटर के लिए संभावित भविष्य के मूल्य शामिल हैं evm (एक के लिए Ethereum(असंगत आभासी मशीन), sql (एक SQL शैली डेटाबेस के लिए) या भी wiki (सहयोगी रूप से संपादित पाठ के लिए)। कोई भी साझा इकाई जिसका राज्य परिवर्तनों की एक क्रमबद्ध श्रृंखला द्वारा निर्धारित किया जाता है, एक संभावित उम्मीदवार है। प्रत्येक ऐसी इकाई की आवश्यकता होगी: (ए) एपीआई जो राज्य को अपडेट करने के लिए सही अमूर्तता प्रदान करते हैं, (बी) सब्सक्राइब किए गए नोड्स के लिए उस राज्य को ट्रैक करने के लिए उपयुक्त तंत्र, और (ग) एपीआई को कुशलतापूर्वक या पूरे राज्य को पुनः प्राप्त करने के लिए। हम यह जानने के लिए प्रतीक्षा कर रहे हैं कि कौन-सी अन्य उच्च-स्तरीय संस्थाएँ हमारे लिए या तीसरे पक्ष द्वारा प्लग-इन आर्किटेक्चर के माध्यम से कार्यान्वित होने के लिए सबसे उपयोगी होंगी।

स्मार्ट कॉन्ट्रैक्ट के बारे में क्या?

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

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

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

 

कृपया कोई टिप्पणी पोस्ट करें लिंक्डइन पर.

 

तकनीकी परिशिष्ट

धाराओं से संबंधित सभी आदेशों को पूर्ण रूप से प्रलेखित किया जाता है मल्टीचैन एपीआई पेज, लेकिन यहाँ एक संक्षिप्त सारांश है:

  • उपयोग करके एक स्ट्रीम बनाएं create stream or createfrom ... stream
  • किसी आइटम को स्ट्रीम के साथ जोड़ें publish or publishfrom
  • का उपयोग कर धाराओं की एक सूची प्राप्त करें liststreams
  • किसी स्ट्रीम को ट्रैक करना प्रारंभ या रोकना subscribe और unsubscribe
  • उपयोग करके स्ट्रीम आइटम पुनर्प्राप्त करें liststreamitems, liststreamkeyitems और liststreampublisheritems
  • साथ स्ट्रीम कुंजी और प्रकाशकों की सूची बनाएं liststreamkeys और liststreampublishers
  • बड़ी स्ट्रीम आइटम के लिए, पूर्ण डेटा का उपयोग करके पुनः प्राप्त करें gettxoutdata (देखें maxshowndata नीचे)
  • जैसे कॉल के साथ प्रति-स्ट्रीम अनुमतियां नियंत्रित करें grant [address] stream1.write
  • उपयोग करके एक स्ट्रीम की अनुमति देखें listpermissions stream1.*

धाराओं से संबंधित कुछ अन्य डेवलपर नोट:

  • RSI create अनुमति स्ट्रीम बनाने के लिए एक पते की अनुमति देती है।
  • प्रासंगिक प्रति-स्ट्रीम अनुमतियां हैं write, admin और activate
  • नया ब्लॉकचेन पैरामीटर: root-stream-name (कोई नहीं के लिए खाली छोड़ दें), root-stream-open, anyone-can-create, admin-consensus-create, max-std-op-returns-count
  • नया रनटाइम पैरामीटर: autosubscribe स्वचालित रूप से बनाई गई नई धाराओं की सदस्यता लेने के लिए और maxshowndata एपीआई प्रतिक्रियाओं में डेटा की मात्रा को सीमित करने के लिए (देखें) gettxoutdata ऊपर)।
  • किसी स्ट्रीम आइटम के डेटा का अधिकतम आकार इसके द्वारा तय किया गया है max-std-op-return-size ब्लॉकचेन पैरामीटर, साथ ही साथ छोटा maximum-block-size और max-std-tx-size मान कुछ सौ बाइट्स घटाता है।
  • पुराने वॉलेट प्रारूप का उपयोग करने वाले नोड स्ट्रीम की सदस्यता नहीं ले सकते, और अपग्रेड होना चाहिए.

 

समय टिकट:

से अधिक मल्टीचैन