मुझे पता है, कुछ समय हो गया है, लेकिन ये काफी व्यस्त दिन हैं।
मैं इसे ग्रेट फ़ायरवॉल के पीछे बैठे शंघाई के एक स्टारबक्स से लिख रहा हूँ, जो कभी-कभार ही बाहर झाँक पाता है। मैं पिछले कुछ हफ्तों से मारेक के साथ एशिया में हूं, मुख्य रूप से मुलाकातों, कार्यशालाओं और तकनीकी बैठकों के लिए। इस समय के दौरान, हमने ओलंपिक टेस्टनेट की रिलीज़, संघर्ष और उत्तरजीविता देखी है, यह एक बहुत स्पष्ट संकेत है कि एक बहु-ग्राहक प्रणाली वर्तमान मोनोकल्चर से कहीं बेहतर होगी। हमने दूसरे बाहरी गो ऑडिट की शुरुआत देखी है, मुख्य रूप से प्रतिगमन की जाँच के लिए, लेकिन उन पहलुओं पर टिप्पणियों और आलोचनाओं की पेशकश करने के लिए जो इस दौरान बदल गए हैं जैसे कि गो की नेटवर्क परत और सिंक रणनीति। हमने देखा है कि मिक्स एंड सॉलिडिटी लगातार प्रगति और परिपक्व होती जा रही है। और चल रहे विकास और एपीआई की प्रगति के माध्यम से हमने देखा है कि सभी ग्राहक स्वच्छ, तेज और अधिक लचीले हो गए हैं।
एक्सचेंजों
हम एक्सचेंजों के साथ काम करना जारी रखते हैं, अब मारेक और कॉन्स्टेंटिन दोनों पर्याप्त तकनीकी सहायता प्रदान करते हैं, एक्सचेंजों के कोडर को मानक क्रिप्टोक्यूरेंसी एपीआई और एथेरियम के स्मार्ट-अनुबंध-आधारित दृष्टिकोण का उपयोग करने के बीच व्यापक अंतर को समझने में मदद करते हैं। उनके लिए बेहतर समर्थन प्रदान करने और गोद लेने को अधिकतम करने के लिए, हमने एक मिडलवेयर JSON RPC प्रॉक्सी को डिज़ाइन और पेश किया है, जो एक्सचेंजों के लिए एथेरियम के लिए अधिक परिचित इंटरफ़ेस की अनुमति देता है।
सी ++
C++ की तरफ, हमने PV61 पेश किया है, एक नया एथेरियम नेटवर्क प्रोटोकॉल संस्करण (पीछे की ओर संगत ताकि गो के लिए फ्रंटियर रिलीज शेड्यूल में बाधा न आए) सुपर-फास्ट समानांतर हैश-चेन डाउनलोडिंग और गंदे हैश-चेन हमलों के लिए और अधिक लचीलापन प्रदान करता है। . Arkadiy इस उम्मीद के साथ C++ के लिए कोड की मदद कर रहा है कि इसे होमस्टेड से पहले गो में काम किया जा सकता है।
इस बीच, सॉलिडिटी में काफी प्रगति हुई है: सॉलिडिटी अब संरचनात्मक रूप से गैस के उपयोग की भविष्यवाणी कर सकती है, स्टोरेज एक्सेस और कोड साइज के लिए बहुत अच्छी तरह से ऑप्टिमाइज़ कर सकती है, और डायनेमिक टाइप के साथ आंतरिक-फ़ंक्शन कॉल का समर्थन कर सकती है, साथ में अन्य सुविधाओं की पूरी मेजबानी भी कर सकती है। लियाना क्रिश्चियन के साथ मिलकर उस कोडबेस को हैक करना जारी रखती है।
मिक्स, एरोन और जट्टा के मार्गदर्शन में अवसा के साथ दृश्य डिजाइन अंतर्दृष्टि और यान हैकिंग प्रदान करता है, पर्याप्त यूएक्स पॉलिश और रीफैक्टरिंग देख रहा है, सामान्य लक्ष्य के साथ अनुबंध विकास के लिए यह एक अति-उपयोगी, अभी तक शक्तिशाली, आईडीई है। Ðऐप्स को अब एक सरल 3-चरण प्रक्रिया में नेटवर्क पर तैनात किया जा सकता है, और राज्य/ब्लॉकचेन प्रबंधन स्तर में काफी सुधार हो रहा है, जिसमें एक एकल-फलक दृश्य है जिससे आप आसानी से सभी लेनदेन, कॉल और लॉग देख सकते हैं और बीच में लेनदेन का प्रसार कर सकते हैं। चेन-ताज़ा आसानी से।
एलेक्स निम्न-स्तरीय नेटवर्क परत पर काम करना जारी रखता है, अब व्लाद द्वारा मदद की जा रही है। हमने 3 सप्ताह पहले ज़ुग में एक शिखर सम्मेलन किया था जहाँ मैंने अपनी libp2p नेटवर्किंग परत के लिए योजनाएँ रखीं, और व्हिस्पर और एथेरियम प्रोटोकॉल उसमें कैसे फिट होते हैं। व्हिस्पर पर हमारा पहला पूर्णकालिक डेवलपर, व्लाद, libp2p और व्हिस्पर पर हैकिंग जारी रखेगा, प्रोटोकॉल को विभिन्न एथेरियम नेटवर्किंग हमलों के लिए अधिक लचीला बनाता है जबकि पी2पी एसिंक्रोनस गैर-एंडपॉइंट-विशिष्ट सिग्नलिंग प्रोटोकॉल के लिए आरएंडडी जारी रखता है।
पावेल, वारसॉ से काम कर रहे हैं, जेआईटी ईवीएम और ईवीएम पुस्तकालयों पर काम कर रहे हैं, ढेर के उपयोग को अनुकूलित कर रहे हैं और स्टैक की गहराई के मुद्दों को ठीक करने में मदद कर रहे हैं जो हम मैक ओएस एक्स पर देख रहे थे। व्लादिमीर इस बीच परीक्षण पर अपना काम जारी रखता है और मैरियन नेटस्टैट पेज जिसने हाल ही में एक से अधिक तरीकों से अपनी उपयोगिता साबित की है। जो लोग ओलंपिक टेस्टनेट पर खनन सेटअप के साथ प्रयोग कर रहे हैं, वे शायद एटाश कार्यान्वयन को संभालने और टिम ह्यूजेस के ओपनसीएल कार्यान्वयन को अपडेट करने, रीफैक्टरिंग करने और आम तौर पर समर्थन करने में लेफ्टेरिस के काम को पहचानेंगे। समुदाय के प्रत्येक सदस्य को विशेष धन्यवाद जिन्होंने इस संहिता के विकास में किसी न किसी रूप में मदद की है। आप जानते हैं कि आप कौन हैं (-: क्रिस्टोफ़, इस बीच, अब कोर क्लास के लिए टेस्ट कवरेज पर काम कर रहा है, साथ ही कोर में विभिन्न मुद्दों को ठीक करने में मदद कर रहा है।
मिक्स टीमों, अरकडी और मारेक के साथ काम करने के अलावा, मैं नए C++ वॉलेट/सीक्रेट स्टोर कोड (एक संशोधित प्रारूप और गो और पायथन के साथ संगतता) को कोड कर रहा हूं, कोर का अनुकूलन कर रहा हूं (कम से कम एक गैस के लिए आयात समय- भारी ब्लॉक को हाल ही में पायथन की तुलना में ~10x तेज और गो से ~3x तेज होने के रूप में मापा गया था), कोर में बग फिक्सिंग, स्टैंडअलोन मोड में ईवीएम चलाने के लिए नए ‘एथवीएम’ बाइनरी का कार्यान्वयन और वॉलेट प्रबंधन के लिए ‘एथकी’ बाइनरी और, हाल ही में, गो के जावास्क्रिप्ट कंसोल के समान एक बेहतर इंटरएक्टिव कंसोल इंटरफ़ेस को कोड करना। मैं यह भी उम्मीद कर रहा हूं कि एलेथजेरो में जल्द ही बेहतर ब्लॉकचेन डाउनलोड डायग्नोस्टिक डिस्प्ले मिलेगा।
लेखा परीक्षा
C++ कोडबेस का आंतरिक ऑडिट शुरू हो गया है, जिसमें क्रिस्टोफ़ सभी मुख्य वर्गों के लिए परीक्षण पर काम कर रहा है और अर्कडी कुछ मुख्य अनुकूलन के साथ मदद कर रहा है। सीक्रेटस्टोर और वॉलेट क्लासेस का पहले ही क्रिश्चियन द्वारा ऑडिट किया जा चुका है, जिससे यह विश्वसनीयता मिलती है कि सी ++ क्लाइंट निजी चाबियों के प्रबंधन के लिए उचित रूप से सुरक्षित है। C++ बाहरी ऑडिट तीन छोटे सप्ताहों में शुरू हो जाएगा।
चूंकि टेस्टनेट की पर्याप्त विफलता तीन क्लाइंट्स में से केवल एक में मुद्दों के कारण हुई, जिसमें दो ऑडिटिंग प्रक्रियाओं से बचे हुए मुद्दे भी शामिल हैं, यह हमारे लिए स्पष्ट हो गया है कि ऑडिटिंग, बाहरी या आंतरिक, कोई चांदी की गोली नहीं है। जबकि हम सबसे अच्छा सॉफ्टवेयर प्रदान करने के लिए प्रतिबद्ध हैं और हमारे ऑडिटिंग कार्यक्रम के साथ जारी रहेंगे, कृपया स्पष्ट रहें: गो क्लाइंट के ऑडिटिंग प्रक्रिया से गुजरने के बारे में कुछ भी जादुई नहीं है। हम होमस्टेड रिलीज़ द्वारा कम से कम एक बुनियादी ऑडिटिंग प्रक्रिया के माध्यम से सभी ग्राहकों को प्राप्त करने का लक्ष्य बना रहे हैं और मुझे इस चरण में अन्य ग्राहकों (सी ++ या पायथन) पर गो क्लाइंट का उपयोग करने का कोई कारण नहीं दिखता है, न ही अधिकांश उपयोगकर्ताओं के लिए, इस दौरान सीमांत। कोई ग्राहक किसी गारंटी के साथ नहीं आता। वास्तव में यह तर्क दिया जाता है कि छोटे लक्ष्य होने के कारण अल्पसंख्यक ग्राहकों पर हमले की संभावना कम होती है।
से आगे
हम सीमांत रिहाई के लिए अपनी तैयारी जारी रखते हैं। जबकि हम अभी भी सटीक रिलीज की तारीख के बारे में अनिश्चित हैं, हम ओलंपिक टेस्टनेट के लचीलेपन पर तेजी से खुश हो रहे हैं। जैसा कि ओलंपिक टेस्टनेट की विफलता जारी थी, प्रतिकूलता ने इस बात पर कुछ विचार किया कि हम भविष्य में ऐसी समस्याओं को कैसे कम कर सकते हैं। सर्वसम्मति की विफलता की गहराई और अवधि, मोटे तौर पर बोलना, दो समस्याओं के लिए नीचे रखा जा सकता है: सबसे पहले कि गो कोडबेस में एक बग था, जिसके कारण यह अमान्य ब्लॉकों को स्वीकार करता है (इस मामले में, अमान्य प्रूफ-ऑफ-वर्क वाले ब्लॉक गैर); दूसरी बात यह है कि नेटवर्क को अपग्रेड करने में एक बड़ी समस्या थी क्योंकि खनिक ‘खराब’ श्रृंखला पर खनन करना जारी रखते थे और अपने नोड्स को अपग्रेड करने में धीमे थे ताकि वे सही श्रृंखला पर खनन कर सकें। अनिवार्य रूप से, पहली एक फोरेंसिक समस्या थी और दूसरी संगठन की समस्या थी।
यह सुनिश्चित करने के लिए कि यह भविष्य में कभी भी इतना गहरा या व्यापक न हो, मैंने दो नए प्रोटोकॉल तैयार किए: द खराब चेन कैनरी और यह खराब ब्लॉक रिपोर्टिंग एपीआई. खराब चेन कैनरी एक साधारण अनुबंध है। यह एक ही कुंजी द्वारा नियंत्रित होता है (हालांकि उनमें से कई हो सकते हैं) और इसके मालिक द्वारा पोक किए जाने तक चुपचाप बैठता है। मैं ऐसा ही एक मालिक बनूंगा, विटालिक और जेफ दो अन्य और संभवतः चौथा, क्रिस्टोफ होगा। पोक करने पर इसे ब्लॉकश और ब्लॉक नंबर पेयर दिया जाता है; यह जोड़ी खराब श्रृंखला पर हाल के ब्लॉक को संदर्भित करती है। यदि वे उस श्रृंखला से मेल खाते हैं जिस पर अनुबंध को लगता है कि यह बैठा है, तो यह खुद को “खराब श्रृंखला” स्थिति में रखता है। यह एथेरियम कोर देवों को उन सभी को सूचित करने की अनुमति देता है जो एक खराब श्रृंखला पर ग्राहक चला रहे हैं (यानी एक बग के कारण येलो पेपर के अनुरूप नहीं है) कि यह ऐसा है। ग्राहकों में डिफ़ॉल्ट (आसानी से ओवरराइड) ऐसी श्रृंखलाओं पर मेरा नहीं है (क्योंकि ऐसा करना ऊर्जा की बर्बादी होगी), बल्कि उपयोगकर्ता को सूचित करना है कि उन्हें अपने जल्द से जल्द अवसर पर अपग्रेड करना चाहिए।
बैड ब्लॉक रिपोर्टिंग एपीआई एक साधारण JSON RPC है जो हमारे कई नोड्स को ‘सेंटिनल’ मोड में चलाने की अनुमति देती है। इस मोड में, यदि वे एक खराब ब्लॉक में आते हैं, तो वे स्वचालित रूप से अपेक्षित लेन-देन प्राप्तियों, वीएम ट्रेस, प्रूफ-ऑफ-वर्क और ब्लॉक एरर जानकारी सहित गलत होने की एक मानकीकृत रिपोर्ट संकलित करते हैं। यह रिपोर्ट तुरंत एक ÐΞV सर्वर पर भेजी जाती है जहां यह एक प्रारंभिक चेतावनी प्रणाली को ट्रिगर कर सकती है और रिलीज जार (जो कि टेलर होगा) को आवश्यक समझा जाना चाहिए, कोर देवों को सचेत करें। मानकीकरण और एक सरल प्रारूप के उपयोग के माध्यम से, इसे डिज़ाइन किया गया है ताकि हम आसानी से एक JSON-तुलना इंजन को कोड कर सकें ताकि आम सहमति का मुद्दा जल्दी से निदान किया जा सके।
एक भविष्य का काम दोनों को संयोजित करना है ताकि JSON-RPC कैनरी जानकारी की रिपोर्टिंग का प्रबंधन भी कर सके – इस मामले में, जब भी अनुबंध रिपोर्ट करता है कि खनन बंद हो गया है और/ या उन्हें माइनिंग जारी रखने के लिए अपने नोड को अपग्रेड करना चाहिए।
नींव
अंत में, एथेरियम फाउंडेशन के तीन निदेशक (तीन वोटों के साथ विटालिक, फिर एक वोट के साथ टेलर और मिहाई) जल्द ही, विटालिक के शब्दों में, “बैटन घटना का एक प्रकार का शानदार पारितोषिक” आयोजित करेंगे। केली, ÐΞV के अदम्य सीओओ, विभिन्न क्षेत्रों से सिद्ध उम्मीदवारों की खोज का नेतृत्व कर रहे हैं जो धन उगाहने और ड्राइविंग गोद लेने के मामले में नींव में वास्तविक मूल्य जोड़ सकते हैं। हम इस संबंध में उनकी कड़ी मेहनत के लिए बेहद आभारी हैं।