بروتوكول Ethereum هو البروتوكول السائد للتمويل اللامركزي و التطبيقات اللامركزية اليوم. تعمل جميع التطبيقات اللامركزية القائمة على blockchain وجزء كبير من الأصول الرقمية القابلة للبرمجة على Ethereum Virtual Machine (EVM) – ألة الإيثريوم الإفتراضية -، التي طورتها مجموعة فضفاضة من مطوري البرامج عديمي الخبرة. يعد EVM أيضًا صندوق تنفيذي للشفرة مبسط وصلب وبطيء. وقد أدى ذلك إلى العديد من المشكلات في Ethereum اليوم ، بما في ذلك العقود الذكية غير الآمنة ، ودعم لغة البرمجة المحدود ، والأداء البطيء ، ورسوم الغاز المرتفعة.
في هذه المقالة ، سنحلل أهمية إتاحة الفرصة للمطورين لاستخدام لغات البرمجة المختلفة وإمكانيات مشروع ParaState.
يوسع ParaState استخدام لغات البرمجة للمطورين
باستخدام WebAssembly ، سيتمكن المطورون من كتابة عقود ذكية بأكثر من 20 لغة برمجة يدعمها LLVM بالإضافة إلى Solidity. نظرًا لأن أوجه القصور في Solidity في إنتاجية المطورين وأمن التطبيقات أصبحت واضحة ، يبحث المطورون عن بدائل في لغات برمجة أكثر نضجًا مثل C / C ++ و Go و Rust وحتى Java. يعد دعم لغة البرمجة أمرًا ضروريًا أيضًا لجذب مطورين جدد إلى النظام البيئي للعقود الذكية.
كانت Solidity أول لغة برمجة يتم استخدامها في العقود الذكية. Solidity هي لغة برمجة موجهة للكائنات تم تصميمها للسماح للمطورين بإنشاء عقود ذكية. يقدم مفاهيم متوفرة في معظم لغات البرمجة الحديثة. تستخدم Solidity بنية لغة مماثلة تعتمد على لغات البرمجة الحالية لبرامج مثل JavaScript و C ++ و Python.
في الوقت الحالي ، لغة البرمجة الأكثر شيوعًا لتطوير العقود الذكية هي Rust. إنها لغة برمجة إحصائية منخفضة المستوى سريعة وفعالة في الذاكرة.
يسمح لك قابلية Rust بكتابة الحلول المستقرة اللازمة لنوع التطبيقات المبنية على blockchain. بسبب هذه السمات ، ظلت Rust واحدة من أكثر لغات البرمجة استخدامًا لمدة ست سنوات متتالية.
لغة أخرى يمكنك استخدامها لنشر العقود الذكية هي Java Script. هذه قفزة سهلة في النظام البيئي لبدء بناء التطبيقات اللامركزية المبنية على blockchain والعقود الذكية.
إذا كنت تعمل باستخدام كود Python ، فستتمكن بسهولة من استخدام كود Viper. تم استهداف Viper في جهاز Ethereum Virtual Machine (EWASM). تم تصميمه لمعالجة مشكلة الأمان الموجودة في Solidity ، لتكملة Solidity ، وليس استبدالها.
اللغة التالية لمراحل التحسين عالية المستوى التي يمكن أن تفيد كلاً من EVW و EWASM هي Yul.
يمكن أن تترجم Yul إلى خلفيات مختلفة – EVM 1.0 و EVM 1.5 و EWASM. تم تصميمه ليكون قاسمًا مشتركًا صالحًا للاستخدام في جميع الأنظمة الأساسية الثلاثة. يمكنك استخدام Yul لـ “التجميع المضمن” داخل Solidity ، وستكون هذه عملية سهلة لبناء مراحل محسن عالية المستوى.
لا سيما مع ParaState ، يسمح برامجه بترحيل المشاريع التي لا تعتمد على Ethereum إلى EVM من خلال منصة SSVM ، لذا فإن التوافق مع النظام الإيكولوجي العملاق لبلوكتشين Ethereum دون التضحية بالأداء والسرعة الممتازين اللذين توفرهما WebAssembly القياسي في الصناعة.
والأهم من ذلك ، أنه متوافق مع الإصدارات السابقة للمطورين الذين يستخدمون منصة SSVM ، مما يعني أنه يمكن تنفيذ العقود الذكية الحالية التي تم إنشاؤها في Solidity على شبكة Ethereum دون أي تغيير. بدلاً من القلق بشأن لغات برمجة معينة ، يمكن استخدامها جميعًا مع ParaState ، والتي تضمن التوافق في لغات البرمجة الأكثر شيوعًا. من خلال عمليات الدمج المعتمدة هذه ، يمكن مزامنة مطوري مشاريع blockchain المختلفة دون التعامل مع العقود المختلفة ، وبالتالي توفير الوقت والجهد والكفاءة.
حل WasmEdge في ParaState
WebAssembly (اختصار Wasm) هو تنسيق تعليمات ثنائي لجهاز ظاهري قائم على المكدس. تم تصميم Wasm كهدف تجميع محمول للغات البرمجة ، مما يتيح النشر على الويب لتطبيقات العميل والخادم. هذه الطريقة الجديدة التي روج لها اتحاد شبكة الويب العالمية (W3C) جاءت لتحل محل استخدام JavaScript ، وهو استخدام بطيء نسبيًا.
يعد WasmEdge بديلاً أفضل لحاويات Linux للتطبيقات المعبأة في حاويات على الحافة. إنه يوفر صناديق حماية آمنة قائمة على القدرات ، ويقوم بافتراض غير معقول للغاية حول خدمات نظام التشغيل الأساسية ، وفي نفس الوقت يدعم لغات برمجة متعددة في الواجهة الأمامية. إلى جانب Linux و macOS و Windows ، يمكن تشغيل WasmEdge على نظام RTOS مثل نظام التشغيل seL4 الخاص بمؤسسة Linux Foundation.
تم تصميم WebAssembly للحفاظ على طبيعة الويب التي لا تحتوي على إصدارات والتي تم اختبارها والمتوافقة مع الإصدارات السابقة. ستتمكن وحدات WebAssembly من الاتصال بالدخول والخروج من سياق JavaScript والوصول إلى وظائف المستعرض من خلال نفس واجهات برمجة تطبيقات الويب التي يمكن الوصول إليها من JavaScript. يدعم WebAssembly أيضًا عمليات التضمين غير المرتبطة بالويب.
يعرّف WebAssembly تنسيق النص الذي سيتم عرضه عند عرض المطورين لمصدر وحدة WebAssembly في أي أداة مطور. أيضًا ، يتمثل الهدف المحدد لتنسيق النص في السماح للمطورين بكتابة وحدات WebAssembly يدويًا للاختبار ، والتجريب ، والتحسين ، والتعلم ، ولأغراض التدريس. في الواقع ، من خلال إسقاط جميع الإكراهات التي تتطلبها عملية التحقق من صحة asm.js ، يجب أن يكون تنسيق نص WebAssembly أكثر طبيعية في القراءة والكتابة من asm.js. خارج المتصفح ، ستتوفر أيضًا أدوات سطر الأوامر والأدوات عبر الإنترنت التي تحول النص والثنائي بسهولة. بالإضافة إلى ذلك ، يتم أيضًا اعتبار نموذج قابل للتطوير من خرائط المصدر كجزء من قصة أدوات WebAssembly.
يوفر ParaState للمطورين القدرة على نشر التطبقات اللامركزية أكثر استقرارًا وقابلية للتطوير لمشاريع blockchain للأجيال القادمة.