हालाँकि यह इस ब्लॉग पर मेरी पहली पोस्ट है, बहुत से लोग मुझे पहले से ही सॉलिडिटी के पीछे के व्यक्ति के रूप में जानते होंगे। मैंने हाल ही में C++ टीम का नेतृत्व किया है और भविष्य के विकास के लिए अपनी दृष्टि साझा करना चाहूंगा।
एथेरियम एक मुफ्त सॉफ्टवेयर परियोजना है जिसका उपयोग और सुधार करने के लिए कोई भी स्वतंत्र है। हमारे सम्मेलनों और मीटअप में हमने जो देखा है, वहां इथेरियम के शीर्ष पर परियोजनाओं पर बहुत सारे लोग काम कर रहे हैं, लेकिन हमारे पास वास्तविक मंच पर काम करने वाली एक छोटी सी टीम है। एथेरियम एक खुली परियोजना होनी चाहिए जो किसी को भी सुधार का प्रस्ताव करने, वास्तव में उन्हें लागू करने और उन्हें स्वीकार करने के लिए आमंत्रित कर रही है।
नई सी++ टीम के नेतृत्व के रूप में, मैं न केवल उपयोगकर्ताओं (डीएपी डेवलपर्स) के लिए बल्कि डेवलपर्स (प्लेटफॉर्म डेवलपर्स) के लिए भी प्रवेश बाधा को यथासंभव कम करने की पूरी कोशिश करूंगा। यह एक आवश्यक कदम है, और मुझे विश्वास है कि इस तरह से सॉफ्टवेयर विकसित किया जाना चाहिए, विशेष रूप से सॉफ्टवेयर जिसका उद्देश्य संपूर्ण मानवता के लिए लाभकारी होना है।
बेशक, समुदाय केवल हमारा समर्थन कर सकता है, हम किसी से उनके खाली समय में समय सीमा के साथ एक महत्वपूर्ण विशेषता विकसित करने के लिए नहीं कह सकते। यही कारण है कि कोर टीम प्रमुख सॉफ्टवेयर घटकों पर ध्यान केंद्रित करेगी और कई अन्य चीजें वैकल्पिक होंगी। हम Go और C++ टीमों के बीच दोहराए गए किसी भी कार्य को छोड़ देंगे, जब तक कि आम सहमति की बग खोजने के लिए आवश्यक न हो और अदृश्य “भाषा अवरोध” को दूर करने के लिए कड़ी मेहनत करें और टीमों को एक साथ मिलकर एक एकजुट टीम के रूप में काम करने के लिए लाएं।
इसका मतलब है कि हमारी प्राथमिकताएं सॉलिडिटी एंड मिक्स (आईडीई और स्मार्ट कॉन्ट्रैक्ट डिबगर) होंगी, जबकि एथेरियम/वेब3 (“एथ”) का सी++ कार्यान्वयन गो इंप्लीमेंटेशन गेथ के साथ अपने इंटरफेस को संरेखित करेगा, इसलिए मिस्ट, एथेरियम वॉलेट जैसे मौजूदा फ्रंटएंड , Geth कंसोल और अन्य टूल बिना किसी बदलाव के दोनों बैकेंड से जुड़ सकते हैं।
दूसरी ओर, इसका मतलब यह है कि हम C++ UI AethZero के विकास को पूरी तरह से विकसित DApp ब्राउज़र में समर्थन नहीं दे सकते हैं और इसकी अनूठी विशेषताओं (मुख्य रूप से ब्लॉकचेन एक्सप्लोरर) को Mist में DApp के रूप में एकीकृत होते हुए देखकर खुशी होगी।
अधिक तकनीकी पक्ष पर, हमारा वर्तमान रोडमैप इस प्रकार है, जबकि एथ के लिए अधिकांश आइटम हमारी क्षमता पर निर्भर करते हैं और शायद इस बात पर कि हमें बाहरी योगदानकर्ताओं से कितनी सहायता मिलती है।
यदि आप मदद करना चाहते हैं, तो कृपया हमारा पढ़ें योगदानकर्ता गाइड या हमारे लिए संपर्क करें कर्कश.
दृढ़ता:
सामान्य विचार यह है कि सॉलिडिटी को अधिक लचीला बनाया जाए और सामान्य डेटा प्रकारों को लागू किया जाए।
विशिष्ट नियोजित विशेषताएं:
- मानचित्र, कम करने, सॉर्ट करने और अन्य जैसे कार्यों के लिए आंतरिक कॉलबैक में उपयोग किए जाने वाले अज्ञात फ़ंक्शंस, लेकिन एसिंक्रोनस क्रॉस-कॉन्ट्रैक्ट (या क्रॉस-चेन) कॉलबैक के लिए भी
- पुन: प्रयोज्य डेटा संरचनाओं की अनुमति देने के लिए विशेष रूप से पुस्तकालयों के लिए टेम्पलेट्स टाइप करें
- इनलाइन असेंबली
इनलाइन असेंबली और टाइप टेम्प्लेट एक साथ अन्य सुविधाओं के कार्यान्वयन को गति प्रदान करेंगे।
मिक्स:
मिक्स की अनूठी विशेषता इसका सोर्स-लेवल सॉलिडिटी डिबगर है। हम इसे विस्तारित करने की योजना बना रहे हैं ताकि आप मौजूदा अनुबंधों को भी डीबग कर सकें। इसके अलावा, हम पैकेज प्रबंधन और परीक्षण (डैपल, ट्रफल, एम्बार्क, …) के लिए मौजूदा समाधानों को एकीकृत करना चाहते हैं।
विशिष्ट लक्षण:
- लाइव या टेस्ट चेन में पिछले लेन-देन को डीबग करें
- सीधे आईडीई से जावास्क्रिप्ट यूनिट परीक्षण चलाएं
- जीथब इंटीग्रेशन (रिपॉजिटरी से लोड / सेव करें, जीथब से सीधे लाइब्रेरी लोड करें)
- Why3 (औपचारिक सत्यापन) एकीकरण
एथ:
हम एथेरियम इकोसिस्टम के अन्य घटकों के साथ एथ को अधिक लचीला और इंटरऑपरेबल बनाएंगे। यह हमें उन सुविधाओं को हटाने की अनुमति देता है जो पहले से ही कहीं और लागू हैं, ताकि एथ को बनाना और बनाए रखना आसान हो जाए। इसके अलावा, हम एम्बेडेड उपकरणों और विभिन्न प्लेटफार्मों को अधिक आसानी से लक्षित कर सकते हैं। हम अन्य कार्यान्वयनों के लिए जस्ट-इन-टाइम कंपाइलर भी उपलब्ध कराना चाहते हैं।
- यदि संभव हो तो बाहरी निर्भरता कम करें, निर्माण प्रक्रिया में सुधार करें
- eth कंसोल को NodeJS एप्लिकेशन से बदलें (v8 को निर्भरता के रूप में हटा देगा) या “गेट अटैच”
- तेज सिंक
- छोटे नंबरों पर सिर्फ टाइम कंपाइलर में सुधार करें
- छंटाई का प्रयास करें
- प्रकाश ग्राहक
- सामान्य निष्पादन योग्य (क्षमता के आधार पर) में निजी / कंसोर्टियम श्रृंखला निष्पादन योग्य फ़्लू शामिल करें