Як напісаць смарт-кантракт на Python у сетцы Ontology. Частка 2: Storage API

Як напісаць смарт-кантракт на Python у сетцы Ontology. Частка 2: Storage API

Гэта другая частка з серыі навучальных артыкулаў аб стварэнні смарт-кантрактаў на Python у блокчейн сеткі Ontology. У папярэднім артыкуле мы пазнаёміліся з Blockchain & Block API смарт-кантракта Ontology.

Сёння мы абмяркуем, як выкарыстоўваць другі модуль- 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

Ставіць

Функцыя Ставіць з'яўляецца адказнай за захоўванне дадзеных у блокчейне ў форме слоўніка. Як паказана, Ставіць прымае тры параметры. GetContext бярэ кантэкст бягучага выкананага смарт-кантракту, key-гэта значэнне ключа, якое неабходна, каб захаваць дадзеныя, а value-гэта значэннем дадзеных, якія неабходна захаваць. Звярніце ўвагу, калі значэнне ключа ўжо знаходзіцца ў сховішчы, то функцыя абновіць яго адпаведнае значэнне.

Як напісаць смарт-кантракт на Python у сетцы Ontology. Частка 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Атрымліваць

Функцыя Атрымліваць з'яўляецца адказнай за чытанне дадзеных у бягучым блокчейне пасродкам значэння ключа. У ніжэйпрыведзеным прыкладзе Вы можаце запоўніць значэнне ключа ў панэлі параметраў справа, каб выканаць функцыю і лічыць дадзеныя, якія адпавядаюць значэнню ключа ў блокчейне.

Як напісаць смарт-кантракт на Python у сетцы Ontology. Частка 2: Storage API

Выдаляць

Функцыя Выдаляць з'яўляецца адказнай за выдаленне дадзеных у блокчейне пасродкам значэння ключа. У ніжэйпрыведзеным прыкладзе Вы можаце запоўніць значэнне ключа для выканання функцыі ў панэлі параметраў справа і выдаліць дадзеныя, якія адпавядаюць значэнню ключа ў блокчейне.

Як напісаць смарт-кантракт на Python у сетцы Ontology. Частка 2: Storage API

2. Прыклад кода Storage 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 просты ва ўжыванні і зручны для распрацоўшчыкаў.

З іншага боку, на сховішча сфакусаваныя напады хакераў, напрыклад, пагроза бяспецы, аб якой мы згадвалі ў адной з папярэдніх артыкулаў. storage injection attack, распрацоўшчыкі абавязаны надаваць асаблівую ўвагу бяспекі пры напісанні кода, які звязаны са сховішчам. Вы можаце знайсці поўнае кіраўніцтва на нашым GitHub тут.

У наступным артыкуле мы абмяркуем як выкарыстоўваць Runtime API.

Артыкул быў перакладзены рэдакцыяй Hashrate&Shares спецыяльна для OntologyRussia. клік

Вы распрацоўшчык? Далучайцеся да нашай тэхнічнай супольнасці на дысананс. Акрамя таго, зазірніце ў Цэнтр распрацоўшчыкаў Ontology, там можна знайсці больш інструментаў, дакументацыю і многае іншае.

Адкрытыя задачы для распрацоўшчыкаў. Закрый задачу - атрымай узнагароду.

Падаць заяўку на праграму талентаў Ontology для студэнтаў

Ontology

Ontology website - GitHub - дысананс - Telegram на рускай - Twitter - Reddit

Крыніца: habr.com

Дадаць каментар