Hoe kinne jo in tûk kontrakt skriuwe yn Python op it Ontology-netwurk. Diel 2: Storage API

Hoe kinne jo in tûk kontrakt skriuwe yn Python op it Ontology-netwurk. Diel 2: Storage API

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

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

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

Hoe kinne jo in tûk kontrakt skriuwe yn Python op it Ontology-netwurk. Diel 2: Storage API

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

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

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

GetContext & GetReadOnlyContext

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

Hoe kinne jo in tûk kontrakt skriuwe yn Python op it Ontology-netwurk. Diel 2: Storage API

Sette

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

Hoe kinne jo in tûk kontrakt skriuwe yn Python op it Ontology-netwurk. Diel 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Krije

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

Hoe kinne jo in tûk kontrakt skriuwe yn Python op it Ontology-netwurk. Diel 2: Storage API

wiskje

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

Hoe kinne jo in tûk kontrakt skriuwe yn Python op it Ontology-netwurk. Diel 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)

Nei wurd

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

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

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

It artikel waard oerset troch de redaksje fan Hashrate&Shares spesjaal foar OntologyRussia. gûle

Binne jo in ûntwikkelder? Doch mei oan ús techmienskip by Untwerp. Sjoch ek ris op Developer Center Ontology, jo kinne dêr mear ark, dokumintaasje en folle mear fine.

Iepenje taken foar ûntwikkelders. Folje de taak en krije in beleanning.

Tapasse foar it talintprogramma Ontology foar studinten

Ontology

Ontology webside - GitHub - Untwerp - Telegram Ingelsk - Twitter - reddit

Boarne: www.habr.com

Add a comment