ProHoster > Блог > адміністрування > Як написати смарт-контракт на Python у мережі Ontology. Частина 2: Storage API
Як написати смарт-контракт на Python у мережі Ontology. Частина 2: Storage API
Це друга частина серії навчальних статей про створення смарт-контрактів на Python в блокчейн мережі Ontology. У попередній статті ми познайомилися з Blockchain & Block API смарт-контракт Ontology.
Сьогодні ми обговоримо, як використовувати другий модуль. API зберігання. Storage API має п'ять пов'язаних API, які дозволяють додавання, видалення та зміни у постійному сховищі у смарт-контрактах на блокчейні.
Нижче короткий опис даних п'яти API:
Давайте детальніше розберемо, як використовувати ці п'ять API.
GetContext и GetReadOnlyContext отримують контекст, у якому виконується поточний смарт-контракт. Return value є зворотним поточному хешу смарт-контракту. Як випливає з назви, GetReadOnlyContext бере контекст режиму лише читання. У наведеному нижче прикладі return value є зворотним хешу контракту, що відображається у верхньому правому кутку.
Ставити
Функція Ставити є відповідальною за зберігання даних у блокчейні у формі словника. Як показано, Ставити приймає три параметри. GetContext бере контекст поточного виконуваного смарт-контракту, key це значення ключа, яке необхідно, щоб зберегти дані, а value це значенням даних, які необхідно зберегти. Зверніть увагу, якщо значення ключа вже знаходиться в сховищі, функція оновить його відповідне значення.
Функція отримати є відповідальною за читання даних у поточному блокчейні за допомогою значення ключа. У наведеному нижче прикладі Ви можете заповнити значення ключа в панелі параметрів праворуч, щоб виконати функцію і вважати дані, що відповідають значенню ключа в блокчейні.
видаляти
Функція видаляти є відповідальною за видалення даних у блокчейні за допомогою значення ключа. У наведеному нижче прикладі Ви можете заповнити значення ключа для виконання функції в панелі параметрів праворуч і видалити дані, що відповідають значенню ключа в блокчейні.
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, там можна знайти більше інструментів, документацію та багато іншого.