मुख्य सामग्री पर जाएं
Change page

इथेरियम आर्काइव नोड

एक आर्काइव नोड एक इथेरियम क्लाइंट का एक उदाहरण है जिसे सभी ऐतिहासिक स्थितियों का आर्काइव बनाने के लिए कॉन्फ़िगर किया गया है। यह कुछ उपयोग के मामलों के लिए एक उपयोगी टूल है, लेकिन इसे पूर्ण नोड की तुलना में चलाना अधिक कठिन हो सकता है।

पूर्वापेक्षाएँ

आपको एक इथेरियम नोड की अवधारणा, इसकी वास्तुकला, सिंकिंग रणनीतियों, और उन्हें चलाने तथा उपयोग करने की प्रथाओं को समझना चाहिए।

आर्काइव नोड क्या है

आर्काइव नोड के महत्व को समझने के लिए, आइए "स्थिति" की अवधारणा को स्पष्ट करें। इथेरियम को एक लेन-देन-आधारित स्थिति मशीन कहा जा सकता है। इसमें खाते और एप्लिकेशन शामिल होते हैं जो लेन-देन निष्पादित करते हैं जो उनकी स्थिति को बदल रहे हैं। प्रत्येक खाते और अनुबंध के बारे में जानकारी वाला वैश्विक डेटा स्थिति नामक एक ट्राई (trie) डेटाबेस में संग्रहीत किया जाता है। इसे निष्पादन परत (EL) क्लाइंट द्वारा नियंत्रित किया जाता है और इसमें शामिल हैं:

  • खाते के बैलेंस और नॉनस (nonces)
  • अनुबंध कोड और स्टोरेज
  • सर्वसम्मति से संबंधित डेटा, उदा., स्टेकिंग जमा अनुबंध

नेटवर्क के साथ इंटरैक्ट करने, नए ब्लॉक को सत्यापित करने और बनाने के लिए, इथेरियम क्लाइंट्स को सबसे हालिया बदलावों (चेन की टिप) और इसलिए वर्तमान स्थिति के साथ अपडेट रहना पड़ता है। पूर्ण नोड के रूप में कॉन्फ़िगर किया गया एक निष्पादन परत क्लाइंट नेटवर्क की नवीनतम स्थिति को सत्यापित करता है और उसका पालन करता है, लेकिन केवल पिछली कुछ स्थितियों को कैश करता है, उदा., पिछले 128 ब्लॉक से जुड़ी स्थिति, ताकि यह चेन रीऑर्ग (reorgs) को संभाल सके और हाल के डेटा तक तेज़ पहुँच प्रदान कर सके। हाल की स्थिति वह है जिसकी सभी क्लाइंट्स को आने वाले लेन-देन को सत्यापित करने और नेटवर्क का उपयोग करने के लिए आवश्यकता होती है।

आप स्थिति की कल्पना किसी दिए गए ब्लॉक पर एक क्षणिक नेटवर्क Snapshot के रूप में और आर्काइव की कल्पना एक इतिहास रीप्ले के रूप में कर सकते हैं।

ऐतिहासिक स्थितियों को सुरक्षित रूप से प्रून (prune) किया जा सकता है क्योंकि वे नेटवर्क के संचालन के लिए आवश्यक नहीं हैं और क्लाइंट के लिए सभी पुराने डेटा को रखना व्यर्थ रूप से अनावश्यक होगा। कुछ हालिया ब्लॉक (उदा., हेड से 128 ब्लॉक पहले) से पहले मौजूद स्थितियों को प्रभावी ढंग से हटा दिया जाता है। पूर्ण नोड केवल ऐतिहासिक ब्लॉकचेन डेटा (ब्लॉक और लेन-देन) और कभी-कभार ऐतिहासिक Snapshot रखते हैं जिनका उपयोग वे अनुरोध पर पुरानी स्थितियों को फिर से उत्पन्न करने के लिए कर सकते हैं। वे EVM में पिछले लेन-देन को फिर से निष्पादित करके ऐसा करते हैं, जो कम्प्यूटेशनल रूप से मांग वाला हो सकता है जब वांछित स्थिति निकटतम Snapshot से बहुत दूर हो।

हालाँकि, इसका मतलब है कि पूर्ण नोड पर ऐतिहासिक स्थिति तक पहुँचने में बहुत अधिक कंप्यूटेशन की खपत होती है। क्लाइंट को सभी पिछले लेन-देन को निष्पादित करने और जेनेसिस से एक ऐतिहासिक स्थिति की गणना करने की आवश्यकता हो सकती है। आर्काइव नोड्स न केवल सबसे हाल की स्थितियों को बल्कि प्रत्येक ब्लॉक के बाद बनाई गई हर ऐतिहासिक स्थिति को संग्रहीत करके इसे हल करते हैं। यह मूल रूप से बड़ी डिस्क स्पेस आवश्यकता के साथ एक ट्रेड-ऑफ़ करता है।

यह ध्यान रखना महत्वपूर्ण है कि नेटवर्क सभी ऐतिहासिक डेटा को रखने और प्रदान करने के लिए आर्काइव नोड्स पर निर्भर नहीं करता है। जैसा कि ऊपर उल्लेख किया गया है, सभी ऐतिहासिक अंतरिम स्थितियों को पूर्ण नोड पर प्राप्त किया जा सकता है। लेन-देन किसी भी पूर्ण नोड (वर्तमान में 400G से कम) द्वारा संग्रहीत किए जाते हैं और पूरे आर्काइव को बनाने के लिए उन्हें फिर से चलाया जा सकता है।

उपयोग के मामले

इथेरियम के नियमित उपयोग जैसे लेन-देन भेजना, अनुबंध तैनात करना, सर्वसम्मति सत्यापित करना आदि के लिए ऐतिहासिक स्थितियों तक पहुँच की आवश्यकता नहीं होती है। उपयोगकर्ताओं को नेटवर्क के साथ मानक इंटरैक्शन के लिए कभी भी आर्काइव नोड की आवश्यकता नहीं होती है।

स्थिति आर्काइव का मुख्य लाभ ऐतिहासिक स्थितियों के बारे में प्रश्नों तक त्वरित पहुँच है। उदाहरण के लिए, आर्काइव नोड तुरंत इस तरह के परिणाम लौटाएगा:

  • ब्लॉक 15537393 पर खाते 0x1337... का ETH बैलेंस क्या था?
  • ब्लॉक 1920000 पर अनुबंध 0x में टोकन 0x का बैलेंस क्या है?

जैसा कि ऊपर बताया गया है, एक पूर्ण नोड को EVM निष्पादन द्वारा यह डेटा उत्पन्न करने की आवश्यकता होगी जो CPU का उपयोग करता है और इसमें समय लगता है। आर्काइव नोड्स डिस्क पर उन तक पहुँचते हैं और तुरंत प्रतिक्रिया देते हैं। यह बुनियादी ढाँचे के कुछ हिस्सों के लिए एक उपयोगी विशेषता है, उदाहरण के लिए:

  • ब्लॉक एक्सप्लोरर जैसे सेवा प्रदाता
  • शोधकर्ता
  • सुरक्षा विश्लेषक
  • विकेंद्रीकृत एप्लिकेशन (dapp) डेवलपर्स
  • ऑडिटिंग और अनुपालन

विभिन्न मुफ्त सेवाएँ हैं जो ऐतिहासिक डेटा तक पहुँच की भी अनुमति देती हैं। चूँकि आर्काइव नोड चलाना अधिक मांग वाला है, यह पहुँच ज्यादातर सीमित है और केवल कभी-कभार पहुँच के लिए काम करती है। यदि आपके प्रोजेक्ट को ऐतिहासिक डेटा तक निरंतर पहुँच की आवश्यकता है, तो आपको स्वयं एक चलाने पर विचार करना चाहिए।

कार्यान्वयन और उपयोग

इस संदर्भ में आर्काइव नोड का अर्थ है उपयोगकर्ता का सामना करने वाले निष्पादन परत क्लाइंट्स द्वारा परोसा गया डेटा क्योंकि वे स्थिति डेटाबेस को संभालते हैं और जेसन-आरपीसी एंडपॉइंट प्रदान करते हैं। कॉन्फ़िगरेशन विकल्प, सिंकिंग समय और डेटाबेस का आकार क्लाइंट के अनुसार भिन्न हो सकता है। विवरण के लिए, कृपया अपने क्लाइंट द्वारा प्रदान किए गए दस्तावेज़ देखें।

अपना खुद का आर्काइव नोड शुरू करने से पहले, क्लाइंट्स के बीच के अंतर और विशेष रूप से विभिन्न हार्डवेयर आवश्यकताओं के बारे में जानें। अधिकांश क्लाइंट इस सुविधा के लिए अनुकूलित नहीं हैं और उनके आर्काइव के लिए 12TB से अधिक स्थान की आवश्यकता होती है। इसके विपरीत, एरिगोन जैसे कार्यान्वयन उसी डेटा को 3TB से कम में संग्रहीत कर सकते हैं जो उन्हें आर्काइव नोड चलाने का सबसे प्रभावी तरीका बनाता है।

नोड चलाने के लिए सामान्य अनुशंसाओं के अलावा, एक आर्काइव नोड हार्डवेयर और रखरखाव पर अधिक मांग वाला हो सकता है। एरिगोन की प्रमुख विशेषताओं (opens in a new tab) को ध्यान में रखते हुए, सबसे व्यावहारिक दृष्टिकोण एरिगोन क्लाइंट कार्यान्वयन का उपयोग करना है।

हार्डवेयर

हमेशा क्लाइंट के दस्तावेज़ में किसी दिए गए मोड के लिए हार्डवेयर आवश्यकताओं को सत्यापित करना सुनिश्चित करें। आर्काइव नोड्स के लिए सबसे बड़ी आवश्यकता डिस्क स्पेस है। क्लाइंट के आधार पर, यह 3TB से 12TB तक भिन्न होता है। भले ही बड़ी मात्रा में डेटा के लिए HDD को एक बेहतर समाधान माना जा सकता है, इसे सिंकिंग करने और चेन के हेड को लगातार अपडेट करने के लिए SSD ड्राइव की आवश्यकता होगी। SATA (opens in a new tab) ड्राइव काफी अच्छे हैं लेकिन यह एक विश्वसनीय गुणवत्ता का होना चाहिए, कम से कम TLC (opens in a new tab)। डिस्क को डेस्कटॉप कंप्यूटर या पर्याप्त स्लॉट वाले सर्वर में फिट किया जा सकता है। ऐसे समर्पित उपकरण उच्च अपटाइम नोड चलाने के लिए आदर्श हैं। इसे लैपटॉप पर चलाना पूरी तरह से संभव है लेकिन पोर्टेबिलिटी अतिरिक्त लागत पर आएगी।

सभी डेटा को एक वॉल्यूम में फिट होने की आवश्यकता है, इसलिए डिस्क को जोड़ा जाना चाहिए, उदा., RAID0 (opens in a new tab) या LVM के साथ। ZFS (opens in a new tab) का उपयोग करने पर विचार करना भी उचित हो सकता है क्योंकि यह "कॉपी-ऑन-राइट" (Copy-on-write) का समर्थन करता है जो यह सुनिश्चित करता है कि डेटा बिना किसी निम्न स्तर की त्रुटियों के डिस्क पर सही ढंग से लिखा गया है।

आकस्मिक डेटाबेस भ्रष्टाचार को रोकने में अधिक स्थिरता और सुरक्षा के लिए, विशेष रूप से एक पेशेवर सेटअप में, यदि आपका सिस्टम इसका समर्थन करता है तो ECC मेमोरी (opens in a new tab) का उपयोग करने पर विचार करें। RAM का आकार आम तौर पर पूर्ण नोड के समान होने की सलाह दी जाती है लेकिन अधिक RAM सिंकिंग को गति देने में मदद कर सकती है।

प्रारंभिक सिंकिंग के दौरान, आर्काइव मोड में क्लाइंट जेनेसिस से हर लेन-देन को निष्पादित करेंगे। निष्पादन की गति ज्यादातर CPU द्वारा सीमित होती है, इसलिए एक तेज़ CPU प्रारंभिक सिंकिंग समय में मदद कर सकता है। एक औसत उपभोक्ता कंप्यूटर पर, प्रारंभिक सिंकिंग में एक महीने तक का समय लग सकता है।

आगे की पढ़ाई