इस लेख की मुख्य छवि हैकरनून केएआई इमेज जेनरेटर द्वारा "व्हाइटबोर्ड पर ब्लॉकचेन ट्रांजैक्शन हैश" के माध्यम से तैयार की गई थी।
इस लेख में हम गुप्त ओपन-सोर्स टूल के बारे में बात करेंगे, जिसके बारे में कोई नहीं जानता है, जो प्रकाश गति से ब्लॉकचेन से उपयोगी डेटा को क्वेरी करने की अनुमति देता है।
हम नमूना प्रश्न देंगे जो ब्लॉकचेन से उपयोगी डेटा प्राप्त करने के लिए कर सकते हैं और हम टूल के आर्किटेक्चर के बारे में बात करेंगे जो इतनी उच्च गति से विश्लेषण करने की अनुमति देता है।
हालांकि इससे पहले, इस बारे में बात करते हैं कि आपको ब्लॉकचेन से लेन-देन का विश्लेषण करने की आवश्यकता क्यों है।
लेकिन
और ऊपर से, आप एक्सट्रपलेशन कर सकते हैं और इसके बारे में जानकारी प्राप्त कर सकते हैं
और 100+ विभिन्न अन्य विश्लेषिकी।
जैसा कि आप देख सकते हैं, बिटकॉइन बाजार के बारे में जो डेटा हम प्राप्त कर सकते हैं वह विरासत बाजारों की तुलना में कहीं अधिक व्यापक है। और सबसे महत्वपूर्ण बात यह है कि औसत व्यक्ति तक इसकी पहुंच हो सकती है। इसके विपरीत, विरासत वाले बाजारों में केवल हेज फंड और बैंकों के पास इस तरह के डेटा तक पहुंच है।
इसलिए, बिटकॉइन ब्लॉकचेन पर लेन-देन का विश्लेषण करके कोई भी बिटकॉइन के बाजार को बेहतर ढंग से समझ सकता है और इस डेटा के आधार पर बेहतर निवेश निर्णय ले सकता है।
तो यह टूल कैसे काम करता है?
BlockSci का लक्ष्य मौजूदा ब्लॉकचेन विश्लेषण उपकरणों के तीन दर्द बिंदुओं को संबोधित करना है:
खराब प्रदर्शन वह दर्द बिंदु है जिसे BlockSci सबसे अच्छा हल करता है। उदाहरण के लिए, बिटकॉइन लेनदेन का विश्लेषण करने के लिए क्रूर बल दृष्टिकोण भी काम करेगा। आप अपने कंप्यूटर/सर्वर पर बिटकॉइन नोड चला सकते हैं, और सीधे अपने स्वयं के नोड को क्वेरी कर सकते हैं। लेकिन यह तरीका इतना धीमा है कि सभी 1 बिलियन बिटकॉइन लेनदेन को संसाधित करने में वर्षों लग सकते हैं।
अन्य मौजूदा उपकरण भी खराब प्रदर्शन से ग्रस्त हैं, विशेष रूप से सामान्य-उद्देश्य वाले ग्राफ़ डेटाबेस का उपयोग करते समय, जो उन्हें अनुक्रमिक प्रश्नों के लिए सैकड़ों गुना धीमा बनाता है और ग्राफ़ ट्रैवर्सल प्रश्नों सहित सभी प्रश्नों के लिए काफी धीमा होता है।
BlockSci का डिज़ाइन मुख्य रूप से इस तथ्य पर आधारित है कि ब्लॉकचेन में, अतीत में ब्लॉक को बदला नहीं जा सकता है, और ब्लॉकचेन पर दिखाई देने वाले सभी नए डेटा केवल परिशिष्ट हैं।
इसका मतलब यह है कि लेन-देन संबंधी डेटाबेस के एसीआईडी गुण अनावश्यक हैं, एक इन-मेमोरी विश्लेषणात्मक डेटाबेस को प्राकृतिक विकल्प बनाते हैं। डिस्क स्टोरेज के बजाय मेमोरी का उपयोग करने से डेटा प्रोसेसिंग की गति काफी तेज हो जाती है जो वास्तव में हमें चाहिए।
वास्तव में, BlockSci गणना करने के लिए पूरे ब्लॉकचेन को मेमोरी में लोड करता है और वितरित प्रसंस्करण दृष्टिकोण से बचता है। यह इस तथ्य से प्रेरित है कि ब्लॉकचेन डेटा ग्राफ़-संरचित है, और इस प्रकार प्रभावी रूप से विभाजन करना कठिन है।
इसके डिजाइनर का अनुमान था कि ब्लॉकचैन विश्लेषण के लिए एक पारंपरिक, वितरित लेन-देन संबंधी डेटाबेस का उपयोग अनंत लागत (कॉन्फ़िगरेशन जो एक एकल थ्रेड से बेहतर प्रदर्शन करता है) है, इस अर्थ में कि समानता का कोई भी स्तर एक अनुकूलित सिंगल-थ्रेडेड कार्यान्वयन से बेहतर प्रदर्शन नहीं कर सकता है।
यह गति को और भी अधिक बढ़ाने और डेटा के आकार को कम करने के लिए हैश पॉइंटर्स को वास्तविक पॉइंटर्स में परिवर्तित करने और एड्रेस डेटा को डुप्लीकेट करने जैसी कई तकनीकों को भी लागू करता है।
नोड से डेटा आयात करने के लिए, BlockSci अपने स्वयं के उच्च-प्रदर्शन आयातक का उपयोग करता है जो सीधे डिस्क पर कच्चे डेटा को पढ़ता है और JSON-RPC इंटरफ़ेस में निर्मित नहीं होता है। फिर भी, नोड से सभी डेटा को आयात और अनुक्रमित करने में आमतौर पर 24 घंटे लगते हैं। एक बार जब डेटा को पार्स कर दिया जाता है, तो वास्तविक विश्लेषण तेज़ होते हैं।
जिस तरह से ब्लॉकचेन को डिस्क पर संग्रहीत किया जाता है उसका विश्लेषण करना आसान नहीं है। उन्हें लेनदेन की जांच करने और बड़े नेटवर्क में डेटा खोजने जैसे अन्य काम करने के लिए बनाया जाता है। उन्हें डिस्क पर मूल स्वरूप में ब्लॉक रखकर स्मृति में स्थान बचाने के लिए भी बनाया जाता है। लेकिन हमें इसे मेमोरी में फिट करने के लिए डेटा को बदलने की जरूरत है, इसलिए ब्लॉकस्की के पास एक पार्सर है जो इस चरण को संभाल सकता है। यह सुनिश्चित किया गया था कि यह पार्सर अच्छी तरह से अनुकूलित है।
इस तरह की उच्च गति प्राप्त करने का दूसरा तरीका "ब्लूम फ़िल्टर ऑप्टिमाइज़ेशन" है। ब्लूम फ़िल्टर एक संभाव्य डेटा संरचना है जो एक सेट में परीक्षण सदस्यता की अनुमति देता है। ब्लॉकचैन के संदर्भ में, यह सभी देखे गए पतों को संग्रहीत करता है और गैर-मौजूद लोगों के लिए डेटाबेस प्रश्नों की संख्या को कम करते हुए मौजूदा पतों के लिए लुकअप की शुद्धता सुनिश्चित करता है। यह इस तथ्य के आधार पर प्राप्त किया जाता है कि लगभग 88% इनपुट पिछले 4000 ब्लॉकों में निर्मित आउटपुट खर्च करते हैं और केवल 8.6% बिटकॉइन पते एक से अधिक बार उपयोग किए जाते हैं।
अंतिम सबसे महत्वपूर्ण अनुकूलन जो BlockSci को उच्च विश्लेषण गति प्राप्त करने की अनुमति देता है, वह डेटा लेआउट संरचना है जो उच्च विश्लेषिकी गति प्रदान करती है और मेमोरी पर बहुत अधिक टोल नहीं लेती है।
BlockSci का डेटा लेआउट उपलब्ध डेटा को तीन श्रेणियों में विभाजित करता है और इसे हाइब्रिड स्कीम में संयोजित करता है। अधिकांश विश्लेषणों के लिए मुख्य लेन-देन ग्राफ की आवश्यकता होती है और हमेशा इन-मेमोरी लोड होती है, जो पंक्ति-आधारित प्रारूप में संग्रहीत होती है। केवल विश्लेषण के एक सबसेट के लिए आवश्यक लिपियों और अतिरिक्त डेटा को हाइब्रिड (आंशिक रूप से कॉलम-आधारित, आंशिक रूप से पंक्ति-आधारित) प्रारूप में संग्रहीत किया जाता है और ऑन-डिमांड लोड किया जाता है। अलग-अलग लेन-देन या पते को हैश द्वारा देखने के लिए अनुक्रमणिका डिस्क पर एक अलग डेटाबेस में संग्रहीत की जाती हैं।
इसके अतिरिक्त, जहां संभव हो, यह डेटा फ़ील्ड्स के लिए निश्चित आकार के एन्कोडिंग का उपयोग करता है, संदर्भ के इलाके के लिए मेमोरी लेआउट का अनुकूलन करता है, कुशल ट्रैवर्सल के लिए आउटपुट को लिंक करता है, और मेमोरी मैपिंग और समांतरता साझा करता है।
अंत में, यहां वह क्वेरी है जो शुल्क के साथ सभी लेन-देन का पता लगाती है> 0.1 बिटकॉइन एक मिनट के भीतर।
chain.blocks.txes.where(lambda tx: tx.fee > 10**7).to_list()
BlockSci एक ब्लॉकचेन विश्लेषण उपकरण है जो ब्लॉकचेन से उपयोगी डेटा की बिजली की तेजी से क्वेरी करने की अनुमति देता है। बिटकॉइन लेनदेन का विश्लेषण करके, कोई भी बाजार को बेहतर ढंग से समझ सकता है और निवेश के बेहतर निर्णय ले सकता है।
BlockSci का आर्किटेक्चर इस तथ्य पर आधारित है कि ब्लॉकचेन डेटा ग्राफ़-संरचित है और प्रभावी रूप से विभाजित करना कठिन है, इसलिए यह गणना करने के लिए पूरे ब्लॉकचेन को मेमोरी में लोड करता है। यह गति बढ़ाने के लिए कई तकनीकों को लागू करता है, जिसमें हैश पॉइंटर्स को वास्तविक पॉइंटर्स में परिवर्तित करना, एड्रेस डेटा को डीडुप्लिकेट करना और ब्लूम फ़िल्टर ऑप्टिमाइज़ेशन का उपयोग करना शामिल है। डेटा लेआउट संरचना उच्च विश्लेषिकी गति दोनों देती है और मेमोरी पर बहुत अधिक टोल नहीं लेती है।