नोड आर्किटेक्चर
एक इथेरियम नोड दो क्लाइंट्स से बना होता है: एक निष्पादन क्लाइंट और एक सर्वसम्मति क्लाइंट। किसी नोड को नया ब्लॉक प्रस्तावित करने के लिए, उसे एक सत्यापक क्लाइंट भी चलाना चाहिए।
जब इथेरियम प्रूफ-ऑफ-वर्क (PoW) का उपयोग कर रहा था, तब एक पूर्ण इथेरियम नोड चलाने के लिए एक निष्पादन क्लाइंट पर्याप्त था। हालाँकि, प्रूफ-ऑफ़-स्टेक (PoS) लागू करने के बाद से, निष्पादन क्लाइंट का उपयोग एक अन्य सॉफ़्टवेयर के साथ किया जाना चाहिए जिसे सर्वसम्मति क्लाइंट कहा जाता है।
नीचे दिया गया आरेख दो इथेरियम क्लाइंट्स के बीच संबंध को दर्शाता है। दोनों क्लाइंट अपने संबंधित पीयर-टू-पीयर (P2P) नेटवर्क से जुड़ते हैं। अलग-अलग P2P नेटवर्क की आवश्यकता होती है क्योंकि निष्पादन क्लाइंट अपने P2P नेटवर्क पर लेन-देन गॉसिप (gossip) करते हैं, जिससे वे अपने स्थानीय लेन-देन पूल का प्रबंधन कर पाते हैं, जबकि सर्वसम्मति क्लाइंट अपने P2P नेटवर्क पर ब्लॉक गॉसिप करते हैं, जिससे सर्वसम्मति और चेन के विकास को सक्षम किया जा सके।
निष्पादन क्लाइंट के लिए कई विकल्प हैं जिनमें एरिगोन (Erigon), नेदरमाइंड (Nethermind), और बेसू (Besu) शामिल हैं।
इस दो-क्लाइंट संरचना के काम करने के लिए, सर्वसम्मति क्लाइंट्स को लेन-देन के बंडल निष्पादन क्लाइंट को पास करने होंगे। निष्पादन क्लाइंट यह सत्यापित करने के लिए स्थानीय रूप से लेन-देन निष्पादित करता है कि लेन-देन किसी भी इथेरियम नियमों का उल्लंघन नहीं करते हैं और इथेरियम की स्थिति में प्रस्तावित अपडेट सही है। जब किसी नोड को ब्लॉक निर्माता के रूप में चुना जाता है, तो उसका सर्वसम्मति क्लाइंट इंस्टेंस नए ब्लॉक में शामिल करने के लिए निष्पादन क्लाइंट से लेन-देन के बंडल का अनुरोध करता है और वैश्विक स्थिति को अपडेट करने के लिए उन्हें निष्पादित करता है। सर्वसम्मति क्लाइंट Engine API (opens in a new tab) का उपयोग करके स्थानीय RPC कनेक्शन के माध्यम से निष्पादन क्लाइंट को संचालित करता है।
निष्पादन क्लाइंट क्या करता है?
निष्पादन क्लाइंट लेन-देन सत्यापन, हैंडलिंग और गॉसिप के साथ-साथ स्थिति प्रबंधन और इथेरियम वर्चुअल मशीन (EVM) का समर्थन करने के लिए जिम्मेदार है। यह ब्लॉक निर्माण, ब्लॉक गॉसिप या सर्वसम्मति लॉजिक को संभालने के लिए जिम्मेदार नहीं है। ये सर्वसम्मति क्लाइंट के अधिकार क्षेत्र में आते हैं।
निष्पादन क्लाइंट निष्पादन पेलोड बनाता है - लेन-देन की सूची, अपडेटेड स्टेट ट्राई, और अन्य निष्पादन-संबंधित डेटा। सर्वसम्मति क्लाइंट हर ब्लॉक में निष्पादन पेलोड को शामिल करते हैं। निष्पादन क्लाइंट नए ब्लॉकों में लेन-देन को फिर से निष्पादित करने के लिए भी जिम्मेदार है ताकि यह सुनिश्चित हो सके कि वे मान्य हैं। लेन-देन का निष्पादन निष्पादन क्लाइंट के एम्बेडेड कंप्यूटर पर किया जाता है, जिसे इथेरियम वर्चुअल मशीन (EVM) के रूप में जाना जाता है।
निष्पादन क्लाइंट RPC विधियों के माध्यम से इथेरियम को एक यूजर इंटरफ़ेस भी प्रदान करता है जो उपयोगकर्ताओं को इथेरियम ब्लॉकचेन को क्वेरी करने, लेन-देन सबमिट करने और स्मार्ट कॉन्ट्रैक्ट तैनात करने में सक्षम बनाता है। RPC कॉल को Web3js (opens in a new tab), Web3py (opens in a new tab) जैसी लाइब्रेरी या ब्राउज़र वॉलेट जैसे यूजर-इंटरफ़ेस द्वारा संभाला जाना आम बात है।
संक्षेप में, निष्पादन क्लाइंट है:
- इथेरियम के लिए एक उपयोगकर्ता गेटवे
- इथेरियम वर्चुअल मशीन, इथेरियम की स्थिति और लेन-देन पूल का घर।
सर्वसम्मति क्लाइंट क्या करता है?
सर्वसम्मति क्लाइंट उन सभी लॉजिक से संबंधित है जो एक नोड को इथेरियम नेटवर्क के साथ सिंकिंग में रहने में सक्षम बनाता है। इसमें पीयर्स से ब्लॉक प्राप्त करना और एक फोर्क चयन एल्गोरिथ्म चलाना शामिल है ताकि यह सुनिश्चित किया जा सके कि नोड हमेशा सत्यापनकर्ताओं (सत्यापक प्रभावी शेष राशि द्वारा भारित) के सबसे बड़े संचय वाली चेन का अनुसरण करता है। निष्पादन क्लाइंट के समान, सर्वसम्मति क्लाइंट्स का अपना P2P नेटवर्क होता है जिसके माध्यम से वे ब्लॉक और सत्यापन (attestations) साझा करते हैं।
सर्वसम्मति क्लाइंट ब्लॉक को सत्यापित करने या प्रस्तावित करने में भाग नहीं लेता है - यह एक सत्यापक द्वारा किया जाता है, जो सर्वसम्मति क्लाइंट के लिए एक वैकल्पिक ऐड-ऑन है। सत्यापक के बिना एक सर्वसम्मति क्लाइंट केवल चेन के शीर्ष (head) के साथ अद्यतित रहता है, जिससे नोड सिंक रहता है। यह उपयोगकर्ता को अपने निष्पादन क्लाइंट का उपयोग करके इथेरियम के साथ लेन-देन करने में सक्षम बनाता है, इस विश्वास के साथ कि वे सही चेन पर हैं।
सत्यापक
स्टेकिंग और सत्यापक सॉफ़्टवेयर चलाने से एक नोड नया ब्लॉक प्रस्तावित करने के लिए चुने जाने के योग्य हो जाता है। नोड ऑपरेटर जमा अनुबंध में 32 ETH जमा करके अपने सर्वसम्मति क्लाइंट्स में एक सत्यापक जोड़ सकते हैं। सत्यापक क्लाइंट सर्वसम्मति क्लाइंट के साथ बंडल में आता है और इसे किसी भी समय नोड में जोड़ा जा सकता है। सत्यापक सत्यापन (attestations) और ब्लॉक प्रस्तावों को संभालता है। यह एक नोड को पुरस्कार अर्जित करने या दंड या कटौती के माध्यम से ETH खोने में भी सक्षम बनाता है।
स्टेकिंग के बारे में अधिक जानकारी।
नोड के घटकों की तुलना
| निष्पादन क्लाइंट | सर्वसम्मति क्लाइंट | सत्यापक |
|---|---|---|
| अपने P2P नेटवर्क पर लेन-देन गॉसिप करता है | अपने P2P नेटवर्क पर ब्लॉक और सत्यापन गॉसिप करता है | ब्लॉक प्रस्तावित करता है |
| लेन-देन निष्पादित/पुनः निष्पादित करता है | फोर्क चयन एल्गोरिथ्म चलाता है | पुरस्कार/दंड अर्जित करता है |
| आने वाले स्थिति परिवर्तनों को सत्यापित करता है | चेन के शीर्ष (head) पर नज़र रखता है | सत्यापन (attestations) करता है |
| स्थिति और रसीद ट्राई का प्रबंधन करता है | बीकन स्थिति का प्रबंधन करता है (सर्वसम्मति और निष्पादन जानकारी शामिल है) | 32 ETH स्टेक करने की आवश्यकता है |
| निष्पादन पेलोड बनाता है | RANDAO में संचित यादृच्छिकता पर नज़र रखता है (एक एल्गोरिथ्म जो सत्यापक चयन और अन्य सर्वसम्मति संचालन के लिए सत्यापन योग्य यादृच्छिकता प्रदान करता है) | कटौती की जा सकती है |
| इथेरियम के साथ बातचीत करने के लिए जेसन-आरपीसी API को उजागर करता है | औचित्य (justification) और अंतिमीकरण (finalization) पर नज़र रखता है |
