Trending News

BTC
$16,949.00
-0.94
ETH
$1,274.82
-0.7
LTC
$76.41
-0.83
DASH
$45.02
+1.54
XMR
$144.33
+0.92
NXT
$0.00
-6.45
ETC
$19.48
-2.21

एथेरियमजेएस वीएम v5 रिलीज | एथेरियम फाउंडेशन ब्लॉग

0


जबकि हर कोई 1 दिसंबर, दोपहर 12 बजे यूटीसी को आश्चर्य में घूर रहा है, जो एथ 2.0 बीकनचैन उत्पत्ति की उम्मीद कर रहा है, जावास्क्रिप्ट टीम के भीतर हमने चुपचाप छाया में अपनी छोटी उत्पत्ति रिलीज तैयार की। अच्छे ol’ Eth 1.0 श्रृंखला के आस-पास होने के बावजूद हम इस पर भी बहुत उत्साहित हैं। मैं

कुछ पृष्ठभूमि की कहानी: एथेरियमजेएस आसपास का पारिस्थितिकी तंत्र वीएम पुस्तकालयों का एक बहुत ही मॉड्यूलर सेट होता है (vm, blockchain, merkle-patricia-tree, tx,…), प्रत्येक अपने स्वयं के समर्पित सेट कार्यक्षमता को समाहित करता है। हालांकि यह उपयोगकर्ता के लिए बहुत अच्छा है, लेकिन यह विकास के लिए इतना अच्छा नहीं निकला क्योंकि कई पुस्तकालयों में एक साथ परिवर्तन करना अक्सर आवश्यक हो जाता है, जो पुस्तकालयों के साथ एक स्थिरता-संरक्षण तरीके से कार्य करने के लिए कठिन और समय लेने वाला होता है। विभिन्न भंडारों में। इसलिए इस साल की शुरुआत में हमने अपने सेटअप को अपडेट करने और VM से संबंधित पुस्तकालयों को एक में संयोजित करने का निर्णय लिया मोनोरेपो. यह एक एकल भंडार है जहां एक ही पुल अनुरोध के भीतर कई पुस्तकालयों पर परिवर्तनों को लक्षित करना संभव हो जाता है और स्थिरता सुनिश्चित करने के लिए सभी अलग-अलग पुस्तकालय परीक्षण सूट एक साथ चला सकते हैं। एक ही समय में अलग-अलग जारी किए गए कई पैकेज होने से होने वाले लाभ बने रहते हैं।

मोनोरेपो में स्विच करने के बाद से हमारी विकास गतिविधि सचमुच विस्फोट हो गई। 😋 हमने बहुत सी ऐसी चीजों की खोज की जिन्हें हम बेहतर बनाना चाहते थे, जिन्हें हम रोक नहीं सकते थे, खासकर जब से एक परिवर्तन अक्सर दूसरे को ट्रिगर करता था जो अब “ऐसा करने के लिए इतना स्पष्ट” था। मैं

इसलिए हमने विकास किया। और विकसित हुआ। और विकसित हुआ। मूल रूप से पूरे साल भर। यही मुख्य कारण है कि पिछले महीनों के दौरान आपने हमसे अपेक्षाकृत कम सुना, हम इन सब चीजों में इतने व्यस्त थे।

जबकि प्रक्रिया के अंत में हम कभी-कभी सोचते थे कि क्या हम कभी चीजों को फिर से एक साथ प्राप्त करेंगे (मेरे व्यापक रिलीज नोट्स देखें कि मेरा क्या मतलब है), मुझे आज वास्तव में गर्व है कि मैं आखिरकार घोषणा करने में सक्षम हूं: हम इसे करें. 😋 इस पर सभी महान और समर्पित कार्यों के लिए एक अद्भुत टीम को धन्यवाद। मैं

यह हमारी वर्चुअल मशीन के साथ हमारे मुख्य पुस्तकालयों पर एक नहीं बल्कि छह प्रमुख रिलीज़ हैं:


इस पोस्ट में हम तकनीकी विवरण में ज्यादा नहीं जाएंगे बल्कि उच्च स्तरीय अवलोकन देंगे। अधिक संपूर्ण चित्र के लिए ऊपर लिंक किए गए रिलीज़ नोट देखें, हमने वास्तव में इन्हें समाहित और पठनीय बनाने के लिए ध्यान रखा और सभी प्रासंगिक (ब्रेकिंग) परिवर्तनों पर एक अच्छा अवलोकन दिया।

शायद सिर्फ एक महत्वपूर्ण नोट: हमने a . पर स्विच किया नई नामकरण योजना इन रिलीज के साथ और नए संस्करण प्राप्त करने के लिए आपको नए नामों का उपयोग करने की आवश्यकता है। भूतपूर्व Ethereumjs-vm पैकेज जैसे अब निम्नानुसार स्थापित होता है:

npm install @ethereumjs/vm

ठीक। वास्तव में इसमें क्या है? आइए एक त्वरित नजर डालते हैं।

सभी हार्डफोर्क

एथेरियमजेएस वीएम वी 5 अब सभी हार्डफोर्क्स को वापस जेनेसिस में सपोर्ट करता है। यह जावास्क्रिप्ट एथेरियम के इतिहास में एक प्राइमर है और हमें उम्मीद है कि यह विभिन्न संभावित रोमांचक नए उपयोग के मामलों के लिए खुल जाएगा। हमारे पास अपना है, इस पर और नीचे।

एक विशिष्ट एचएफ पर एक वीएम के साथ शुरू किया जा सकता है:

import VM from '@ethereumjs/vm';
import Common from '@ethereumjs/common';

const common = new Common({ chain: 'mainnet', hardfork: 'spuriousDragon' });
const vm = new VM({ common });

एक ईआईपी-केंद्रित वीएम

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

नई वीएम रिलीज के साथ आंतरिक कार्यात्मक मॉड्यूलरलाइजेशन परत को फिर से काम किया गया है। यह ईआईपी को अब वीएम के भीतर मूल नागरिक बनने की अनुमति देता है। ईआईपी के एक विशेष सेट के साथ एक वीएम को निम्नानुसार त्वरित किया जा सकता है:

import Common from '@ethereumjs/common';
import VM from '@ethereumjs/vm';

const common = new Common({ chain: 'mainnet', eips: [2537] });
const vm = new VM({ common });

एक शुरुआत के रूप में हम निम्नलिखित नए ईआईपी का समर्थन करते हैं (ज्यादातर के लिए लक्षित) बर्लिन हार्डफोर्क) VM . के साथ वी 5रिहाई:


टाइपप्रति

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

बस एक शिखर जो टाइपस्क्रिप्ट को इतना महान बनाता है और हमारे पुस्तकालयों को अधिक मजबूत और सुरक्षित बनाने में मदद करता है: टाइपस्क्रिप्ट जावास्क्रिप्ट का एक सुपरसेट है और डेवलपर्स को प्रत्येक चर और कोड में उपयोग की जाने वाली प्रत्येक वस्तु के डेटा प्रकारों को जानने देता है। चर कहा जाता है पता एक स्ट्रिंग या बाइनरी बफर वस्तु? जबकि आपको जावास्क्रिप्ट में इसके बारे में कोई स्पष्ट संकेत नहीं मिलता है – जो अनुवर्ती डेवलपर गलतियों के जोखिम को अत्यधिक बढ़ाता है – टाइपस्क्रिप्ट में आपको निश्चित रूप से पता चल जाएगा।

हमारे पुस्तकालयों पर सीधे काम करने या तीसरे पक्ष की परियोजना के भीतर पुस्तकालयों का उपयोग करने में भी बहुत मज़ा आता है क्योंकि एक डेवलपर के रूप में अब आप पूरे कोड बेस में आईडीई में इस तरह के संकेत प्राप्त कर सकते हैं:

उचित टाइपस्क्रिप्ट टाइपिंग के साथ आपका विकास वातावरण अब बस इतना जानता है कि a ब्लॉकचेन चर एक है @ethereumjs/ब्लॉकचैन ऑब्जेक्ट (अपनी टिप्पणियों के साथ रुकें, गो और रस्ट डेवलपर्स 😅) और न केवल “कुछ”। तो हमारा अपना कोड क्रमशः हो जाता है आपका (टाइपस्क्रिप्ट) कोड नए पुस्तकालय संस्करणों का उपयोग करने पर बहुत अधिक पठनीय हो जाएगा।

वादे

यदि आप जावास्क्रिप्ट में बहुत अधिक नहीं हैं तो आप इस अनुभाग को छोड़ सकते हैं, लेकिन यदि आप एक जावास्क्रिप्ट डेवलपर हैं तो आप इन समाचारों पर राहत की सांस लेंगे, इसलिए हम कम से कम इसका संक्षिप्त उल्लेख करेंगे:

एक और संक्रमण को अंतिम रूप दिया गया, सभी लाइब्रेरी एपीआई अब जावास्क्रिप्ट प्रॉमिस के साथ काम कर रहे हैं। तो हमारे पूरे स्टैक में कहीं और कोई कॉलबैक नहीं।

पुस्तकालय के उपयोग में परिवर्तन होता है:

blockchain.getBlock(blockId, block => {
  console.log(block);
});

नया एपीआई उदाहरण:

const block = await blockchain.getBlock(blockId);
console.log(block);

इस पहले उदाहरण पर थोड़ा सा इंडेंटेशन पहली नजर में ज्यादा मायने नहीं रखता है। इनमें से कई पुराने स्टाइल कॉल नेस्टेड एक साथ आप गहरे और गहरे हो जाते हैं और कुछ बिंदु पर कोड अपठनीय हो जाता है। बस Google “कॉलबैक नरक” यदि आप रुचि रखते हैं कि यह कैसा दिख सकता है। वादे काफी अधिक पठनीय कोड लिखने की अनुमति देते हैं।

लाइब्रेरी रिफैक्टरिंग

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

इन पुस्तकालयों के साथ काम करना अब बहुत आसान होना चाहिए और आने वाले वर्षों के लिए एथेरियम जावास्क्रिप्ट पारिस्थितिकी तंत्र के भीतर एक ठोस और सुरक्षित आधार प्रदान करने के लिए उन्हें अच्छी तरह से तैयार किया जाना चाहिए।

आउटलुक

हमें उम्मीद है कि आपको हमारी नई रिलीज़ पसंद आएगी। यह पोस्ट केवल सबसे महत्वपूर्ण परिवर्तनों पर एक चुपके चोटी प्रदान कर सकता है और इस पोस्ट की शुरुआत में जुड़े रिलीज नोट्स के भीतर चीजों को और अधिक विस्तार से कवर किया गया है। हम अपने पर आपकी प्रतिक्रिया सुनकर खुश हैं कलह सर्वर या हमारा नया @EFJavaScript ट्विटर खाता।

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

अभी के लिए हम कामना करते हैं कि हर कोई वर्ष के एक मननशील अंत के साथ एक रोमांचक बीकनचैन लॉन्च दिवस (सप्ताह) के पूरक हो! मैं

ईएफ जावास्क्रिप्ट टीम





Source link

Leave A Reply

Your email address will not be published.

Shares