نحوه نوشتن قرارداد هوشمند در پایتون در شبکه آنتولوژی قسمت 2: Storage API

نحوه نوشتن قرارداد هوشمند در پایتون در شبکه آنتولوژی قسمت 2: Storage API

این دومین بخش از مجموعه مقالات آموزشی ایجاد قراردادهای هوشمند در پایتون در شبکه بلاک چین آنتولوژی است. در مقاله قبلی با آن آشنا شدیم Blockchain & Block API قرارداد هوشمند هستی شناسی

امروز در مورد نحوه استفاده از ماژول دوم بحث خواهیم کرد. Storage API. Storage API دارای پنج API مرتبط است که امکان افزودن، حذف و تغییر در ذخیره سازی مداوم در قراردادهای هوشمند در زنجیره بلوکی را فراهم می کند.

در زیر شرح مختصری از این پنج API آورده شده است:

نحوه نوشتن قرارداد هوشمند در پایتون در شبکه آنتولوژی قسمت 2: Storage API

بیایید نگاهی دقیق تر به نحوه استفاده از این پنج API بیندازیم.

0. بیایید یک قرارداد جدید بسازیم SmartX

1. نحوه استفاده از Storage API

GetContext و GetReadOnlyContext

GetContext и GetReadOnlyContext زمینه ای را که قرارداد هوشمند فعلی در آن اجرا می شود را بدست آورید. ارزش بازگشتی معکوس هش قرارداد هوشمند فعلی است. همانطور که از نامش پیداست، GetReadOnlyContext زمینه فقط خواندنی را می گیرد. در مثال زیر، مقدار بازگشتی معکوس هش قرارداد است که در گوشه سمت راست بالا نمایش داده شده است.

نحوه نوشتن قرارداد هوشمند در پایتون در شبکه آنتولوژی قسمت 2: Storage API

قرار دادن

تابع قرار دادن وظیفه ذخیره سازی داده ها در بلاک چین را در قالب یک دیکشنری بر عهده دارد. همانطور که نشان داده شده است، قرار دادن سه پارامتر می گیرد GetContext متن قرارداد هوشمند در حال اجرا را در نظر می گیرد، کلید مقدار کلیدی است که برای ذخیره داده ها لازم است، و ارزش، ارزش داده هایی است که باید ذخیره شوند. توجه داشته باشید که اگر مقدار کلید از قبل در فروشگاه باشد، تابع مقدار مربوطه خود را به روز می کند.

نحوه نوشتن قرارداد هوشمند در پایتون در شبکه آنتولوژی قسمت 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

گرفتن

تابع گرفتن مسئول خواندن داده ها در بلاک چین فعلی از طریق مقدار کلید است. در مثال زیر، می‌توانید مقدار کلید را در پنل گزینه‌ها در سمت راست برای اجرای عملکرد پر کنید و داده‌های مربوط به مقدار کلید در بلاک چین را بخوانید.

نحوه نوشتن قرارداد هوشمند در پایتون در شبکه آنتولوژی قسمت 2: Storage API

حذف

تابع حذف مسئول حذف داده ها در زنجیره بلوکی از طریق مقدار کلید است. در مثال زیر، می‌توانید مقدار کلید تابع را در پنل گزینه‌های سمت راست پر کنید و داده‌های مربوط به مقدار کلید در بلاک چین را حذف کنید.

نحوه نوشتن قرارداد هوشمند در پایتون در شبکه آنتولوژی قسمت 2: Storage API

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 ترجمه شده است. گریه کردن

آیا شما یک ارتقاء دهنده هستید؟ به جامعه فناوری ما بپیوندید در اختلاف. همچنین، نگاهی به مرکز توسعه دهندگان هستی شناسی، شما می توانید ابزارها، اسناد و مدارک بیشتری را در آنجا پیدا کنید.

وظایف را برای توسعه دهندگان باز کنید. کار را کامل کنید و جایزه بگیرید.

درخواست دادن برای برنامه استعدادشناسی هستی شناسی برای دانش آموزان

هستیشناسی

وب سایت هستی شناسی - GitHub - اختلاف - تلگرام روسی - توییتر - ق

منبع: www.habr.com

اضافه کردن نظر