Как да напишете смарт-контракт на Python в мрежата Ontology. Част 2: Storage API

Как да напишете смарт-контракт на Python в мрежата Ontology. Част 2: Storage API

Това е втората част от серията обучителни статии за създаване на смарт-контракти на Python в блокчейн мрежата Ontology. В предишната статия се запознахме с Blockchain & Block API смарт-контракта Ontology.

Днес ще обсъдим как да използваме втория модул— Storage API. Storage API разполага с пет свързани API, които позволяват добавяне, изтриване и промени в постоянното хранилище в смарт-контрактите на блокчейн.

По-долу е кратко описание на тези пет API:

Как да напишете смарт-контракт на Python в мрежата Ontology. Част 2: Storage API

Нека да разгледаме по-подробно как да използваме тези пет API.

0. Да създадем нов контракт SmartX

1. Как да използваме Storage API

GetContext & GetReadOnlyContext

GetContext и GetReadOnlyContext получават контекст, в който се изпълнява текущият смарт-контракт. Return value е обратния на текущия хеш на смарт-контракта. Както подсказва името, GetReadOnlyContext взема контекста в режим само за четене. В следващия пример return value е обратния хеш на контракта, показан в горния десен ъгъл.

Как да напишете смарт-контракт на Python в мрежата Ontology. Част 2: Storage API

Put

Функция Put е отговорно за съхраняването на данни в блокчейна под формата на речник. Както е показано, Put приема три параметъра. GetContext взема контекста на текущо изпълняващия се смарт-контракт, key— това е стойността на ключа, необходима за съхраняване на данните, а value— това е стойността на данните, които трябва да се запазят. Обърнете внимание, че ако стойността на ключа вече е в хранилището, функцията ще актуализира съответната стойност.

Как да напишете смарт-контракт на Python в мрежата Ontology. Част 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Get

Функция Get е отговорна за прочитането на данни в текущия блокчейн чрез стойността на ключа. В следващия пример можете да попълните стойността на ключа в панела с параметри вдясно, за да изпълните функцията и да прочетете данните, съответстващи на стойността на ключа в блокчейна.

Как да напишете смарт-контракт на Python в мрежата Ontology. Част 2: Storage API

Delete

Функция Delete е отговорна за изтриването на данни в блокчейна чрез стойността на ключа. В следващия пример можете да попълните стойността на ключа, за да изпълните функцията в панела с параметри вдясно и да изтриете данните, съответстващи на стойността на ключа в блокчейна.

Как да напишете смарт-контракт на Python в мрежата Ontology. Част 2: Storage API

2. Примерен код за Storage API

Следният код предоставя детален пример за използване на петте API: GetContext, Get, Put, Delete и GetReadOnlyContext. Можете да опитате да стартирате тези API в SmartX.

от ontology.interop.System.Storage импортиране GetContext, Get, Put, Delete, GetReadOnlyContext
от ontology.interop.System.Runtime импортиране 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. клик

Вие ли сте разработчик? Присъединете се към нашата техническа общност на Discord. Освен това, погледнете в Център за разработчици Ontology, където можете да намерите повече инструменти, документация и много други.

Отворени задачи за разработчици. Затворете задачата — получете награда.

Подайте заявление за програмата за таланти Ontology за студенти

Ontology

Уебсайт на OntologyGitHubDiscordTelegram RussianTwitter Reddit

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster