
Това е втората част от серията обучаващи статии за създаването на смарт контракти на Python в блокчейн мрежата Ontology. В предишната статия се запознахме с смарт контракта Ontology.
Днес ще обсъдим как да използваме втория модул— Storage API. Storage API предлага пет свързани API, които позволяват добавяне, изтриване и промяна в постоянното хранилище на смарт контракти в блокчейна.
По-долу е обобщение на тези пет API:

Нека разгледаме по-подробно как да използваме тези пет API.
0. Ще създадем нов контракт
1. Как да използваме Storage API
GetContext & GetReadOnlyContext
GetContext и GetReadOnlyContext получават контекста, в който се изпълнява текущият смарт контракт. Върнатата стойност е обратното на текущия хеш на смарт контракта. Както подсказва името, GetReadOnlyContext взема контекста в режим само за четене. В следващия пример, върнатата стойност е обратния хеш на контракта, показан в горния десен ъгъл.

Put
Функция Put е отговорен за съхранение на данни в блокчейна под формата на речник. Както е показано, Put приема три параметъра. GetContext взема контекста на текущо изпълнявания смарт контракт, key— това е стойността на ключа, който трябва да се запази, а value— стойността на данните, които трябва да се запазят. Обърнете внимание, ако стойността на ключа вече присъства в хранилището, функцията ще актуализира съответстващата й стойност.

Get
Функция Get е отговорен за четенето на данни в текущия блокчейн чрез стойността на ключа. В следващия пример можете да попълните стойността на ключа в панела параметри вдясно, за да изпълните функцията и да прочетете данните, съответстващи на стойността на ключа в блокчейна.

Delete
Функция Delete е отговорен за изтриването на данни в блокчейна чрез стойността на ключа. В следващия пример можете да попълните стойността на ключа, за да изпълните функцията в панела параметри вдясно и да изтриете данните, съответстващи на стойността на ключа в блокчейна.

2. Примерен код за Storage API
Следният код предоставя подробен пример за използването на петте API: GetContext, Get, Put, Delete и GetReadOnlyContext. Можете да опитате да стартирате тези API в .
от ontology.interop.System.Storage импорт GetContext, Get, Put, Delete, GetReadOnlyContext
от ontology.interop.System.Runtime импорт 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 е лесен за употреба и удобен за разработчиците.
От друга страна, хранилището е фокус на атаки от хакери, например, заплашени сигурности, за които споменахме в една от предишните статии— , разработчиците трябва да обърнат особено внимание на сигурността при написване на код, свързан с хранилището. Можете да намерите пълно ръководство на нашия тук.
В следващата статия ще обсъдим как да използвате Runtime API.
Статията е преведена от редакцията на Hashrate&Shares специално за OntologyRussia.
Вие разработчик? Присъединете се към нашето техническо общество на . Освен това, погледнете в Ontology, там можете да намерите повече инструменти, документация и много други.
Завършете задачата — получете награда.
за програмата за таланти на Ontology за студенти
Ontology
— — — — —
Източник: habr.com
