تعد Ethereum الآن واحدة من المنصات الأكثر شعبية لإنشاء تطبيقات لامركزية ، والتي يتم تطويرها بنشاط. أحد ابتكارات Zeppelin التي سنجربها اليوم بأيدينا. وبالنسبة لأولئك الموجودين في "الخزان" ، فإن Zeppelin هي شركة تعمل على تطوير والتحقق من أمان العقود الذكية. مكتبة OpenZeppelin الذكية هي أفضل منتج معروف لها.
اتضح أن أدوات تطوير Solidity لا تزال تتطور ، وأحيانًا لا تسمح للمطورين باستخدام القوة الكاملة لتكنولوجيا العقود الذكية. على سبيل المثال ، "المكتبات القياسية" هي قيد ، حيث أنه في كل مرة يتم إعادة تحميل رمز موجود في الشبكة ، مما يؤدي إلى زيادة في تكلفة "نشر" الرمز وعدد الأخطاء المحتملة. كل هذا يؤدي إلى قيود كبيرة في إنشاء تطبيقات لامركزية كبيرة ومتعددة الوظائف.
ما هو نظام التشغيل zeppelin؟

Zeppelin OS عبارة عن منصة مفتوحة المصدر تتكون من أدوات وخدمات عبر EVM ، وهي مصممة لتطوير وإدارة التطبيقات اللامركزية.
حدد فريق Zeppelin المكونات الأربعة الأكثر أهمية ، والتي تم تنفيذ بعضها بالفعل ومتاحة للاستخدام.
- Zeppelin OS Kernel هي منصة "أساسية" محدثة ومدفوعة بالمجتمع. يتكون من مجموعة من المكتبات في blockchain يمكن للمطورين الاتصال بمشاريعهم. كان بايونير OpenZeppelin ، وهو متاح بالفعل للاستخدام.
- سيسمح برنامج Zeppelin OS Scheduler للعقود بطلب تنفيذ غير متزامن لوظيفة ، كما سيمكن أي مشارك من دفع تكاليف الغاز ، والحصول على مكافأة مقابل ذلك.
- يعد Zeppelin OS Marketplace مكونًا مهمًا للتفاعل بين العقود والتطبيقات ، وهو نوع من App Store / Google Play لسلسلة blockchain. يتيح لك استخدام خدمات أخرى لإنشاء تطبيقات أكثر تعقيدًا.
- أدوات Zeppelin OS خارج السلسلة - مجموعة من الأدوات للعمل وتحليل التطبيقات اللامركزية.
حان الوقت لتجربتها بنفسك!
أردت حقًا أن أبدأ العمل مع Zeppelin OS ، وكتابة العقد الأول وتحديثه. تحقق مما إذا كان كل شيء على ما يرام بالفعل وما إذا كان المطورون قد خدعوا.
لذلك ، بعد ترك جهاز التخزين المحدث والوكيل للمقالات المستقبلية ، سننتقل إلى الوظيفة التي تم تنفيذها بالفعل.
يمكن الاطلاع على جميع وثائق Zeppelin OS هنا . تحتاج أولاً إلى تثبيت zos:
$ npm install --global zos
الآن قم بإنشاء دليل المشروع وكل ما تحتاج إليه:
$ mkdir zostest && cd zostest $ npm init $ zos init zostest
بعد ذلك ، سيتم إنشاء جميع ملفات التكوين الضرورية ، لذا يمكنك الآن متابعة كتابة العقود. كعقد اختبار ، دعنا نكتب "مستودع متغيرات" صغير:
pragma solidity 0.4.24; import "zos-lib/contracts/migrations/Migratable.sol"; contract SimpleStorage is Migratable { uint storedData; function initialize(uint256 _x) isInitializer("SimpleStorage", "0") public { storedData = _x; } function get() public constant returns (uint) { return storedData; } }
نقوم بتجميع وإضافة عقدنا:
$ zos add SimpleStorage

قم بتشغيل شبكة الاختبار (في محطة طرفية منفصلة):
$ npx ganache-cli --port 9545
ندفع إلى شبكتنا المحلية ، أثناء إنشاء ملف تكوين جديد zos.local.json
:
$ zos push --network local

الشيء صغير ، يبقى إنشاء عقدنا المحدث ، في وقت واحد تشغيل initialize()
مع الوسيطة 88 لـ "المستودع" الخاص بنا:
$ zos create SimpleStorage --init initialize --args 88 --network local

الآن دعنا نحاول إضافة وظيفة لزيادة المتغير في "التخزين" ، على سبيل المثال ، هذا:
pragma solidity 0.4.24; import "zos-lib/contracts/migrations/Migratable.sol"; contract SimpleStorage is Migratable { uint storedData; function initialize(uint256 _x) isInitializer("SimpleStorage", "0") public { storedData = _x; } function incrementStorage(uint256 _x) public { storedData += _x; } function get() public constant returns (uint) { return storedData; } }
ثم تحتاج إلى تحديث العقد على الشبكة:
$ zos push --network local

$ zos update SimpleStorage --network local

الآن يمكنك أن ترى ما حدث. للقيام بذلك ، استخدم truffle console
:
$ npx truffle console --network=local truffle(local)> sS = SimpleStorage.at(<proxy-address>)
ويمكن عرض <proxy-address>
في zos.local.json
في العمود المقابل ، zos.local.json
مما لدينا في "المستودع" وما إذا كان يمكننا زيادة المتغير:

كل شيء يعمل بشكل جيد ، هناك العديد من الفرص لاختبار العقود. أود أن أقول إن Zeppelin OS يمكن استخدامه كأداة تطوير بالتأكيد.
ماذا فعلنا؟
لقد تحققنا من أنه مع Zeppelin OS يمكنك نشر وتحديث وتجميع واختبار العقود. يبدو أنها أداة رائعة لأولئك الذين يحبون العمل مع سطر الأوامر ، ويرتج ريمكس في المتصفح. بالإضافة إلى ذلك ، يمكنك أن توصي ببدء مقدمة إلى Solidity والعقود الذكية مع هذا المشروع بالذات.