5 मिनट
नई श्रृंखला एकीकरण
चेनें अपने इकोसिस्टम में Subgraph सपोर्ट लाने के लिए एक नया graph-node
इंटीग्रेशन शुरू कर सकती हैं। Subgraph एक शक्तिशाली इंडेक्सिंग टूल हैं जो डेवलपर्स के लिए संभावनाओं की दुनिया खोलते हैं। Graph Node
पहले से ही यहाँ सूचीबद्ध चेन से डेटा इंडेक्स करता है। यदि आप एक नए इंटीग्रेशन में रुचि रखते हैं, तो इसके लिए 2 इंटीग्रेशन रणनीतियाँ हैं:
- EVM JSON-RPC
- Firehose: सभी Firehose एकीकरण समाधान में Substreams शामिल हैं, जो Firehose पर आधारित एक बड़े पैमाने पर स्ट्रीमिंग इंजन है, जिसमें स्वदेशी
graph-node
समर्थन है, जो समानांतर रूपांतरण की अनुमति देता है।
ध्यान दें कि जबकि अनुशंसित तरीका सभी नए चेन के लिए एक नया Firehose विकसित करना है, यह केवल गैर-EVM चेन के लिए आवश्यक है।
एकीकरण रणनीतियाँ
1. EVM JSON-RPC
यदि ब्लॉकचेन EVM समान है और क्लाइंट/नोड मानक EVM JSON-RPC API को एक्सपोज़ करता है, तो Graph Node को नए चेन को इंडेक्स करने में सक्षम होना चाहिए।
एक EVM JSON-RPC का परीक्षण
Graph Node को EVM चेन से डेटा इन्गेस्ट करने के लिए, RPC नोड को निम्नलिखित EVM JSON-RPC विधियों को एक्सपोज़ करना होगा:
eth_getLogs
- eth_call (ऐतिहासिक ब्लॉक्स के लिए, EIP-1898 के साथ - आर्काइव नोड की आवश्यकता)
eth_getBlockByNumber
eth_getBlockByHash
net_version
eth_getTransactionReceipt
, in a JSON-RPC batch requesttrace_filter
(सीमित ट्रेसिंग और विकल्पतः Graph Node के लिए आवश्यक)
2. Firehose एकीकरण
Firehose एक अगली पीढ़ी की निष्कर्षण परत है। यह फ्लैट फ़ाइलों में इतिहास एकत्र करता है और वास्तविक समय में स्ट्रीम करता है। Firehose तकनीक उन पॉलिंग API कॉल्स को एक डेटा स्ट्रीम से बदल देती है, जो एक पुश मॉडल का उपयोग करती है, जिससे डेटा को इंडेक्सिंग नोड तक तेजी से भेजा जा सके। यह सिंकिंग और इंडेक्सिंग की गति बढ़ाने में मदद करता है।
नोट: StreamingFast टीम द्वारा की गई सभी एकीकरणों में श्रृंखला के कोडबेस में Firehose प्रतिकृति प्रोटोकॉल के लिए रखरखाव शामिल है।StreamingFast किसी भी परिवर्तन को ट्रैक करता है और जब आप कोड बदलते हैं और जब StreamingFastकोड बदलता है, तो बाइनरी जारी करता है। इसमें प्रोटोकॉल के लिए Firehose/Substreamsबाइनरी जारी करना, श्रृंखला के ब्लॉक मॉडल के लिए Substreamsमॉड्यूल को बनाए रखना, और आवश्यकता होने पर ब्लॉकचेन नोड के लिए इंस्ट्रुमेंटेशन के साथ बाइनरी जारी करना शामिल है।
Non-EVM चेन के लिए इंटीग्रेशन
फायरहोज़ को चेन में एकीकृत करने का प्राथमिक तरीका RPC पॉलिंग रणनीति का उपयोग करना है। हमारी पॉलिंग एल्गोरिदम नए ब्लॉक के आने का पूर्वानुमान लगाएगी और उस समय के करीब नए ब्लॉक के लिए जाँच करने की दर बढ़ा देगी, जिससे यह एक बहुत कम लेटेंसी और प्रभावी समाधान बन जाता है। फायरहोज़ के एकीकरण और रखरखाव में मदद के लिए, स्ट्रीमिंगफास्ट टीम से संपर्क करें। नए चेन और उनके एकीकृतकर्ताओं को फायरहोज़ और सबस्ट्रीम द्वारा उनके पारिस्थितिकी तंत्र में लाए गए फोर्क जागरूकता और विशाल समानांतर इंडेक्सिंग क्षमताओं की सराहना होगी।
EVM (’ geth ’) चेन के लिए विशिष्ट इंस्ट्रूमेंटेशन
EVM चेन के लिए, एक गहरे स्तर के डेटा को प्राप्त करने के लिए geth
लाइव-ट्रेसर का उपयोग किया जाता है, जो गो-एथेरियम और स्ट्रीमिंगफास्ट के बीच सहयोग है, जो उच्च थ्रूपुट और समृद्ध लेनदेन ट्रेसिंग प्रणाली बनाने के लिए है। लाइव ट्रेसर सबसे व्यापक समाधान है, जो विस्तारित ब्लॉक विवरण का परिणाम है। यह नए इंडेक्सिंग पैरेडाइम्स की अनुमति देता है, जैसे राज्य परिवर्तनों, कॉल्स, पैरेंट कॉल ट्रीज़ के आधार पर घटनाओं का पैटर्न मिलाना, या स्मार्ट कॉन्ट्रैक्ट में वास्तविक वेरिएबल्स में बदलाव के आधार पर घटनाओं को ट्रिगर करना।

नोट: Firehose में यह सुधार तब आवश्यक है जब चेन EVM इंजन geth संस्करण 1.13.0
और उससे ऊपर का उपयोग करें।
EVM विचार - JSON-RPC और Firehose के बीच का अंतर
JSON-RPC और Firehose दोनों ही सबग्राफ के लिए उपयुक्त हैं, लेकिन उन डेवलपर्स के लिए Firehose हमेशा आवश्यक होता है जो सबस्ट्रीम के साथ निर्माण करना चाहते हैं। सबस्ट्रीम का समर्थन करने से डेवलपर्स को नए चेन के लिए सबस्ट्रीम -powered सबग्राफ बनाने में मदद मिलती है और यह आपके सबग्राफ के प्रदर्शन को बेहतर बनाने की क्षमता रखता है। इसके अतिरिक्त, Firehose — graph-node
की JSON-RPC एक्सट्रैक्शन लेयर के ड्रॉप-इन रिप्लेसमेंट के रूप में — सामान्य indexing के लिए आवश्यक RPC कॉल्स की संख्या को 90% तक कम कर देता है।
- सभी
getLogs
कॉल और राउंडट्रिप्स को एकल स्ट्रीम द्वारा बदल दिया जाता है, जो सीधेgraph-node
के केंद्र में पहुँचती है; यह उन सभी Subgraph के लिए एक एकल ब्लॉक मॉडल प्रदान करता है जिनका यह प्रोसेस करता है।
नोट: Firehose-आधारित एकीकरण के लिए EVM चेन पर अभी भी Indexers को चेन का आर्काइव RPC नोड चलाने की आवश्यकता होगी ताकि सबग्राफ को सही तरीके से Index किया जा सके। इसका कारण यह है कि Firehose आमतौर पर eth_call
RPC मेथड द्वारा एक्सेस किए जाने वाली स्मार्ट contract स्थिति प्रदान नहीं कर सकता। (यह याद दिलाना महत्वपूर्ण है कि eth_calls
डेवलपर्स के लिए एक अच्छी प्रैक्टिस नहीं है)।
Graph Node Configuration
ग्राफ-नोड को कॉन्फ़िगर करना उतना ही आसान है जितना कि अपने स्थानीय वातावरण को तैयार करना। एक बार जब आपका स्थानीय वातावरण सेट हो जाता है, तो आप स्थानीय रूप से एक सबग्राफ को तैनात करके एकीकरण का परीक्षण कर सकते हैं।
-
इस पंक्ति को नए नेटवर्क नाम और EVM JSON-RPC या Firehose संगत URL को शामिल करने के लिए संशोधित करें।
कृपया पर्यावरण चर ethereum को खुद नाम में बदलें नहीं। यही रहना चाहिए, चाहे network का नाम भिन्न हो।
-
एक IPFS node चलाएं या उसे The Graph द्वारा उपयोग किया जाने वाले node का उपयोग करें: https://ipfs.thegraph.com
सबस्ट्रीम-संचालित सबग्राफ की सेवा
StreamingFast के नेतृत्व वाले Firehose/Substreams एकीकरणों के लिए, मूलभूत सबस्ट्रीम मॉड्यूल (जैसे कि डिकोड किए गए लेन-देन, लॉग्स और स्मार्ट-कॉन्ट्रैक्ट इवेंट्स) और सबस्ट्रीम codegen टूल्स के लिए बुनियादी समर्थन शामिल है। ये टूल्स सबस्ट्रीम-powered सबग्राफ को सक्षम करने की क्षमता प्रदान करते हैं। How-To Guide का पालन करें और substreams codegen subgraph
कमांड चलाकर स्वयं codegen टूल्स का अनुभव करें।