Як написати смарт-контракт на 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. клік

Ви розробник? Приєднуйтесь до нашої технічної спільноти на Discord. Крім того, загляньте в Центр розробників Ontology, там можна знайти більше інструментів, документацію та багато іншого.

Відкриті завдання розробників. Закрий завдання – отримай винагороду.

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

Онтологія

Ontology website - GitHub - Discord - Telegram російською - Twitter - Reddit

Джерело: habr.com

Додати коментар або відгук