इथेरियम स्टॅकची ओळख
कोणत्याही सॉफ्टवेअर स्टॅकप्रमाणे, संपूर्ण "इथेरियम स्टॅक" तुमच्या उद्दिष्टांनुसार प्रत्येक प्रोजेक्टनुसार बदलू शकतो.
असे असले तरी, इथेरियमचे काही मुख्य घटक आहेत जे सॉफ्टवेअर ॲप्लिकेशन्स इथेरियम ब्लॉकचेनशी कसा संवाद साधतात याचे एक मानसिक मॉडेल (mental model) प्रदान करण्यास मदत करतात. स्टॅकचे स्तर समजून घेतल्याने तुम्हाला सॉफ्टवेअर प्रोजेक्ट्समध्ये इथेरियम समाकलित (integrate) करण्याच्या विविध पद्धती समजण्यास मदत होईल.
स्तर 1: इथेरियम व्हर्च्युअल मशीन (Ethereum Virtual Machine)
इथेरियम व्हर्च्युअल मशीन (EVM) हे इथेरियमवरील स्मार्ट कॉन्ट्रॅक्ट्ससाठी रनटाइम वातावरण (runtime environment) आहे. इथेरियम ब्लॉकचेनवरील सर्व स्मार्ट कॉन्ट्रॅक्ट्स आणि स्थितीतील (state) बदल व्यवहारांद्वारे कार्यान्वित केले जातात. EVM इथेरियम नेटवर्कवरील सर्व व्यवहार प्रक्रियेचे व्यवस्थापन करते.
कोणत्याही व्हर्च्युअल मशीनप्रमाणे, EVM कार्यान्वित होणारा कोड आणि कार्यान्वित करणारी मशीन (एक इथेरियम नोड) यांच्यात ॲब्स्ट्रॅक्शनचा (abstraction) एक स्तर तयार करते. सध्या, EVM जगभरात वितरित केलेल्या हजारो नोड्सवर चालत आहे.
तांत्रिकदृष्ट्या (Under the hood), EVM विशिष्ट कार्ये करण्यासाठी ऑपकोड सूचनांचा संच वापरते. हे (140 अद्वितीय) ऑपकोड्स EVM ला ट्युरिंग-कंप्लीट (Turing-complete) (opens in a new tab) बनवतात, ज्याचा अर्थ असा आहे की पुरेशी संसाधने दिल्यास EVM जवळजवळ कोणत्याही गोष्टीची गणना करण्यास सक्षम आहे.
एक विकेंद्रित ॲप्लिकेशन (dapp) डेव्हलपर म्हणून, तुम्हाला EVM बद्दल जास्त माहिती असण्याची गरज नाही, फक्त ते अस्तित्वात आहे आणि ते कोणत्याही डाउनटाइमशिवाय इथेरियमवरील सर्व ॲप्लिकेशन्सना विश्वासार्हपणे चालवते हे माहीत असणे पुरेसे आहे.
स्तर 2: स्मार्ट कॉन्ट्रॅक्ट्स
स्मार्ट कॉन्ट्रॅक्ट्स हे एक्झिक्युटेबल प्रोग्राम्स आहेत जे इथेरियम ब्लॉकचेनवर चालतात.
स्मार्ट कॉन्ट्रॅक्ट्स विशिष्ट प्रोग्रामिंग भाषांचा वापर करून लिहिले जातात जे EVM बाइटकोडमध्ये (ऑपकोड्स नावाच्या लो-लेव्हल मशीन सूचना) संकलित (compile) होतात.
स्मार्ट कॉन्ट्रॅक्ट्स केवळ ओपन सोर्स लायब्ररी म्हणून काम करत नाहीत, तर ते मूलत: ओपन API सेवा आहेत ज्या नेहमी चालू असतात आणि त्यांना बंद केले जाऊ शकत नाही. स्मार्ट कॉन्ट्रॅक्ट्स सार्वजनिक फंक्शन्स प्रदान करतात ज्यांच्याशी वापरकर्ते आणि ॲप्लिकेशन्स (dapps) परवानगीशिवाय संवाद साधू शकतात. कोणतेही ॲप्लिकेशन कार्यक्षमता तयार करण्यासाठी प्रस्थापित केलेल्या (deployed) स्मार्ट कॉन्ट्रॅक्ट्सशी समाकलित होऊ शकते, जसे की डेटा फीड्स जोडणे किंवा टोकन स्वॅप्सना समर्थन देणे. याव्यतिरिक्त, त्यांच्या ॲप्लिकेशनच्या गरजा पूर्ण करण्यासाठी सानुकूल (custom) कार्यक्षमता जोडण्यासाठी कोणीही इथेरियमवर नवीन स्मार्ट कॉन्ट्रॅक्ट्स प्रस्थापित करू शकतो.
एक dapp डेव्हलपर म्हणून, जर तुम्हाला इथेरियम ब्लॉकचेनवर सानुकूल कार्यक्षमता जोडायची असेल तरच तुम्हाला स्मार्ट कॉन्ट्रॅक्ट्स लिहिण्याची आवश्यकता असेल. तुम्हाला असे आढळून येईल की तुम्ही तुमच्या प्रोजेक्टच्या बहुतांश किंवा सर्व गरजा केवळ विद्यमान स्मार्ट कॉन्ट्रॅक्ट्सशी समाकलित करून पूर्ण करू शकता, उदाहरणार्थ जर तुम्हाला स्टेबलकॉइन्समध्ये पेमेंट्सना समर्थन द्यायचे असेल किंवा टोकन्सच्या विकेंद्रित एक्सचेंजला सक्षम करायचे असेल.
स्तर 3: इथेरियम नोड्स
एखाद्या ॲप्लिकेशनला इथेरियम ब्लॉकचेनशी संवाद साधण्यासाठी, त्याने इथेरियम नोडशी कनेक्ट होणे आवश्यक आहे. नोडशी कनेक्ट केल्याने तुम्हाला ब्लॉकचेन डेटा वाचता येतो आणि/किंवा नेटवर्कवर व्यवहार पाठवता येतात.
इथेरियम नोड्स हे सॉफ्टवेअर चालवणारे संगणक आहेत - एक इथेरियम क्लायंट. क्लायंट हे इथेरियमचे एक अंमलबजावणी (implementation) आहे जे प्रत्येक ब्लॉकमधील सर्व व्यवहारांची पडताळणी करते, नेटवर्क सुरक्षित ठेवते आणि डेटा अचूक ठेवते. इथेरियम नोड्स म्हणजेच इथेरियम ब्लॉकचेन आहेत. ते एकत्रितपणे इथेरियम ब्लॉकचेनची स्थिती संग्रहित करतात आणि ब्लॉकचेनची स्थिती बदलण्यासाठी व्यवहारांवर एकमत (consensus) प्रस्थापित करतात.
तुमच्या ॲप्लिकेशनला इथेरियम नोडशी कनेक्ट करून (जेसॉन-आरपीसी API द्वारे), तुमचे ॲप्लिकेशन ब्लॉकचेनवरून डेटा वाचण्यास (जसे की वापरकर्त्याच्या खात्यातील शिल्लक) तसेच नेटवर्कवर नवीन व्यवहार प्रसारित करण्यास (जसे की वापरकर्त्यांच्या खात्यांमध्ये ETH ट्रान्सफर करणे किंवा स्मार्ट कॉन्ट्रॅक्ट्सची फंक्शन्स कार्यान्वित करणे) सक्षम होते.
स्तर 4: इथेरियम क्लायंट APIs
अनेक सोयीस्कर लायब्ररीज (इथेरियमच्या ओपन सोर्स समुदायाद्वारे तयार आणि देखरेख केलेल्या) तुमच्या ॲप्लिकेशन्सना इथेरियम ब्लॉकचेनशी कनेक्ट होण्यास आणि संवाद साधण्यास अनुमती देतात.
जर तुमचे वापरकर्त्याभिमुख (user-facing) ॲप्लिकेशन एक वेब ॲप असेल, तर तुम्ही थेट तुमच्या फ्रंटएंडमध्ये JavaScript API npm install करणे निवडू शकता. किंवा कदाचित तुम्ही Python किंवा Java API वापरून ही कार्यक्षमता सर्व्हर-साइड लागू करणे निवडाल.
जरी हे APIs स्टॅकचा आवश्यक भाग नसले तरी, ते थेट इथेरियम नोडशी संवाद साधण्याची बरीचशी गुंतागुंत दूर करतात. ते युटिलिटी फंक्शन्स देखील प्रदान करतात (उदा., ETH चे Gwei मध्ये रूपांतर करणे) जेणेकरून एक डेव्हलपर म्हणून तुम्ही इथेरियम क्लायंट्सच्या गुंतागुंती हाताळण्यात कमी वेळ घालवू शकता आणि तुमच्या ॲप्लिकेशनच्या विशिष्ट कार्यक्षमतेवर अधिक लक्ष केंद्रित करू शकता.
स्तर 5: एंड-युझर ॲप्लिकेशन्स
स्टॅकच्या सर्वोच्च स्तरावर वापरकर्त्याभिमुख ॲप्लिकेशन्स आहेत. हे असे मानक ॲप्लिकेशन्स आहेत जे तुम्ही आज नियमितपणे वापरता आणि तयार करता: प्रामुख्याने वेब आणि मोबाईल ॲप्स.
तुम्ही हे युझर इंटरफेस ज्या पद्धतीने विकसित करता ते मूलत: अपरिवर्तित राहते. अनेकदा वापरकर्त्यांना ते वापरत असलेले ॲप्लिकेशन ब्लॉकचेन वापरून तयार केले आहे हे जाणून घेण्याची आवश्यकता नसते.
तुमचा स्टॅक निवडण्यासाठी तयार आहात?
तुमच्या इथेरियम ॲप्लिकेशनसाठी लोकल डेव्हलपमेंट वातावरण सेट करण्यासाठी आमचे मार्गदर्शक तपासा.
पुढील वाचन
- वेब 3.0 ॲप्लिकेशनचे आर्किटेक्चर (opens in a new tab) - प्रीती कासिरेड्डी
तुम्हाला मदत करणाऱ्या एखाद्या कम्युनिटी रिसोर्सबद्दल माहिती आहे का? हे पेज संपादित करा आणि ते जोडा!