Ki jan yo ekri yon kontra entelijan nan Python sou rezo a Ontology. Pati 2: Depo API

Ki jan yo ekri yon kontra entelijan nan Python sou rezo a Ontology. Pati 2: Depo API

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

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

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

Ki jan yo ekri yon kontra entelijan nan Python sou rezo a Ontology. Pati 2: Depo API

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

0. Создадим новый контракт SmartX

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

GetContext & GetReadOnlyContext

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

Ki jan yo ekri yon kontra entelijan nan Python sou rezo a Ontology. Pati 2: Depo API

Mete

Fonksyon Mete является ответственной за хранение данных в блокчейне в форме словаря. Как показано, Mete принимает три параметра. GetContext берёт контекст текущего выполняемого смарт- контракта, key— это значение ключа, которое необходимо, чтобы сохранить данные, а value— это значением данных, которые необходимо сохранить. Обратите внимание, если значение ключа уже находится в хранилище, то функция обновит его соответствующее значение.

Ki jan yo ekri yon kontra entelijan nan Python sou rezo a Ontology. Pati 2: Depo APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Jwenn

Fonksyon Jwenn является ответственной за чтение данных в текущем блокчейне посредством значения ключа. В нижеприведённом примере Вы можете заполнить значение ключа в панели параметров справа, чтобы выполнить функцию и считать данные, соответствующие значению ключа в блокчейне.

Ki jan yo ekri yon kontra entelijan nan Python sou rezo a Ontology. Pati 2: Depo API

Efase

Fonksyon Efase является ответственной за удаление данных в блокчейне посредством значения ключа. В нижеприведённом примере Вы можете заполнить значение ключа для выполнения функции в панели параметров справа и удалить данные, соответствующие значению ключа в блокчейне.

Ki jan yo ekri yon kontra entelijan nan Python sou rezo a Ontology. Pati 2: Depo 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)

Apreword

Блокчейн-хранилище является ядром всей блокчейн-системы. Ontology Storage API прост в применении и удобен для разработчиков.

С другой стороны, на хранилище сфокусированы атаки хакеров, например, угроза безопасности, о которой мы упоминали в одной из предыдущих статей— storage injection attack, разработчики обязаны уделять особое внимание безопасности при написании кода, который связан с хранилищем. Вы можете найти полное руководство на нашем GitHub isit la.

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

Atik la te tradui pa editè yo nan Hashrate&Shares espesyalman pou OntologyRussia. kriye

Èske w se yon pwomotè? Antre nan kominote teknoloji nou an nan Dezakò. Epitou, pran yon gade nan Sant Developer Ontoloji, ou ka jwenn plis zouti, dokimantasyon ak plis ankò la.

Travay louvri pou devlopè yo. Ranpli travay la epi jwenn yon rekonpans.

Aplike pou pwogram talan Ontology pou elèv yo

Ontoloji

Sit entènèt ontoloji - GitHub - Dezakò - Telegram Ris - Twitter - Reddit

Sous: www.habr.com

Add nouvo kòmantè