
في المنشورات التعليمية السابقة لـ Python ، قمت بتقديم عقد العقد الأنطوني في
الجزء 1: Blockchain وبلوك API و
الجزء 2: التخزين APIالجزء 3: API وقت التشغيلالجزء 4: API الأصلي ووصف كيفية استخدام العقود الذكية لنقل ONT / ONG.
اليوم سوف نتحدث عن كيفية استخدام
Upgrade API لترقية العقد الذكي. هناك 2 واجهات برمجة التطبيقات:
تدمير وترحيل .
يتم استخدامها على النحو التالي:

الآن دعنا نذهب إلى مزيد من التفاصيل حول كيفية استخدام واجهات برمجة التطبيقات هذه. قبل ذلك ، يمكنك إنشاء عقد جديد في أداة تطوير العقد الذكية لـ Ontology
SmartX واتباع الإرشادات أدناه. كالعادة ، في نهاية المقال ، سوف أرفق الرابط إلى الكود المصدري.
كيفية استخدام ترقية API
كالعادة ، تحتاج إلى استيراد الدالتين كما يلي قبل استخدامها.
from ontology.interop.Ontology.Contract import Migrate from ontology.interop.System.Contract import Destroy
تدمير API
يستخدم Destroy API لتدمير وحذف عقد ذكي على السلسلة. يوجد أدناه نموذج رمز API.
from ontology.interop.System.Contract import Destroy from ontology.interop.System.Runtime import Notify def Main(operation, args): if operation == "destroy_contract": return destroy_contract() return False def destroy_contract(): Destroy() Notify(["The contract has been destoryed"]) return True
ترحيل API
يستخدم Migrate API لترحيل العقود الذكية. سيتم استبدال العقد الحالي بالعقد الذي تم ترحيله حديثًا. سيتم أيضًا نقل البيانات المحفوظة بواسطة العقد القديم إلى العقد الجديد. سيتم حذف العقد القديم بعد الهجرة.
يرجى ملاحظة أن الأصول في العقد الذكي لن يتم ترحيلها تلقائيًا ، لذا يتعين عليك نقلها مقدمًا. خلاف ذلك ، لن تكون قادرًا على استرداد أصولك.
قائمة المعلمات الدالة Migrate كالتالي:

انظر أدناه نموذج التعليمات البرمجية لوظيفة Migrate:
from ontology.interop.Ontology.Contract import Migrate from ontology.interop.System.Runtime import Notify from ontology.libont import AddressFromVmCode def Main(operation, args): if operation == "migrate_contract": if len(args) != 7: return False avm_code = args[0] need_storage = args[1] name = args[2] version = args[3] author = args[4] email = args[5] description = args[6] return migrate_contract(avm_code, need_storage, name, version, author, email, description) return False def migrate_contract(avm_code, need_storage, name, version, author, email, description): res = Migrate(avm_code, need_storage, name, version, author, email, description) if res: Notify(["Migrate successfully"]) new_contract_hash=AddressFromVmCode(avm_code) Notify(new_contract_hash) return True else: return False
يمكنك اتباع الخطوات أدناه لمعرفة نتيجة تنفيذ نموذج التعليمات البرمجية على SmartX:1. انسخ الشفرة أعلاه والصقها في SmartX وقم بترجمتها قبل وضع المعلمات. إيلاء اهتمام خاص لمسألتين عند إدخال المعلمات:
- تأكد من عدم وجود avm_code على السلسلة ، وإلا فسيتم إرجاع خطأ ؛
- يتطلب Migrate حدًا مرتفعًا للغاز ، لذلك تحتاج إلى ضبط حد الغاز عند تشغيل الوظيفة.
2. بعد النشر ، يمكنك الحصول على تجزئة العقد الجديد من لوحة القيادة. في هذا المثال ، يكون تجزئة العقد الجديد هو be4606c4663081b70f745ed9fc64d4c3b0d9c183.

ملخص
في هذه المقالة ، قدمنا واجهة برمجة تطبيقات ترقية لـ blockchain لـ Ontology. يمكن للمطورين استخدام واجهة برمجة التطبيقات هذه لترقية العقود الذكية. يستخدم Destroy API لتدمير العقود الذكية على السلسلة و Migrate API هو لترحيل العقود الذكية. في المقالة التالية ، سوف نقدم واجهة برمجة تطبيقات Static & Dynamic لاستكشاف كيفية تنفيذ الاستدعاء الثابت والديناميكي لعقود Ontology الذكية مع Python.
العثور على البرنامج التعليمي على جيثب
هنا .
هل أنت مطور؟ تأكد من انضمامك إلى مجتمع التكنولوجيا الخاص بنا على
Discord . أيضًا ، ألق نظرة على
مركز المطور على موقعنا ، حيث يمكنك العثور على أدوات مطور البرامج والوثائق وغير ذلك الكثير.
البحث عن الأنطولوجيا في مكان آخر
موقع علم الوجودجيثب /
الشقاقبرقية
إنجليزي /
روسيتويتر /
رديت