
هذا هو الجزء الثاني من سلسلة من الدروس حول إنشاء عقود ذكية في Python على شبكة Ontchain blockchain. في مقال سابق ، التقينا
بواجهة برمجة تطبيقات العقد الذكي لـ Ontology
Blockchain & Block API .
سنناقش اليوم كيفية استخدام الوحدة الثانية -
واجهة برمجة تطبيقات التخزين . يحتوي واجهة برمجة تطبيقات التخزين على خمسة واجهات برمجة التطبيقات ذات الصلة التي تسمح بإضافة وحذف وتعديل التخزين المستمر في العقود الذكية على blockchain.
فيما يلي وصف موجز لواجهة برمجة التطبيقات الخمسة التالية:

دعونا نلقي نظرة فاحصة على كيفية استخدام واجهات برمجة التطبيقات الخمسة هذه.
0. إنشاء عقد
SmartX جديد
1. كيفية استخدام API التخزين
GetContext و GetReadOnlyContext
يحصل
GetContext و
GetReadOnlyContext على السياق الذي يتم فيه تنفيذ العقد الذكي الحالي. قيمة الإرجاع هي عكس التجزئة الحالية للعقد الذكي. كما يوحي الاسم ، يأخذ
GetReadOnlyContext سياق وضع للقراءة فقط. في المثال أدناه ، القيمة المعادة هي عكس تجزئة العقد المعروضة في الزاوية اليمنى العليا.

وضع
وظيفة
Put هي المسؤولة عن تخزين البيانات على blockchain في شكل قاموس. كما هو موضح ، يأخذ
وضع ثلاثة معايير. يأخذ
GetContext سياق العقد الذكي الجاري حاليًا ، والمفتاح هو القيمة الأساسية اللازمة لحفظ البيانات ، والقيمة هي قيمة البيانات التي يجب حفظها. يرجى ملاحظة أنه إذا كانت القيمة الأساسية موجودة بالفعل في المستودع ، فستقوم الوظيفة بتحديث قيمتها المقابلة.
hashrate-and-shares.ru/images/obzorontology/python/functionput.pngالحصول على
وظيفة
Get هي المسؤولة عن قراءة البيانات في blockchain الحالية عن طريق قيمة المفتاح. في المثال أدناه ، يمكنك ملء قيمة المفتاح في لوحة المعلمات على اليمين لتنفيذ الوظيفة وقراءة البيانات المقابلة لقيمة المفتاح في blockchain.

حذف
وظيفة
الحذف هي المسؤولة عن حذف البيانات في blockchain عن طريق قيمة المفتاح. في المثال أدناه ، يمكنك ملء قيمة المفتاح لتنفيذ الوظيفة في لوحة المعلمات على اليمين وحذف البيانات المقابلة لقيمة المفتاح في blockchain.

2. عينة كود التخزين API
يعطي الرمز أدناه مثالاً مفصلاً لاستخدام واجهات برمجة التطبيقات الخمسة: GetContext و Get و Put و Delete و GetReadOnlyContext. يمكنك محاولة تشغيل بيانات API في
SmartX .
from ontology.interop.System.Storage import GetContext, Get, Put, Delete, GetReadOnlyContext from ontology.interop.System.Runtime import Notify def Main(operation,args): if operation == 'get_sc': return get_sc() if operation == 'get_read_only_sc': return get_read_only_sc() if operation == 'get_data': key=args[0] return get_data(key) if operation == 'save_data': key=args[0] value=args[1] return save_data(key, value) if operation == 'delete_data': key=args[0] return delete_data(key) return False def get_sc(): return GetContext() def get_read_only_sc(): return GetReadOnlyContext() def get_data(key): sc=GetContext() data=Get(sc,key) return data def save_data(key, value): sc=GetContext() Put(sc,key,value) def delete_data(key): sc=GetContext() Delete(sc,key)
خاتمة
تخزين Blockchain هو جوهر نظام blockchain بأكمله. واجهة برمجة تطبيقات التخزين Ontology سهلة الاستخدام ومريحة للمطورين.
من ناحية أخرى ، تركز هجمات المتسللين على التخزين ، على سبيل المثال ، الخطر الأمني الذي ذكرناه في أحد المقالات السابقة ،
هجوم حقن التخزين ، يجب على المطورين إيلاء اهتمام خاص للأمان عند كتابة التعليمات البرمجية المرتبطة بالتخزين. يمكنك العثور على الدليل الكامل على
جيثب لدينا هنا.
في المقالة التالية ، سنناقش كيفية استخدام
واجهة برمجة تطبيقات وقت التشغيل .
تمت ترجمة المقال بواسطة Hashrate & Shares خصيصًا لـ OntologyRussia. انقر
هل أنت مطور؟ انضم إلى مجتمع التكنولوجيا الخاص بنا على
Discord . تحقق أيضًا
من مركز Ontology
Developer Center لمزيد من الأدوات والوثائق والمزيد.
المهام المفتوحة للمطورين. أغلق المهمة - احصل على مكافأة.
التقديم لبرنامج موهبة الطالب الأنطولوجيا
علم الوجود
موقع الأنطولوجيا -
جيثب -
ديسفر -
برقية روسية -
تويتر -
رديت