ווי צו שרייַבן אַ קלוג קאָנטראַקט אין פּיטהאָן אויף די אָנטאָלאָגי נעץ. טייל 2: סטאָרידזש אַפּי

ווי צו שרייַבן אַ קלוג קאָנטראַקט אין פּיטהאָן אויף די אָנטאָלאָגי נעץ. טייל 2: סטאָרידזש אַפּי

Это вторая часть из серии обучающих статей о создании смарт-контрактов на Python в блокчейн сети Ontology. В предыдущей статье мы познакомились с Blockchain & Block API смарт-контракта Ontology.

Сегодня мы обсудим, как использовать второй модуль— סטאָרידזש API. Storage API имеет пять связанных API, которые позволяют добавление, удаление и изменения в постоянном хранилище в смарт-контрактах на блокчейне.

Ниже краткое описание данных пяти API:

ווי צו שרייַבן אַ קלוג קאָנטראַקט אין פּיטהאָן אויף די אָנטאָלאָגי נעץ. טייל 2: סטאָרידזש אַפּי

Давайте более подробно разберём, как использовать эти пять API.

0. Создадим новый контракт סמאַרטקס

1. Как использовать Storage API

GetContext & GetReadOnlyContext

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

ווי צו שרייַבן אַ קלוג קאָנטראַקט אין פּיטהאָן אויף די אָנטאָלאָגי נעץ. טייל 2: סטאָרידזש אַפּי

שטעלן

פונקציאָנירן שטעלן является ответственной за хранение данных в блокчейне в форме словаря. Как показано, שטעלן принимает три параметра. GetContext берёт контекст текущего выполняемого смарт- контракта, key— это значение ключа, которое необходимо, чтобы сохранить данные, а value— это значением данных, которые необходимо сохранить. Обратите внимание, если значение ключа уже находится в хранилище, то функция обновит его соответствующее значение.

ווי צו שרייַבן אַ קלוג קאָנטראַקט אין פּיטהאָן אויף די אָנטאָלאָגי נעץ. טייל 2: סטאָרידזש אַפּיhashrate-and-shares.ru/images/obzorontology/python/functionput.png

באַקומען

פונקציאָנירן באַקומען является ответственной за чтение данных в текущем блокчейне посредством значения ключа. В нижеприведённом примере Вы можете заполнить значение ключа в панели параметров справа, чтобы выполнить функцию и считать данные, соответствующие значению ключа в блокчейне.

ווי צו שרייַבן אַ קלוג קאָנטראַקט אין פּיטהאָן אויף די אָנטאָלאָגי נעץ. טייל 2: סטאָרידזש אַפּי

ויסמעקן

פונקציאָנירן ויסמעקן является ответственной за удаление данных в блокчейне посредством значения ключа. В нижеприведённом примере Вы можете заполнить значение ключа для выполнения функции в панели параметров справа и удалить данные, соответствующие значению ключа в блокчейне.

ווי צו שרייַבן אַ קלוג קאָנטראַקט אין פּיטהאָן אויף די אָנטאָלאָגי נעץ. טייל 2: סטאָרידזש אַפּי

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

Нижеприведённый код даёт детальный пример использования пяти API: GetContext, Get, Put, Delete и GetReadOnlyContext. Вы можете попробовать запустить данные API в סמאַרטקס.

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, разработчики обязаны уделять особое внимание безопасности при написании кода, который связан с хранилищем. Вы можете найти полное руководство на нашем גיטהוב דאָ.

В следующей статье мы обсудим как использовать Runtime API.

דער אַרטיקל איז איבערגעזעצט דורך די רעדאקציע פון ​​Hashrate&Shares ספּאַסיפיקלי פֿאַר אָנטאָלאָגי רוסלאַנד. וויינען

זענט איר אַ דעוועלאָפּער? פאַרבינדן אונדזער טעק קהל אין דיסקאָרד. אויך, נעמען אַ קוק בייַ דעוועלאָפּער צענטער Ontology, там можно найти больше инструментов, документацию и многое другое.

Открытые задачи для разработчиков. Закрой задачу — получи вознаграждение.

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

אָנטאָלאָלאָגי

אָנטאָלאָגי וועבזייַטל - גיטהוב - דיסקאָרד - טעלעגראַם רוסיש - טוויטטער - רעדדיט

מקור: www.habr.com

לייגן אַ באַמערקונג