title |
---|
विकसक वारंवार विचारले जाणारे प्रश्न |
सबग्राफ हा ब्लॉकचेन डेटावर तयार केलेला कस्टम API आहे. ग्राफक्यूएल क्वेरी भाषेचा वापर करून सबग्राफ्स विचारले जातात आणि ग्राफ सीएलआय वापरून ग्राफ नोडमध्ये तैनात केले जातात. एकदा द ग्राफच्या विकेंद्रीकृत नेटवर्कवर तैनात आणि प्रकाशित झाल्यानंतर, इंडेक्सर्स सबग्राफवर प्रक्रिया करतात आणि सबग्राफ ग्राहकांद्वारे विचारण्यासाठी त्यांना उपलब्ध करून देतात.
एकदा सबग्राफ तयार केल्यावर ते हटवणे शक्य नाही.
नाही. एकदा सबग्राफ तयार केल्यावर नाव बदलता येत नाही. तुम्ही तुमचा सबग्राफ तयार करण्यापूर्वी याचा काळजीपूर्वक विचार केल्याचे सुनिश्चित करा जेणेकरून ते इतर डॅप्सद्वारे सहजपणे शोधता येईल आणि ओळखता येईल.
नाही. एकदा सबग्राफ तयार केल्यावर, संबंधित GitHub खाते बदलता येत नाही. तुमचा सबग्राफ तयार करण्यापूर्वी याचा काळजीपूर्वक विचार करा.
तुम्हाला क्वेरी करण्यात स्वारस्य असलेल्या डेटाशी संबंधित इव्हेंट असण्यासाठी तुम्ही तुमच्या स्मार्ट कॉन्ट्रॅक्टची रचना करण्याची शिफारस केली जाते. सबग्राफमधील इव्हेंट हँडलर कॉन्ट्रॅक्ट इव्हेंटद्वारे ट्रिगर केले जातात आणि उपयुक्त डेटा पुनर्प्राप्त करण्याचा सर्वात जलद मार्ग आहे.
जर तुम्ही काम करत असलेल्या करारांमध्ये इव्हेंट्स नसतील, तर तुमचा सबग्राफ इंडेक्सिंग ट्रिगर करण्यासाठी कॉल आणि ब्लॉक हँडलर वापरू शकतो. जरी याची शिफारस केलेली नाही, कारण कार्यप्रदर्शन लक्षणीयरीत्या हळू होईल.
तुम्हाला एकाधिक नेटवर्कसाठी स्वतंत्र नावांची आवश्यकता असेल. तुमच्याकडे एकाच नावाखाली वेगवेगळे सबग्राफ असू शकत नसले तरी, एकाधिक नेटवर्कसाठी एकच कोडबेस ठेवण्याचे सोयीचे मार्ग आहेत. आमच्या दस्तऐवजात याबद्दल अधिक शोधा: सबग्राफ पुन्हा तैनात करणे
तुमचा सबग्राफ इंडेक्स करत असताना टेम्प्लेट्स तुम्हाला फ्लायवर डेटा स्रोत तयार करण्याची परवानगी देतात. असे असू शकते की तुमचा करार नवीन करार तयार करेल कारण लोक त्याच्याशी संवाद साधतील आणि तुम्हाला त्या करारांचे स्वरूप (एबीआय, इव्हेंट इ.) आधीच माहित असल्याने तुम्ही ते टेम्पलेटमध्ये कसे अनुक्रमित करायचे आणि ते केव्हा ते परिभाषित करू शकता. तुमचा सबग्राफ कराराचा पत्ता पुरवून डायनॅमिक डेटा स्रोत तयार करेल.
डेटा स्रोत टेम्पलेट्स यावर "डेटा स्त्रोत टेम्पलेट इन्स्टंटिएटिंग करणे" विभाग पहा.
तुम्ही खालील आदेश चालवू शकता:
डॉकर पुल ग्राफप्रोटोकॉल/ग्राफ-नोड:नवीनतम
सूचना: डॉकर/डॉकर-कंपोज तुम्ही पहिल्यांदा चालवताना जी ग्राफ-नोड आवृत्ती काढली होती ती नेहमी वापरेल, त्यामुळे तुम्ही नवीनतम आवृत्तीसह अद्ययावत आहात याची खात्री करण्यासाठी हे करणे महत्त्वाचे आहे. ग्राफ-नोडचे.
9. मी माझ्या सबग्राफ मॅपिंगमधून कॉन्ट्रॅक्ट फंक्शन कसे कॉल करू किंवा सार्वजनिक स्टेट व्हेरिएबलमध्ये प्रवेश कसा करू?
वर एक नजर टाका स्मार्ट करारामध्ये प्रवेश
विभागामध्ये सांगा असेंबलीस्क्रिप्ट API.
10. दोन करारांसह graph-cli
वरून graph init
वापरून सबग्राफ सेट करणे शक्य आहे का? किंवा graph init
चालवल्यानंतर subgraph.yaml
मध्ये मी व्यक्तिचलितपणे दुसरा डेटासोर्स जोडायचा?
दुर्दैवाने, हे सध्या शक्य नाही. ग्राफ init
हा मूळ प्रारंभिक बिंदू म्हणून अभिप्रेत आहे, ज्यामधून तुम्ही व्यक्तिचलितपणे अधिक डेटा स्रोत जोडू शकता.
12. इव्हेंट हाताळताना एखाद्या घटकासाठी "स्वयंजनित" आयडी तयार करण्याचा शिफारस केलेला मार्ग कोणता आहे?
कार्यक्रमादरम्यान फक्त एकच अस्तित्व तयार केले असल्यास आणि त्यापेक्षा चांगले काही उपलब्ध नसल्यास, व्यवहार हॅश + लॉग इंडेक्स अद्वितीय असेल. तुम्ही ते बाइट्समध्ये रूपांतरित करून आणि नंतर crypto.keccak256
द्वारे पाइपिंग करून त्यांना अस्पष्ट करू शकता परंतु यामुळे ते अधिक अद्वितीय होणार नाही.
सबग्राफमध्ये, इव्हेंट नेहमी ब्लॉकमध्ये दिसण्याच्या क्रमाने संसाधित केले जातात, ते एकाधिक कॉन्ट्रॅक्टमध्ये असले किंवा नसले तरीही.
होय. तुम्ही खालील उदाहरणानुसार graph-ts
इंपोर्ट करून हे करू शकता:
import { dataSource } from '@graphprotocol/graph-ts'
dataSource.network()
dataSource.address()
होय. गोअरली ब्लॉक हँडलर, कॉल हँडलर आणि इव्हेंट हँडलर्सना सपोर्ट करते. हे लक्षात घेतले पाहिजे की इव्हेंट हँडलर इतर दोन हँडलर्सपेक्षा खूप जास्त कार्यक्षम आहेत आणि ते प्रत्येक EVM-सुसंगत नेटवर्कवर समर्थित आहेत.
असेंब्लीस्क्रिप्टमध्ये मॅपिंग लिहिल्याप्रमाणे सध्या नाही. यावर एक संभाव्य पर्यायी उपाय म्हणजे घटकांमध्ये कच्चा डेटा संग्रहित करणे आणि क्लायंटवर JS लायब्ररी आवश्यक असलेले तर्क करणे.
होय. subgraph.yaml
फाइलमध्ये dataSources.source.startBlock
डेटा स्रोत ज्या ब्लॉकमधून अनुक्रमणिका सुरू करतो त्या ब्लॉकची संख्या निर्दिष्ट करते. बर्याच प्रकरणांमध्ये, आम्ही सुचवितो की ज्या ब्लॉकमध्ये करार तयार केला गेला होता ते वापरा: ब्लॉक्स सुरू करा
18. इंडेक्सिंगची कार्यक्षमता वाढवण्यासाठी काही टिपा आहेत का? माझा सबग्राफ समक्रमित होण्यासाठी खूप वेळ घेत आहे
होय, कॉन्ट्रॅक्ट तैनात केलेल्या ब्लॉकमधून अनुक्रमणिका सुरू करण्यासाठी तुम्ही पर्यायी स्टार्ट ब्लॉक वैशिष्ट्यावर एक नजर टाकली पाहिजे: स्टार्ट ब्लॉक्स
19. सबग्राफला अनुक्रमित केलेला नवीनतम ब्लॉक क्रमांक निश्चित करण्यासाठी थेट क्वेरी करण्याचा कोणताही मार्ग आहे का?
होय! खालील आदेश वापरून पहा, "संस्था/सबग्राफनेम" च्या जागी त्याखालील संस्था प्रकाशित झाली आहे आणि तुमच्या सबग्राफचे नाव:
curl -X POST -d '{ "query": "{indexingStatusForCurrentVersion(subgraphName: \"organization/subgraphName\") { साखळी { नवीनतम ब्लॉक { hash number }}}"}' https://api.thegraph.com/ index-node/graphql
तुम्ही समर्थित नेटवर्कची सूची येथे शोधू शकता.
तुम्हाला सबग्राफ पुन्हा तैनात करावा लागेल, परंतु सबग्राफ आयडी (IPFS हॅश) बदलत नसल्यास, त्याला सुरुवातीपासून सिंक करण्याची गरज नाही.
फेडरेशन अद्याप समर्थित नाही, जरी आम्हाला भविष्यात समर्थन करायचे आहे. याक्षणी, तुम्ही क्लायंटवर किंवा प्रॉक्सी सेवेद्वारे, स्कीमा स्टिचिंग वापरू शकता.
डीफॉल्टनुसार, क्वेरी प्रतिसाद प्रति संग्रह 100 आयटमपर्यंत मर्यादित आहेत. तुम्हाला अधिक प्राप्त करायचे असल्यास, तुम्ही प्रति संग्रह 1000 आयटमपर्यंत जाऊ शकता आणि त्यापलीकडे तुम्ही यासह पृष्ठांकन करू शकता:
काही संकलन(प्रथम: 1000, वगळा: <संख्या>) { ... }
24. जर माझे dapp फ्रंटएंड क्वेरींगसाठी आलेख वापरत असेल, तर मला माझी क्वेरी की थेट फ्रंटएंडमध्ये लिहावी लागेल का? आम्ही वापरकर्त्यांसाठी क्वेरी शुल्क भरल्यास काय - दुर्भावनापूर्ण वापरकर्त्यांमुळे आमच्या क्वेरी शुल्क खूप जास्त असेल?
सध्या, dapp साठी शिफारस केलेला दृष्टीकोन म्हणजे फ्रंटएंडमध्ये की जोडणे आणि अंतिम वापरकर्त्यांसमोर ते उघड करणे. ते म्हणाले, तुम्ही ती की होस्टनावावर मर्यादित करू शकता, जसे की yourdapp.io आणि सबग्राफ. गेटवे सध्या एज द्वारे चालवले जात आहे & नोड. गेटवेच्या जबाबदारीचा एक भाग म्हणजे अपमानास्पद वर्तनासाठी निरीक्षण करणे आणि दुर्भावनापूर्ण क्लायंटकडून रहदारी अवरोधित करणे.
Head over to the hosted service in order to find subgraphs that you or others deployed to the hosted service. You can find it here.
The Graph will never charge for the hosted service. The Graph is a decentralized protocol, and charging for a centralized service is not aligned with The Graph’s values. The hosted service was always a temporary step to help get to the decentralized network. Developers will have a sufficient amount of time to upgrade to the decentralized network as they are comfortable.
If you’re a subgraph developer, you can deploy a new version of your subgraph to the Subgraph Studio using the CLI. It’ll be private at that point, but if you’re happy with it, you can publish to the decentralized Graph Explorer. This will create a new version of your subgraph that Curators can start signaling on.