ग्राहक विविधता
एथेरियम नोड का व्यवहार उसके द्वारा चलाए जाने वाले क्लाइंट सॉफ़्टवेयर द्वारा नियंत्रित किया जाता है। कई उत्पादन-स्तर के एथेरियम क्लाइंट हैं, प्रत्येक को अलग-अलग टीमों द्वारा विभिन्न भाषाओं में विकसित किया और बनाए रखा गया है। क्लाइंट को एक सामान्य विनिर्देश के लिए बनाया गया है जो यह सुनिश्चित करता है कि क्लाइंट एक-दूसरे के साथ निर्बाध रूप से संवाद करें और समान कार्यक्षमता रखें और एक समान उपयोगकर्ता अनुभव प्रदान करें। हालाँकि, फिलहाल नोड्स में क्लाइंट का वितरण इतना समान नहीं है कि इस नेटवर्क सुदृढ़ीकरण को इसकी पूरी क्षमता तक महसूस किया जा सके। आदर्श रूप से, यूज़र नेटवर्क में जितना संभव हो उतना क्लाइंट विविधता लाने के लिए विभिन्न क्लाइंट में लगभग समान रूप से विभाजित होते हैं।
आवश्यक शर्तें
यदि आप पहले से ही नहीं समझते हैं कि नोड्स और क्लाइंट क्या हैं, तो नोड्स और क्लाइंट देखें। और परतों को शब्दावली में परिभाषित किया गया है।
एक से अधिक क्लाइंट क्यों हैं?
कई, स्वतंत्र रूप से विकसित और बनाए रखे गए क्लाइंट मौजूद हैं क्योंकि क्लाइंट की विविधता नेटवर्क को हमलों और बग के लिए अधिक लचीला बनाती है। एक से अधिक क्लाइंट होना एथेरियम की अद्वितीय ताकत है - अन्य ब्लॉकचेन एकल क्लाइंट की अचूकता पर भरोसा करते हैं। हालांकि, केवल कई क्लाइंट उपलब्ध होना पर्याप्त नहीं है, उन्हें समुदाय द्वारा अपनाया जाना चाहिए और कुल सक्रिय नोड्स अपेक्षाकृत समान रूप से वितरित किए जाने चाहिए।
क्लाइंट विविधता क्यों महत्वपूर्ण है?
स्वतंत्र रूप से विकसित और अनुरक्षित कई क्लाइंट का होना विकेन्द्रीकृत नेटवर्क के स्वास्थ्य के लिए महत्वपूर्ण है। आइए कारणों का पता लगाएं।
बग्स
एक व्यक्तिगत क्लाइंट में एक बग, एथेरियम नोड्स की कमी का प्रतिनिधित्व करते समय नेटवर्क के लिए जोखिम से कम होता है। कई क्लाइंट में नोड्स के लगभग समान वितरण के कारण, अधिकांश क्लाइंट के साझा मुद्दे से पीड़ित होने की संभावना कम होती है, और परिणामस्वरूप, नेटवर्क अधिक मजबूत होता है।
हमलों के लिए लचीलापन
क्लाइंट विविधता भी हमलों के लिए लचीलापन प्रदान करती है। उदाहरण के लिए, एक हमला जो किसी विशेष क्लाइंट को श्रृंखला की किसी विशेष शाखा पर धोखा देता है, के सफल होने की संभावना नहीं होती क्योंकि अन्य क्लाइंट का उसी तरह से शोषण होने की संभावना नहीं होती और कैनोनिकल श्रृंखला अदूषित रहती है। कम क्लाइंट विविधता प्रमुख क्लाइंट पर हैक से जुड़े जोखिम को बढ़ाती है। क्लाइंट विविधता पहले से ही नेटवर्क पर दुर्भावनापूर्ण हमलों के खिलाफ एक महत्वपूर्ण बचाव साबित हुई है, उदाहरण के लिए 2016 में शंघाई सेवा अस्वीकार हमला संभव था क्योंकि हमलावर प्रमुख क्लाइंट (Geth) को धोखा देकर प्रति ब्लॉक हजारों बार धीमी डिस्क i/o ऑपरेशन निष्पादित कर सकते थे। क्योंकि वैकल्पिक क्लाइंट भी ऑनलाइन थे जो कमजोरी को साझा नहीं करते थे, एथेरियम हमले का विरोध करने में सक्षम था और Geth में कमजोरी तय होने के दौरान संचालन जारी रखता था।
हिस्सेदारी का सबूत की अन्तिम स्थिति
33% से अधिक एथेरियम नोड्स के साथ सहमति क्लाइंट में एक बग सर्वसम्मति परत को अंतिम रूप देने से रोक सकता है, जिसका अर्थ है कि यूज़र भरोसा नहीं कर सकते हैं कि लेनदेन को किसी बिंदु पर वापस किया या बदला नहीं जाएगा। यह एथेरियम, विशेष रूप से DeFi के शीर्ष पर निर्मित कई ऐप्स के लिए बहुत समस्याग्रस्त होगा।
इससे भी बदतर, दो-तिहाई बहुमत वाले क्लाइंट में एक महत्वपूर्ण बग श्रृंखला को गलत तरीके से विभाजित करने और अंतिम रूप देने का कारण बन सकता है, जिससे सत्यापनकर्ताओं का एक बड़ा सेट एक अमान्य श्रृंखला पर फंस सकता है। यदि वे सही श्रृंखला में फिर से शामिल होना चाहते हैं, तो इन सत्यापनकर्ताओं को स्लैशिंग या धीमी और महंगी स्वैच्छिक निकासी और पुनर्सक्रियन का सामना करना पड़ता है। दो-तिहाई बहुमत के साथ दोषी नोड्स की संख्या के साथ एक स्लैशिंग स्केल का परिमाण अधिकतम (32 ETH) घटा दिया गया।हालांकि ये असंभावित परिदृश्य हैं, एथेरियम इको-सिस्टम सक्रिय नोड्स में क्लाइंट के वितरण को समान करके जोखिम को कम कर सकता है। आदर्श रूप से, कोई भी कंसेंसस क्लाइंट कभी भी कुल नोड्स के 33% हिस्से तक नहीं पहुंच पाएगा।
साझा की गई जिम्मेदारी
बहुसंख्यक क्लाइंट होने की मानवीय लागत भी है। यह एक छोटी विकास टीम पर अतिरिक्त तनाव और जिम्मेदारी डालता है। क्लाइंट विविधता जितनी कम होगी, बहुसंख्यक क्लाइंट को बनाए रखने वाले डेवलपर के लिए जिम्मेदारी का बोझ उतना ही अधिक होगा। इस जिम्मेदारी को कई टीमों में फैलाना एथेरियम के नोड्स के नेटवर्क और इसके लोगों के नेटवर्क दोनों के स्वास्थ्य के लिए अच्छा है।
वर्तमान क्लाइंट विविधता
रेखाचित्र डेटा ethernodes.org और clientdiversity.org से
ऊपर दिए गए दो पाई चार्ट निष्पादन और सर्वसम्मति परतों (जनवरी 2022 में लेखन के समय) के लिए वर्तमान क्लाइंट विविधता के स्नैपशॉट दिखाते हैं। निष्पादन परत में Geth, का अत्यधिक प्रभुत्व है, जिसमें खुला एथेरियम एक दूर दूसरा, Erigon तीसरा और Nethermind चौथा है, अन्य ग्राहकों में नेटवर्क का 1% से कम शामिल है। सहमति परत पर सबसे अधिक इस्तेमाल किया जाने वाला क्लाइंट - प्रिज़्म- Geth जितना प्रमुख नहीं है, लेकिन फिर भी नेटवर्क के 60% से अधिक का प्रतिनिधित्व करता है। लाइटहाउसऔर Teku क्रमशः ~ 20% और ~ 14% बनाते हैं, और अन्य क्लाइंट का उपयोग शायद ही कभी किया जाता है।
निष्पादन परत डेटा 23 जनवरी 2022 को Ethernodes से प्राप्त किया गया था। सहमति क्लाइंट के लिए डेटा माइकल स्प्राउल से प्राप्त किया गया था। सहमति ग्राहक डेटा प्राप्त करना अधिक कठिन है क्योंकि सहमति परत क्लाइंट के पास हमेशा स्पष्ट निशान नहीं होते हैं जिनका उपयोग उन्हें पहचानने के लिए किया जा सकता है। डेटा एक वर्गीकरण एल्गोरिथम का उपयोग करके उत्पन्न किया गया था जो कभी-कभी कुछ अल्पसंख्यक क्लाइंट को भ्रमित करता है (अधिक विवरण के लिए यहां देखें)। उपरोक्त रेखाचित्र में, इन अस्पष्ट वर्गीकरणों को या तो/या लेबल (जैसे Nimbus/Teku) के साथ व्यवहार किया जाता है। फिर भी, यह स्पष्ट है कि अधिकांश नेटवर्क प्रिज़्म चला रहे हैं। डेटा ब्लॉक के एक निश्चित सेट पर एक स्नैपशॉट है (इस मामले में 2164916 के 2048001 स्लॉट में बीकन ब्लॉक) और प्रिज़्म का प्रभुत्व कभी-कभी अधिक, 68% से अधिक रहा है। केवल स्नैपशॉट होने के बावजूद, रेखाचित्र में मान क्लाइंट विविधता की वर्तमान स्थिति का एक अच्छा सामान्य ज्ञान प्रदान करते हैं।
सहमति परत के लिए अद्यतित क्लाइंट विविधता डेटा अब clientdiversity.org पर उपलब्ध है।
निष्पादन परत
अब तक, क्लाइंट विविधता के आसपास की बातचीत मुख्य रूप से सहमति परत पर केंद्रित है। हालांकि, निष्पादन क्लाइंट Geth वर्तमान में सभी नोड्स का लगभग 85% है। यह प्रतिशत सहमति क्लाइंट के समान कारणों से समस्याग्रस्त है। उदाहरण के लिए, Geth में एक बग लेनदेन से निपटने या निष्पादन पेलोड के निर्माण को प्रभावित करता है, जिससे सहमति ग्राहक समस्याग्रस्त या बग किए गए लेनदेन को अंतिम रूप दे सकते हैं। इसलिए, एथेरियम निष्पादन ग्राहक के अधिक समान वितरण के साथ स्वस्थ होगा, आदर्श रूप से कोई भी क्लाइंट नेटवर्क के 33% से अधिक का प्रतिनिधित्व नहीं करता है।
अल्पसंख्यक क्लाइंट का उपयोग करें
क्लाइंट विविधता को संबोधित करने के लिए अल्पसंख्यक क्लाइंट को चुनने के लिए व्यक्तिगत उपयोगकर्ताओं से अधिक की आवश्यकता होती है - इसके लिए क्लाइंट को स्विच करने के लिए माईनिंग/सत्यापनकर्ता पूल और प्रमुख dapps और एक्सचेंजों जैसे संस्थानों की आवश्यकता होती है। हालांकि, सभी यूज़र वर्तमान असंतुलन को दूर करने और सभी उपलब्ध एथेरियम सॉफ़्टवेयर के उपयोग को सामान्य बनाने में अपनी भूमिका निभा सकते हैं। मर्ज के बाद, सभी नोड ऑपरेटरों को एक एक्जीक्यूशन क्लाइंट और एक कंसेंसस क्लाइंट रन करने की आवश्यकता होगी। नीचे सुझाए गए क्लाइंट के संयोजन चुनने से क्लाइंट विविधता बढ़ाने में मदद मिलेगी।
निष्पादन ग्राहक
सहमति ग्राहक
तकनीकी यूज़र अल्पसंख्यक क्लाइंट के लिए अधिक ट्यूटोरियल और प्रलेखन लिखकर और अपने नोड-ऑपरेटिंग साथियों को प्रमुख क्लाइंट से दूर माइग्रेट करने के लिए प्रोत्साहित करके इस प्रक्रिया को तेज करने में मदद कर सकते हैं। अल्पसंख्यक सहमति क्लाइंट पर स्विच करने के लिए गाइड clientdiversity.org पर उपलब्ध हैं।
क्लाइंट विविधता डैशबोर्ड
कई डैशबोर्ड निष्पादन और सहमति परत के लिए वास्तविक समय क्लाइंट विविधता आँकड़े देते हैं।
सहमति परत:
अग्रिम पठन
- एथेरियम की सहमति परत पर क्लाइंट विविधता
- एथेरियम मर्ज: बहुमत वाले क्लाइंट को अपने जोखिम पर चलाएं! – डंकराड फिएस्ट, 24 मार्च 2022
- क्लाइंट विविधता का महत्व
- एथेरियम नोड सेवाओं की सूची
- क्लाइंट विविधता समस्या के पांच क्यों
- एथेरियम विविधता और इसका समाधान कैसे करें (YouTube)
- clientdiversity.org