नए मल्टीचेन वॉलेट प्लेटोब्लॉकचेन डेटा इंटेलिजेंस की घोषणा। लंबवत खोज. ऐ.

नए मल्टीचैलेट वॉलेट की घोषणा

प्रदर्शन और मापनीयता के लिए एक महत्वपूर्ण कदम है

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

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

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

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

बिटकॉइन कोर का बटुआ

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

तो बिटकॉइन कोर से विरासत में मिले बटुए में क्या गलत है? वास्तव में, तीन चीजें:

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

परिणाम यह है कि, लगभग 20,000 लेनदेन संग्रहीत होने के साथ, बिटकॉइन कोर का बटुआ काफी धीमा हो जाता है। 200,000 या तो के बाद, यह व्यावहारिक रूप से एक पड़ाव को पीसता है। इससे भी बदतर, जब से एक मल्टीचैन ब्लॉकचेन 8 एमबी तक प्रति लेनदेन (बिटकॉइन के 80 बाइट्स की तुलना में) की अनुमति देता है, तो वॉलेट की मेमोरी आवश्यकताओं को लेनदेन की एक छोटी संख्या के साथ भी तेजी से गुब्बारा कर सकती है।

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

मल्टीचैन का नया बटुआ

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

नया बटुआ कैसे भिन्न होता है? यदि आपके पास डेटाबेस का कोई अनुभव है, तो उत्तर स्पष्ट हो सकते हैं:

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

दूसरे शब्दों में, हमने इन-नोड वॉलेट को ठीक से डेटाबेस-चालित (उपयोग करके) बनाया है लेवलडीबी), बल्कि एक भोले-से-स्मृति संरचना पर भरोसा करने के बजाय जिसे कुशलता से नहीं खोजा जा सकता है। अप्रत्याशित रूप से, अंतर (3.4 गीगाहर्ट्ज इंटेल कोर i7 पर मापा जाता है) बल्कि नाटकीय है:

मल्टीचैलेट वॉलेट लेनदेन थ्रूपुट

मेमोरी उपयोग

रेखांकन बताते हैं कि, एक बार पुराने वॉलेट में 250,000 लेनदेन होते हैं, तो इसकी दर 3 tx / sec तक गिर जाती है और यह नोड की मेमोरी उपयोग के लिए 600 MB जोड़ता है। इसके विपरीत, नया बटुआ 100 tx / सेकंड से अधिक समय तक बनाए रखता है और केवल 90 MB जोड़ता है। हमने इस बिंदु पर पुराने वॉलेट का परीक्षण बंद कर दिया है, लेकिन 6-8 मिलियन संग्रहीत लेनदेन के साथ भी, नया वॉलेट 100 से अधिक tx / sec भेजना जारी रखता है, और यह लगभग 250 एमबी रैम का उपयोग करता है (डेटाबेस कैशिंग के कारण)।

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

दोहराने के लिए, ये सभी संख्याएं उस दर को संदर्भित करती हैं जिस पर एक नोड अपने स्थानीय वॉलेट में लेनदेन बना सकता है, भेज सकता है और स्टोर कर सकता है, बजाए इसके कि दूसरों द्वारा बनाए गए प्रसंस्करण लेनदेन के मामले में अपने प्रवाह से। सामान्य नेटवर्क थ्रूपुट के लिए, मल्टीचैन वर्तमान में 200 से 800 tx / सेकंड की प्रक्रिया कर सकता है, यह उस हार्डवेयर पर निर्भर करता है जिस पर वह चल रहा है। (नियमित हार्डवेयर पर 100,000 tx / sec जैसे किसी भी ब्लॉकचेन सॉफ़्टवेयर होनहार नंबर पर संदेह करें, क्योंकि अड़चन डिजिटल हस्ताक्षर सत्यापन है, जो प्रदर्शन के लिए वास्तविक समय लेता है। यदि नोड्स व्यक्तिगत लेनदेन हस्ताक्षरों का सत्यापन नहीं कर रहे हैं, तो संभवत: एक ब्लॉकचेन का उपयोग पूरे भरोसेमंद रूप से नहीं किया जा सकता है। सीमाओं, यह एक नियमित रूप से वितरित डेटाबेस से बेहतर नहीं है।)

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

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

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

मल्टीचैन अल्फा 22 में शुरू, आप सत्यापित कर सकते हैं कि वर्तमान में वॉलेट का कौन सा संस्करण परीक्षण करके चल रहा है walletdbversion का क्षेत्र getinfo or getwalletinfo एपीआई कॉल। का एक मूल्य 1 मूल बिटकॉइन कोर वॉलेट का मतलब है, और 2 नए मल्टीचैलेट वॉलेट का मतलब है।

यदि आप किसी मौजूदा श्रृंखला पर मल्टीचैन का नया संस्करण चलाते हैं, तो यह तुरंत नए वॉलेट में नहीं जाएगा। आप नोड को रोककर वॉलेट को अपग्रेड कर सकते हैं और फिर चल सकते हैं multichaind मापदंडों के साथ -walletdbversion=2 –rescan। आप इसी तरह उपयोग करके डाउनग्रेड कर सकते हैं –walletdbversion=1 –rescan.

डिफ़ॉल्ट रूप से, जब आप एक नई श्रृंखला पर एक नोड शुरू करते हैं, तो यह स्वचालित रूप से नए बटुए का उपयोग करेगा। आप इसे चलाकर बदल सकते हैं multichaind पहली बार पैरामीटर के साथ –walletdbversion=1.

नए बटुए के साथ, सभी मल्टीचैन एपीआई पुराने लेन-देन क्वेरी एपीआई के अपवाद के साथ पहले की तरह ही काम करते हैं getreceivedbyaddress, listreceivedbyaddress और listtransactions (उपयोग listwallettransactions or listaddresstransactions बजाय)। इसके अलावा, नया वॉलेट एपीआई कॉल और बिटकॉइन कोर के खराब तरीके से लागू और जल्द ही होने वाले "खातों" तंत्र से संबंधित मापदंडों का समर्थन नहीं करता है, जो कि मल्टीचेन द्वारा कभी भी ठीक से समर्थन नहीं किया गया था। ये कॉल एक त्रुटि संदेश के साथ सुरक्षित रूप से अक्षम हैं।

स्रोत: https://www.multichain.com/blog/2016/07/announcing-the-new-multichain.walb/

समय टिकट:

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