स्टेटलेसनेस, स्टेट एक्सपायरी आणि हिस्ट्री एक्सपायरी
खऱ्या विकेंद्रीकरणासाठी Ethereum नोड्स सामान्य हार्डवेअरवर चालवण्याची क्षमता असणे महत्त्वाचे आहे. याचे कारण असे की नोड चालवल्याने वापरकर्त्यांना डेटा पुरवण्यासाठी तृतीय पक्षावर विश्वास ठेवण्याऐवजी स्वतंत्रपणे क्रिप्टोग्राफिक तपासणी करून माहिती सत्यापित करण्याची क्षमता मिळते. नोड चालवल्याने वापरकर्त्यांना मध्यस्थावर विश्वास ठेवण्याऐवजी थेट Ethereum पीअर-टू-पीअर नेटवर्कवर व्यवहार सबमिट करण्याची परवानगी मिळते. जर हे फायदे केवळ महागडे हार्डवेअर असलेल्या वापरकर्त्यांसाठीच उपलब्ध असतील तर विकेंद्रीकरण शक्य नाही. त्याऐवजी, नोड्स अत्यंत सामान्य प्रोसेसिंग आणि मेमरी आवश्यकतांसह चालण्यास सक्षम असावेत जेणेकरून ते मोबाईल फोन, मायक्रो-कॉम्प्युटर किंवा होम कॉम्प्युटरवर सहजपणे चालवता येतील.
आज, नोड्सच्या सार्वत्रिक वापरास अडथळा आणणारी मुख्य गोष्ट म्हणजे उच्च डिस्क स्पेसची आवश्यकता. हे प्रामुख्याने Ethereum च्या स्टेट डेटाचे मोठे भाग संग्रहित करण्याच्या गरजेमुळे आहे. या स्टेट डेटामध्ये नवीन ब्लॉक्स आणि व्यवहारांवर योग्यरित्या प्रक्रिया करण्यासाठी आवश्यक असलेली महत्त्वाची माहिती असते. हे लिहिताना, संपूर्ण Ethereum नोड चालवण्यासाठी 2TB SSD ची शिफारस केली जाते. जुन्या डेटाची छाटणी न करणाऱ्या नोडसाठी, स्टोरेजची आवश्यकता दर आठवड्याला सुमारे 14GB ने वाढते, आणि जेनेसिसपासून सर्व डेटा संग्रहित करणारे अर्काइव्ह नोड्स 12 TB च्या जवळ पोहोचत आहेत (हे लिहिताना, फेब्रुवारी 2023 मध्ये).
जुना डेटा संग्रहित करण्यासाठी स्वस्त हार्ड ड्राइव्ह वापरल्या जाऊ शकतात परंतु येणाऱ्या ब्लॉक्सच्या बरोबरीने चालण्यासाठी त्या खूपच धीम्या आहेत. क्लायंटसाठी सध्याचे स्टोरेज मॉडेल कायम ठेवून डेटा स्वस्त आणि संग्रहित करण्यास सोपे करणे ही समस्येवरील केवळ तात्पुरती आणि आंशिक उपाययोजना आहे कारण Ethereum ची स्टेट वाढ 'अमर्याद' आहे, याचा अर्थ स्टोरेज आवश्यकता केवळ वाढू शकतात आणि तांत्रिक सुधारणांना सततच्या स्टेट वाढीशी जुळवून घ्यावे लागेल. त्याऐवजी, क्लायंटने स्थानिक डेटाबेसमधून डेटा पाहण्यावर अवलंबून नसलेले ब्लॉक्स आणि व्यवहार सत्यापित करण्याचे नवीन मार्ग शोधले पाहिजेत.
नोड्ससाठी स्टोरेज कमी करणे
प्रत्येक नोडला संग्रहित कराव्या लागणाऱ्या डेटाचे प्रमाण कमी करण्याचे अनेक मार्ग आहेत, प्रत्येकासाठी Ethereum च्या कोअर प्रोटोकॉलला वेगवेगळ्या प्रमाणात अपडेट करण्याची आवश्यकता आहे:
- हिस्ट्री एक्सपायरी: नोड्सना X ब्लॉक्सपेक्षा जुना स्टेट डेटा टाकून देण्यास सक्षम करणे, परंतु Ethereum क्लायंट स्टेट डेटा कसे हाताळतात यात बदल करत नाही.
- स्टेट एक्सपायरी: वारंवार वापरला न जाणारा स्टेट डेटा निष्क्रिय होऊ देणे. निष्क्रिय डेटा क्लायंटद्वारे पुनरुज्जीवित होईपर्यंत दुर्लक्षित केला जाऊ शकतो.
- वीक स्टेटलेसनेस: केवळ ब्लॉक प्रोड्युसर्सना पूर्ण स्टेट डेटामध्ये प्रवेशाची आवश्यकता असते, इतर नोड्स स्थानिक स्टेट डेटाबेसशिवाय ब्लॉक्स सत्यापित करू शकतात.
- स्ट्राँग स्टेटलेसनेस: कोणत्याही नोडला पूर्ण स्टेट डेटामध्ये प्रवेशाची आवश्यकता नाही.
डेटा एक्सपायरी
हिस्ट्री एक्सपायरी
हिस्ट्री एक्सपायरी म्हणजे क्लायंट जुना डेटा काढून टाकतात ज्याची त्यांना गरज भासण्याची शक्यता नसते, जेणेकरून ते फक्त थोड्या प्रमाणात ऐतिहासिक डेटा संग्रहित करतात आणि नवीन डेटा आल्यावर जुना डेटा काढून टाकतात. क्लायंटना ऐतिहासिक डेटाची आवश्यकता असण्याची दोन कारणे आहेत: सिंकिंग आणि डेटा विनंत्या पूर्ण करणे. मूळतः, क्लायंटना जेनेसिस ब्लॉकपासून सिंक करावे लागत होते, प्रत्येक पुढचा ब्लॉक साखळीच्या टोकापर्यंत योग्य असल्याची खात्री करून. आज, क्लायंट साखळीच्या टोकापर्यंत पोहोचण्यासाठी "वीक सब्जेक्टिव्हिटी चेकपॉइंट्स" वापरतात. हे चेकपॉइंट्स विश्वसनीय सुरुवातीचे बिंदू आहेत, जसे की Ethereum च्या अगदी सुरुवातीऐवजी वर्तमानाच्या जवळ एक जेनेसिस ब्लॉक असणे. याचा अर्थ क्लायंट साखळीच्या टोकापर्यंत सिंक करण्याची क्षमता न गमावता सर्वात अलीकडील वीक सब्जेक्टिव्हिटी चेकपॉइंटपूर्वीची सर्व माहिती काढून टाकू शकतात. सध्या क्लायंट त्यांच्या स्थानिक डेटाबेसमधून ऐतिहासिक डेटा घेऊन विनंत्या (JSON-RPC द्वारे येणाऱ्या) पूर्ण करतात. तथापि, हिस्ट्री एक्सपायरीमुळे, विनंती केलेला डेटा काढून टाकला गेला असल्यास हे शक्य होणार नाही. हा ऐतिहासिक डेटा देण्यासाठी काही नाविन्यपूर्ण उपायांची आवश्यकता आहे.
एक पर्याय म्हणजे क्लायंटने पोर्टल नेटवर्कसारख्या उपायाचा वापर करून पीअर्सकडून ऐतिहासिक डेटाची विनंती करणे. पोर्टल नेटवर्क हे ऐतिहासिक डेटा देण्यासाठी एक विकसनशील पीअर-टू-पीअर नेटवर्क आहे, जिथे प्रत्येक नोड Ethereum च्या इतिहासाचा एक छोटासा भाग संग्रहित करतो जेणेकरून संपूर्ण इतिहास नेटवर्कवर वितरित स्वरूपात अस्तित्वात राहील. संबंधित डेटा संग्रहित करणाऱ्या पीअर्सना शोधून आणि त्यांच्याकडून त्याची विनंती करून विनंत्या पूर्ण केल्या जातात. वैकल्पिकरित्या, साधारणपणे ॲप्सना ऐतिहासिक डेटामध्ये प्रवेशाची आवश्यकता असल्याने, तो संग्रहित करण्याची जबाबदारी त्यांची होऊ शकते. Ethereum स्पेसमध्ये पुरेसे परोपकारी घटक असू शकतात जे ऐतिहासिक अर्काइव्ह राखण्यास इच्छुक असतील. ऐतिहासिक डेटा स्टोरेज व्यवस्थापित करण्यासाठी एक DAO तयार होऊ शकतो, किंवा आदर्शपणे हे सर्व पर्यायांचे मिश्रण असेल. हे प्रदाते अनेक मार्गांनी डेटा देऊ शकतात, जसे की टॉरेंट, FTP, Filecoin किंवा IPFS वर.
हिस्ट्री एक्सपायरी काहीशी वादग्रस्त आहे कारण आतापर्यंत Ethereum ने नेहमीच कोणत्याही ऐतिहासिक डेटाच्या उपलब्धतेची अप्रत्यक्ष हमी दिली आहे. जेनेसिसपासून पूर्ण सिंक करणे नेहमीच मानक म्हणून शक्य झाले आहे, जरी ते स्नॅपशॉटमधून काही जुना डेटा पुन्हा तयार करण्यावर अवलंबून असले तरी. हिस्ट्री एक्सपायरी ही हमी देण्याची जबाबदारी Ethereum कोअर प्रोटोकॉलच्या बाहेर हलवते. जर केंद्रीकृत संस्था ऐतिहासिक डेटा प्रदान करण्यासाठी पुढे आल्या तर यामुळे नवीन सेन्सॉरशिपचे धोके निर्माण होऊ शकतात.
EIP-4444 अद्याप सादर करण्यासाठी तयार नाही, परंतु त्यावर सक्रिय चर्चा सुरू आहे. विशेष म्हणजे, EIP-4444 मधील आव्हाने तांत्रिक नसून बहुतेक समुदाय व्यवस्थापनाची आहेत. हे सादर करण्यासाठी, समुदायाची स्वीकृती आवश्यक आहे ज्यात केवळ सहमतीच नाही तर विश्वासार्ह घटकांकडून ऐतिहासिक डेटा संग्रहित करण्याची आणि देण्याची वचनबद्धता देखील समाविष्ट आहे.
हे अपग्रेड Ethereum नोड्स स्टेट डेटा कसे हाताळतात हे मूलतः बदलत नाही, ते फक्त ऐतिहासिक डेटामध्ये कसा प्रवेश केला जातो हे बदलते.
स्टेट एक्सपायरी
स्टेट एक्सपायरी म्हणजे अलीकडे ॲक्सेस न केल्यास वैयक्तिक नोड्समधून स्टेट काढून टाकणे. हे लागू करण्याचे अनेक मार्ग आहेत, ज्यात खालील गोष्टींचा समावेश आहे:
- भाड्याने एक्सपायर करणे: अकाउंट्सना "भाडे" आकारणे आणि त्यांचे भाडे शून्यावर पोहोचल्यावर त्यांना एक्सपायर करणे
- वेळेनुसार एक्सपायर करणे: काही काळासाठी त्या अकाउंटवर वाचन/लेखन न झाल्यास अकाउंट्स निष्क्रिय करणे
भाड्याने एक्सपायर करणे म्हणजे अकाउंट्सना सक्रिय स्टेट डेटाबेसमध्ये ठेवण्यासाठी थेट भाडे आकारले जाऊ शकते. वेळेनुसार एक्सपायर करणे शेवटच्या अकाउंट इंटरॅक्शनपासून काउंटडाउनद्वारे असू शकते किंवा ते सर्व अकाउंट्सचे नियमित एक्सपायरी असू शकते. अशा यंत्रणा देखील असू शकतात ज्या वेळ आणि भाडे-आधारित मॉडेल्सचे दोन्ही घटक एकत्र करतात, उदाहरणार्थ, वेळेनुसार एक्सपायरी होण्यापूर्वी काही लहान शुल्क भरल्यास वैयक्तिक अकाउंट्स सक्रिय स्टेटमध्ये टिकून राहतात. स्टेट एक्सपायरीमध्ये हे लक्षात घेणे महत्त्वाचे आहे की निष्क्रिय स्टेट हटवला जात नाही, तो फक्त सक्रिय स्टेटपासून वेगळा संग्रहित केला जातो. निष्क्रिय स्टेटला सक्रिय स्टेटमध्ये पुनरुज्जीवित केले जाऊ शकते.
हे कसे कार्य करेल याचा मार्ग कदाचित विशिष्ट कालावधीसाठी (सुमारे ~1 वर्ष) स्टेट ट्री असणे हा आहे. जेव्हाही नवीन कालावधी सुरू होतो, तेव्हा पूर्णपणे नवीन स्टेट ट्री देखील सुरू होते. केवळ सध्याच्या स्टेट ट्रीमध्ये बदल केला जाऊ शकतो, बाकी सर्व अपरिवर्तनीय आहेत. Ethereum नोड्सकडून केवळ सध्याची स्टेट ट्री आणि त्यानंतरची सर्वात अलीकडील स्टेट ट्री धारण करण्याची अपेक्षा आहे. यासाठी अॅड्रेसला तो अस्तित्वात असलेल्या कालावधीसह टाइम-स्टॅम्प करण्याचा मार्ग आवश्यक आहे. हे करण्याचे अनेक संभाव्य मार्ग (opens in a new tab) आहेत, परंतु आघाडीच्या पर्यायासाठी अतिरिक्त माहिती सामावून घेण्यासाठी अॅड्रेस लांब करणे (opens in a new tab) आवश्यक आहे, याचा अतिरिक्त फायदा म्हणजे लांब अॅड्रेस खूपच अधिक सुरक्षित असतात. हे करणार्या रोडमॅप आयटमला अॅड्रेस स्पेस एक्सटेन्शन (opens in a new tab) म्हणतात.
हिस्ट्री एक्सपायरीप्रमाणेच, स्टेट एक्सपायरीअंतर्गत जुना स्टेट डेटा संग्रहित करण्याची जबाबदारी वैयक्तिक वापरकर्त्यांकडून काढून घेतली जाते आणि केंद्रीकृत प्रदाते, परोपकारी समुदाय सदस्य किंवा पोर्टल नेटवर्कसारख्या अधिक भविष्यवेधी विकेंद्रित उपायांसारख्या इतर घटकांवर ढकलली जाते.
स्टेट एक्सपायरी अद्याप संशोधन टप्प्यात आहे आणि सादर करण्यासाठी तयार नाही. स्टेट एक्सपायरी कदाचित स्टेटलेस क्लायंट आणि हिस्ट्री एक्सपायरीनंतर होऊ शकते कारण ते अपग्रेड मोठ्या स्टेट साईझला बहुसंख्य व्हॅलिडेटर्ससाठी सहज व्यवस्थापित करण्यायोग्य बनवतात.
स्टेटलेसनेस
स्टेटलेसनेस हे नाव थोडे चुकीचे आहे कारण याचा अर्थ "स्टेट" ची संकल्पना काढून टाकली जात आहे असा होत नाही, परंतु त्यात Ethereum नोड्स स्टेट डेटा कसे हाताळतात यात बदल समाविष्ट आहेत. स्टेटलेसनेस स्वतः दोन प्रकारांमध्ये येते: वीक स्टेटलेसनेस आणि स्ट्राँग स्टेटलेसनेस. वीक स्टेटलेसनेस बहुतेक नोड्सना स्टेटलेस होण्यास सक्षम करते, स्टेट स्टोरेजची जबाबदारी काही जणांवर टाकून. स्ट्राँग स्टेटलेसनेस कोणत्याही नोडला पूर्ण स्टेट डेटा संग्रहित करण्याची गरज पूर्णपणे काढून टाकते. वीक आणि स्ट्राँग स्टेटलेसनेस दोन्ही सामान्य व्हॅलिडेटर्सना खालील फायदे देतात:
- जवळजवळ त्वरित सिंकिंग
- ब्लॉक्सना क्रमाने प्रमाणित करण्याची क्षमता
- खूप कमी हार्डवेअर आवश्यकतांसह (उदा. फोनवर) चालण्यास सक्षम नोड्स
- नोड्स स्वस्त हार्ड ड्राइव्हवर चालवू शकतात कारण डिस्क वाचन/लेखन आवश्यक नसते
- Ethereum च्या क्रिप्टोग्राफीमधील भविष्यातील अपग्रेडशी सुसंगत
वीक स्टेटलेसनेस
वीक स्टेटलेसनेसमध्ये Ethereum नोड्स स्टेट बदलांची पडताळणी करण्याच्या पद्धतीत बदल समाविष्ट आहेत, परंतु ते नेटवर्कवरील सर्व नोड्समधील स्टेट स्टोरेजची गरज पूर्णपणे काढून टाकत नाही. त्याऐवजी, वीक स्टेटलेसनेस स्टेट स्टोरेजची जबाबदारी ब्लॉक प्रस्तावकांवर टाकते, तर नेटवर्कवरील इतर सर्व नोड्स पूर्ण स्टेट डेटा संग्रहित न करता ब्लॉक्सची पडताळणी करतात.
वीक स्टेटलेसनेसमध्ये ब्लॉक्स प्रस्तावित करण्यासाठी पूर्ण स्टेट डेटामध्ये प्रवेशाची आवश्यकता असते परंतु ब्लॉक्सची पडताळणी करण्यासाठी कोणत्याही स्टेट डेटाची आवश्यकता नसते
हे होण्यासाठी, Verkle trees Ethereum क्लायंटमध्ये आधीच लागू केलेले असणे आवश्यक आहे. Verkle trees ही Ethereum स्टेट डेटा संग्रहित करण्यासाठी एक बदली डेटा स्ट्रक्चर आहे जी डेटासाठी लहान, निश्चित आकाराचे "साक्षीदार" पीअर्स दरम्यान पास करण्याची आणि स्थानिक डेटाबेसच्या विरुद्ध ब्लॉक्सची पडताळणी करण्याऐवजी ब्लॉक्सची पडताळणी करण्यासाठी वापरण्याची परवानगी देते. प्रस्तावक-बिल्डर सेपरेशन देखील आवश्यक आहे कारण यामुळे ब्लॉक बिल्डर्सना अधिक शक्तिशाली हार्डवेअरसह विशेष नोड्स बनण्याची परवानगी मिळते आणि त्यांनाच पूर्ण स्टेट डेटामध्ये प्रवेशाची आवश्यकता असते.
ब्लॉक प्रस्तावक "साक्षीदार" तयार करण्यासाठी स्टेट डेटा वापरतात - डेटाचा किमान संच जो ब्लॉकमधील व्यवहारांद्वारे बदलल्या जात असलेल्या स्टेटच्या मूल्यांना सिद्ध करतो. इतर व्हॅलिडेटर्स स्टेट धारण करत नाहीत, ते फक्त स्टेट रूट (संपूर्ण स्टेटचा हॅश) संग्रहित करतात. ते एक ब्लॉक आणि एक साक्षीदार प्राप्त करतात आणि त्यांचा स्टेट रूट अपडेट करण्यासाठी वापर करतात. यामुळे एक व्हॅलिडेटिंग नोड अत्यंत हलका होतो.
वीक स्टेटलेसनेस संशोधनाच्या प्रगत अवस्थेत आहे, परंतु ते प्रस्तावक-बिल्डर सेपरेशन आणि Verkle Trees लागू करण्यावर अवलंबून आहे जेणेकरून लहान साक्षीदार पीअर्समध्ये पास केले जाऊ शकतील. याचा अर्थ वीक स्टेटलेसनेस कदाचित Ethereum मेननेटपासून काही वर्षे दूर आहे.
स्ट्राँग स्टेटलेसनेस
स्ट्राँग स्टेटलेसनेस कोणत्याही नोडला स्टेट डेटा संग्रहित करण्याची गरज काढून टाकते. त्याऐवजी, व्यवहार साक्षीदारांसह पाठवले जातात जे ब्लॉक प्रोड्युसर्सद्वारे एकत्रित केले जाऊ शकतात. ब्लॉक प्रोड्युसर्स नंतर केवळ त्या स्टेटला संग्रहित करण्यासाठी जबाबदार असतात ज्याची संबंधित अकाउंट्ससाठी साक्षीदार तयार करण्यासाठी आवश्यकता असते. स्टेटची जबाबदारी जवळजवळ पूर्णपणे वापरकर्त्यांवर हलविली जाते, कारण ते साक्षीदार आणि 'ॲक्सेस लिस्ट' पाठवून ते कोणत्या अकाउंट्स आणि स्टोरेज कीजशी संवाद साधत आहेत हे घोषित करतात. यामुळे अत्यंत हलके नोड्स सक्षम होतील, परंतु त्यात स्मार्ट कॉन्ट्रॅक्ट्ससह व्यवहार करणे अधिक कठीण बनवणे यासारखे काही ट्रेडऑफ आहेत.
स्ट्राँग स्टेटलेसनेसवर संशोधकांनी तपासणी केली आहे परंतु सध्या ते Ethereum च्या रोडमॅपचा भाग असण्याची अपेक्षा नाही - Ethereum च्या स्केलिंग गरजांसाठी वीक स्टेटलेसनेस पुरेसे असण्याची अधिक शक्यता आहे.
सध्याची प्रगती
वीक स्टेटलेसनेस, हिस्ट्री एक्सपायरी आणि स्टेट एक्सपायरी हे सर्व संशोधन टप्प्यात आहेत आणि आतापासून अनेक वर्षांनी सादर होण्याची अपेक्षा आहे. या सर्व प्रस्तावांची अंमलबजावणी होईल याची कोणतीही हमी नाही, उदाहरणार्थ, जर स्टेट एक्सपायरी प्रथम लागू केली गेली तर हिस्ट्री एक्सपायरी देखील लागू करण्याची आवश्यकता भासणार नाही. इतर रोडमॅप आयटम देखील आहेत, जसे की Verkle Trees आणि प्रस्तावक-बिल्डर सेपरेशन जे प्रथम पूर्ण करणे आवश्यक आहे.
पुढील वाचन
- स्टेटलेस Ethereum काय आहे? (opens in a new tab)
- विटालिक स्टेटलेसनेस AMA (opens in a new tab)
- स्टेट साईझ मॅनेजमेंटचा एक सिद्धांत (opens in a new tab)
- रिसरेक्शन-कॉन्फ्लिक्ट-मिनिमाइज्ड स्टेट बाउंडिंग (opens in a new tab)
- स्टेटलेसनेस आणि स्टेट एक्सपायरीकडे जाणारे मार्ग (opens in a new tab)
- EIP-4444 स्पेसिफिकेशन (opens in a new tab)
- एलेक्स स्टोक्स EIP-4444 वर (opens in a new tab)
- स्टेटलेस होणे इतके महत्त्वाचे का आहे (opens in a new tab)
- मूळ स्टेटलेस क्लायंट संकल्पना नोट्स (opens in a new tab)
- स्टेट एक्सपायरीवर अधिक (opens in a new tab)
- स्टेट एक्सपायरीवर आणखी (opens in a new tab)
- स्टेटलेस Ethereum माहिती पृष्ठ (opens in a new tab)
पृष्ठ अखेरचे अद्यतन: २३ फेब्रुवारी, २०२६