ProHoster > وبلاگ > اداره > نحوه نوشتن قرارداد هوشمند در پایتون در شبکه آنتولوژی قسمت 2: Storage API
نحوه نوشتن قرارداد هوشمند در پایتون در شبکه آنتولوژی قسمت 2: Storage API
این دومین بخش از مجموعه مقالات آموزشی ایجاد قراردادهای هوشمند در پایتون در شبکه بلاک چین آنتولوژی است. در مقاله قبلی با آن آشنا شدیم Blockchain & Block API قرارداد هوشمند هستی شناسی
امروز در مورد نحوه استفاده از ماژول دوم بحث خواهیم کرد. Storage API. Storage API دارای پنج API مرتبط است که امکان افزودن، حذف و تغییر در ذخیره سازی مداوم در قراردادهای هوشمند در زنجیره بلوکی را فراهم می کند.
در زیر شرح مختصری از این پنج API آورده شده است:
بیایید نگاهی دقیق تر به نحوه استفاده از این پنج API بیندازیم.
GetContext и GetReadOnlyContext زمینه ای را که قرارداد هوشمند فعلی در آن اجرا می شود را بدست آورید. ارزش بازگشتی معکوس هش قرارداد هوشمند فعلی است. همانطور که از نامش پیداست، GetReadOnlyContext زمینه فقط خواندنی را می گیرد. در مثال زیر، مقدار بازگشتی معکوس هش قرارداد است که در گوشه سمت راست بالا نمایش داده شده است.
قرار دادن
تابع قرار دادن وظیفه ذخیره سازی داده ها در بلاک چین را در قالب یک دیکشنری بر عهده دارد. همانطور که نشان داده شده است، قرار دادن سه پارامتر می گیرد GetContext متن قرارداد هوشمند در حال اجرا را در نظر می گیرد، کلید مقدار کلیدی است که برای ذخیره داده ها لازم است، و ارزش، ارزش داده هایی است که باید ذخیره شوند. توجه داشته باشید که اگر مقدار کلید از قبل در فروشگاه باشد، تابع مقدار مربوطه خود را به روز می کند.
تابع گرفتن مسئول خواندن داده ها در بلاک چین فعلی از طریق مقدار کلید است. در مثال زیر، میتوانید مقدار کلید را در پنل گزینهها در سمت راست برای اجرای عملکرد پر کنید و دادههای مربوط به مقدار کلید در بلاک چین را بخوانید.
حذف
تابع حذف مسئول حذف داده ها در زنجیره بلوکی از طریق مقدار کلید است. در مثال زیر، میتوانید مقدار کلید تابع را در پنل گزینههای سمت راست پر کنید و دادههای مربوط به مقدار کلید در بلاک چین را حذف کنید.
2. نمونه کد API ذخیره سازی
کد زیر مثال مفصلی از استفاده از پنج 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)
پس از کلمه
ذخیره سازی بلاک چین هسته کل سیستم بلاک چین است. استفاده از Ontology Storage API آسان و سازگار با توسعه دهندگان است.
از سوی دیگر، فضای ذخیره سازی کانون حملات هکرها است، مانند تهدید امنیتی که در یکی از مقالات قبلی به آن اشاره کردیم. حمله تزریق ذخیره سازیتوسعه دهندگان باید هنگام نوشتن کد مربوط به ذخیره سازی به امنیت توجه ویژه ای داشته باشند. شما می توانید راهنمای کامل را در ما پیدا کنید GitHub اینجا.
در مقاله بعدی به نحوه استفاده خواهیم پرداخت Runtime API.
این مقاله توسط ویراستاران Hashrate&Shares مخصوصاً برای OntologyRussia ترجمه شده است. گریه کردن
آیا شما یک ارتقاء دهنده هستید؟ به جامعه فناوری ما بپیوندید در اختلاف. همچنین، نگاهی به مرکز توسعه دهندگان هستی شناسی، شما می توانید ابزارها، اسناد و مدارک بیشتری را در آنجا پیدا کنید.