आर्बिट्रम के हालिया अपडेट में स्टाइलस वीएम अपग्रेड की सुविधा है, जिसमें कई संवर्द्धन शामिल हैं:
ये सुधार WASM को एकीकृत करने से उत्पन्न हुए हैं, जो क्लाउड-नेटिव वातावरण में अपने कई लाभों के लिए प्रसिद्ध है। WASM की भूमिका पर अधिक विवरण अगले अनुभागों में शामिल किया जाएगा।
आर्बिट्रम ने WASM को अपनी श्रृंखला में पेश किया है, लेकिन ऐसा करने के लिए यह उद्घाटन मंच नहीं है। पोलकाडॉट ने पहले WASM स्मार्ट अनुबंधों के निर्माण की अनुमति दी थी। यह इसके लिए दो भाषाएँ प्रदान करता है: एक एम्बेडेड डीएसएल के समान एक असेंबली स्क्रिप्ट और एक रस्ट-प्रेरित भाषा जिसे स्याही कहा जाता है!
इसी तरह, कॉसमॉस अपने स्मार्ट अनुबंध निष्पादन के लिए कॉसमॉस का उपयोग करता है। डेवलपर्स यहां रस्ट का उपयोग करके स्मार्ट अनुबंध तैयार कर सकते हैं।
WASM के लिए ब्लॉकचेन की एफ़िनिटी की खोज करने से पहले, आइए WASM को चुनने के लिए कॉसमॉस और पोलकाडॉट के तर्क की समीक्षा करें।
कॉसमॉस इन फायदों के लिए WASM का प्रचार करता है:
पोलकाडॉट का WASM रनटाइम निम्नलिखित विशेषताएं प्रदर्शित करता है:
पोलकाडॉट, कॉसमॉस और आर्बिट्रम कई WASM-प्रेरित लाभ साझा करते हैं। हालाँकि, आर्बिट्रम की विशिष्ट पेशकशें हैं जिन पर हम बाद में कॉस्मॉस विशिष्टताओं के साथ चर्चा करेंगे।
आइए देखें कि WASM क्या है और इसके पीछे की प्रेरणाएँ क्या हैं।
WebAssembly (WASM) एक बाइनरी अनुदेश प्रारूप है। यह कोड को मूल अनुप्रयोगों, विशेष रूप से वेब ब्राउज़र के भीतर तुलनीय गति से निष्पादित करने में सक्षम बनाता है। सी और रस्ट जैसी भाषाओं के संकलन लक्ष्य के रूप में, इसे गति, दक्षता और सुरक्षा के लिए अनुकूलित किया गया है। WASM वेब प्रदर्शन में उल्लेखनीय रूप से सुधार करता है और वेब कार्यक्षमताओं का विस्तार करता है।
WASM वेब से निकटता से जुड़ा हुआ है, क्योंकि यह ब्राउज़र जैसे जावास्क्रिप्ट वातावरण में काम करता है। इन परिवेशों में, डेवलपर्स के पास WASM API तक पूर्ण पहुंच के साथ-साथ संपूर्ण वेब API समर्थन भी है। यह नियंत्रण डेवलपर्स को वेब इंटरैक्शन को बेहतर बनाने की अनुमति देता है।
WASM की अवधारणा इसे कहीं भी चलाने के लिए एक बार कोड लिखने के आदर्श के इर्द-गिर्द घूमती है।
2016 में, प्रोग्रामों ने अक्सर डोमेन विशिष्ट भाषाओं (डीएसएल) के माध्यम से नई सुविधाएँ पेश कीं। डीएसएल बनाने में रखरखाव, दक्षता और सुरक्षा को संतुलित करना शामिल है। उद्योग ने इन पहलुओं से समझौता किए बिना कई सर्वरों पर फ़ंक्शन तैनात करने का एक तरीका खोजा।
विभिन्न समाधानों की जाँच की गई, प्रत्येक की अपनी चुनौतियाँ थीं:
WASM एक समाधान के रूप में उभरा। WASM कंपाइलर्स का विकास शुरू हुआ, और 2018 तक, विभिन्न आर्किटेक्चर और उपकरणों में सार्वभौमिक कोड संगतता की अवधारणा का विस्तार किया गया। जावा के विपरीत, लक्ष्य सुरक्षा से समझौता करना नहीं था।
2019 में, क्रॉस-लैंग्वेज इंटरऑपरेबिलिटी के लिए WASM मॉड्यूल को उन्नत करते हुए, घटक मॉडल पेश किया गया था। उदाहरण के लिए, इस नवाचार ने विभिन्न भाषाओं में लागू एक सार्वभौमिक HTTP लाइब्रेरी के निर्माण को सक्षम बनाया, जो जटिल मुद्दों को नवीन रूप से संबोधित करता है।
WASM प्रभावशाली विशेषताओं की एक श्रृंखला का दावा करता है:
WASM समुदाय सक्रिय रूप से विभिन्न प्रोग्रामिंग भाषाओं में एकीकरण और प्रदर्शन को बढ़ा रहा है।
WASM की क्षमता की खोज और ब्लॉकचेन में इसका उपयोग हमें आर्बिट्रम स्टाइलस की सीमाओं की ओर वापस ले जाता है।
स्टाइलस कैसे संचालित होता है इसका सरलीकृत विवरण यहां दिया गया है:
ArbWasm
प्रीकंपाइल के compileProgram
विधि के माध्यम से, बाइटकोड सुरक्षा, गैस मीटरिंग के लिए उपकरण से गुजरता है, और सत्यापनकर्ता के हार्डवेयर के लिए तैयार किए गए मूल कोड में संकलित किया जाता है। प्रदर्शन और सुरक्षा बढ़ाने के लिए यह कदम महत्वपूर्ण है।
प्रतीत होता है कि अतिरिक्त तीसरा चरण, वास्तव में, महत्वपूर्ण है। WASM कोड को मूल मशीन कोड में परिवर्तित करने से निष्पादन गति तेज हो जाती है। इसके अलावा, यह अतिरिक्त संकलन चरण "संकलन बम" को रोकने में मदद करता है।
"संकलन बम" दुर्भावनापूर्ण कोड है जिसे संकलन के दौरान सिस्टम संसाधनों को ख़त्म करने, संभावित रूप से कंपाइलर को क्रैश करने या रोकने के लिए डिज़ाइन किया गया है। यह सॉफ़्टवेयर विकास प्रक्रिया में बाधा डालने के उद्देश्य से सेवा से इनकार करने वाले हमले के रूप में कार्य करता है।
स्टाइलस ने C++ और रस्ट को शामिल करने के लिए आर्बिट्रम के डेवलपर समुदाय का विस्तार किया है। हालाँकि, इसमें अभी भी आज के सबसे प्रचलित डेवलपर समुदायों को शामिल करना बाकी है। यह ब्राउज़र में स्मार्ट अनुबंध निष्पादन की सुविधा देता है लेकिन अभी तक जावास्क्रिप्ट और पायथन का समर्थन नहीं करता है।
प्रारंभिक चरण में ऐसी परियोजनाएं हैं जो पायथन और जावास्क्रिप्ट को WASM से जोड़ने का प्रयास कर रही हैं। लेकिन, कचरा संग्रहण और प्रदर्शन संबंधी चिंताओं की जटिलताओं के कारण ये व्यापक रूप से अपनाने के लिए तैयार नहीं हैं।
स्टाइलस वर्तमान में अपने एसडीके के माध्यम से सी/सी++ और रस्ट का समर्थन करता है। ये एसडीके संबंधित भाषाओं के टूल के साथ संगत हैं। वे देशी क्रिप्टोग्राफी जैसे तृतीय-पक्ष पुस्तकालयों के एकीकरण की भी अनुमति देते हैं। मुख्य बाधा इन पुस्तकालयों से जुड़ी गैस लागत है।
रस्ट एसडीके अपने शुरुआती चरण में है, इसमें कुछ कार्यात्मकताओं का अभाव है। सी एसडीके एबीआई के साथ निर्यात कार्यों का समर्थन नहीं करता है। इसके अतिरिक्त, कोई भी एसडीके संशोधक के उपयोग का समर्थन नहीं करता है।
अभी तक, स्टाइलस के पास स्थानीय परीक्षण वातावरण नहीं है। डेवलपर्स को एसडीके के भीतर परीक्षण करने के लिए प्रोत्साहित किया जाता है। स्टाइलस पर स्मार्ट कॉन्ट्रैक्ट चलाने के लिए टेस्टनेट एकमात्र विकल्प है। हालाँकि, टेस्टनेट ने अभी तक स्मार्ट अनुबंध सत्यापन लागू नहीं किया है।
विभिन्न ईआरसी टोकन और यूनिस्वैप वी2 जैसे प्लेटफॉर्म को स्टाइलस में पोर्ट करने का काम चल रहा है।
डोमेन-विशिष्ट भाषा (डीएसएल), एम्बेडेड डीएसएल (ईडीएसएल), या सामान्य प्रोग्रामिंग भाषा के बीच चयन करना चुनौतीपूर्ण है। डेवलपर्स को नियंत्रण के लिए "धातु के करीब" काम करने के लाभों को उच्च-स्तरीय अमूर्त द्वारा प्रदान की जाने वाली उपयोग की आसानी के मुकाबले तौलना चाहिए, जो लचीलेपन को सीमित कर सकता है।
एक नया डीएसएल बनाने के लिए इसकी टूलचेन और पारिस्थितिकी तंत्र को विकसित करने के लिए समय की आवश्यकता होती है। एक सामान्य प्रोग्रामिंग भाषा के सबसेट के रूप में एक ईडीएसएल, समान शब्दार्थ और वाक्यविन्यास को बनाए रखता है। यह डेवलपर्स को मौजूदा भाषाओं और टूल का उपयोग करने की अनुमति देता है, जो सीखने की प्रक्रिया को सरल बना सकता है। एक ईडीएसएल सामान्य प्रयोजन कोड के साथ बेहतर इंटरऑपरेबिलिटी भी प्रदान करता है। उदाहरण के लिए, जावास्क्रिप्ट या पायथन के लिए एक ईडीएसएल सबसे बड़े डेवलपर समुदायों को शामिल करने के लिए रणनीतिक होगा।
सामान्य प्रोग्रामिंग भाषाओं को विकास के लिए एसडीके के उपयोग की आवश्यकता होती है। यह टूलींग की परतें जोड़ता है, वाचालता बढ़ाता है, और अभिव्यंजकता कम करता है। इसके परिणामस्वरूप लंबी एपीआई कॉल और जटिल ऑब्जेक्ट संचालन भी हो सकता है।
सही भाषा चुनना और ईडीएसएल तैयार करना एक आदर्श समझौता हो सकता है। यह लोकप्रिय समुदायों से डेवलपर्स को आकर्षित कर सकता है और उपयोगकर्ता के अनुकूल उपकरण प्रदान कर सकता है। वर्तमान डेटा से पता चलता है कि एथेरियम समुदाय क्रिप्टो डेवलपर्स के बीच सबसे बड़ा बना हुआ है। हालाँकि, पोलकाडॉट, कॉसमॉस और सोलाना जैसे पारिस्थितिकी तंत्र, जो स्मार्ट अनुबंधों के लिए रस्ट का उपयोग करते हैं, भी बड़ी संख्या में डेवलपर्स को आकर्षित कर रहे हैं और तेजी से विकास का अनुभव कर रहे हैं।
WASM में निष्पादन गति को महत्वपूर्ण रूप से बढ़ाने और बंडल आकार को कम करने की क्षमता है। हालाँकि स्टाइलस को मेननेट पर तैनात नहीं किया गया है, अन्य नेटवर्क के बेंचमार्क एक उपयोगी संदर्भ के रूप में काम करते हैं।
ये बेंचमार्क दर्शाते हैं कि निष्पादन समय को 4 से 8 गुना तक कम किया जा सकता है, और संकलित आकार को आधा किया जा सकता है।
स्टाइलस अनुबंध आकार पर एक सीमा लगाता है, जो लगभग 128KB असम्पीडित है। यह बाधा बहुत बड़े स्मार्ट अनुबंधों को सॉलिडिटी जैसी भाषाओं से स्टाइलस में स्थानांतरित करना चुनौतीपूर्ण बना देती है। यह सीमा स्टाइलस कोडबेस में स्पष्ट है:
// arbos/programs/programs.go const MaxWasmSize = 128 * 1024 // Maximum WASM size allowed const initialFreePages = 2 // Number of initial free pages const initialPageGas = 1000 // Gas cost for an initial page const initialPageRamp = 620674314 // Adjusts for a target size cost const initialPageLimit = 128 // Maximum number of pages allowed const initialInkPrice = 10000 // Ink price per EVM gas const initialCallScalar = 8 // Scalar for call cost
यह ध्यान रखना महत्वपूर्ण है कि WASM को शुरू करने और बंद करने के लिए कुछ ओवरहेड खर्च करना पड़ता है। बहुत हल्के संचालन के लिए, ईवीएम WASM की तुलना में अधिक लागत प्रभावी हो सकता है।
ईवीएम और डब्ल्यूएएसएम समान स्टोरेज स्लॉट और स्टेट ट्री का उपयोग करते हैं। स्टाइलस WASM के भीतर ईवीएम एपीआई को लागू करके ईवीएम के साथ अंतरसंचालनीयता प्राप्त करता है। यह एकीकरण WASM में व्यापक रूप से अपनाए गए होस्ट I/O मोड का उपयोग करता है। WASM में समर्थित ईवीएम एपीआई की पूरी सूची नीचे दी गई है, जो व्यापक अंतरसंचालनीयता समर्थन को दर्शाती है।
read_args write_result storage_load_bytes32 storage_store_bytes32 call_contract delegate_call_contract static_call_contract do_call create1 create2 do_create read_return_data return_data_size emit_log account_balance account_codehash evm_gas_left evm_ink_left block_basefee block_coinbase block_gas_limit block_number block_timestamp chainid contract_address msg_reentrant msg_sender msg_value native_keccak256 tx_gas_price tx_ink_price tx_prigin memoery_grow console_log_text console_log console_tee
कस्टम प्रीकंपाइल एक अभिनव अवधारणा है। उनमें कम निष्पादन लागत पर उन्नत क्रिप्टो प्रिमिटिव को ऑन-चेन एकीकृत करने की क्षमता है। उदाहरण के लिए, ऑन-चेन मशीन लर्निंग की लागत कम करने के लिए टेंसर गणनाओं को पूर्व-संकलित किया जा सकता है। हालाँकि, वर्तमान कोडबेस में कस्टम प्रीकंपाइल कार्यक्षमता का कोई सबूत नहीं है। जबकि ईवीएम के लिए प्रीकंपाइल मौजूद हैं, उन्हें स्वैपेबल होने के लिए डिज़ाइन नहीं किया गया है।
संभावना है कि WASM की क्षमताओं का लाभ उठाते हुए ये सुविधाएँ अभी भी विकसित की जा रही हैं। यह ईवीएम को WASM-लिखित कार्यों को कॉल करने में सक्षम करेगा, जिन्हें बाद में मशीन कोड में संकलित किया जाएगा।
CosmWasm के अभिनेता मॉडल के विपरीत, जो पुनर्प्रवेश का समर्थन नहीं करता है, स्टाइलस के रस्ट एसडीके में एक वैकल्पिक सुविधा के रूप में पुनर्प्रवेश शामिल है। डिफ़ॉल्ट रूप से, यह सुविधा बंद है. डेवलपर्स के पास अपने अनुबंधों में पुनः प्रवेश सक्षम करने का विकल्प होता है।
रीएंट्रेंसी को सक्रिय करने से एपीआई प्रभावित होती है क्योंकि डेवलपर्स को यह सुनिश्चित करना होगा कि वे कॉल के दौरान स्टोरेज कैश को साफ़ करें और अन्य सुरक्षा उपायों पर विचार करें। रीएंट्रेंट कॉल से जुड़ी संभावित कमजोरियों को रोकने के लिए यह सावधानी आवश्यक है।
WASM क्लाउड-नेटिव डोमेन में लोकप्रियता हासिल कर रहा है, कई ब्लॉकचेन इसे स्मार्ट अनुबंध निष्पादन के लिए अपना रहे हैं। हालाँकि आर्बिट्रम इस एकीकरण में अग्रणी नहीं है, लेकिन इसका कार्यान्वयन अत्यधिक प्रभावशाली हो सकता है। WASM ब्लॉकचेन परिदृश्य को पूरी तरह से बदलने या ईवीएम को बदलने की स्थिति में नहीं है। हालाँकि, यह उभरते zk-रोलअप के खिलाफ आर्बिट्रम की बढ़त को बढ़ा सकता है। आर्बिट्रम का शब्द "ईवीएम+" इस परिदृश्य का उपयुक्त वर्णन करता है। ईवीएम स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म के लिए नींव तैयार करता है, और WASM आर्बिट्रम के लिए अतिरिक्त प्रदर्शन को बढ़ावा दे सकता है।