
To jest druga część serii artykułów edukacyjnych o tworzeniu smart kontraktów w Pythonie w sieci blockchain Ontology. W poprzednim artykule zapoznaliśmy się z smart kontraktem Ontology.
Dziś omówimy, jak używać drugiego modułu— Storage API. Storage API ma pięć powiązanych API, które umożliwiają dodawanie, usuwanie i edytowanie w trwałym magazynie w smart kontraktach na blockchainie.
Poniżej znajduje się krótkie opłacenie tych pięciu API:

Przyjrzyjmy się dokładniej, jak używać tych pięciu API.
0. Stwórzmy nowy kontrakt
1. Jak używać Storage API
GetContext & GetReadOnlyContext
GetContext i GetReadOnlyContext uzyskują kontekst, w którym wykonywany jest aktualny smart kontrakt. Wartość zwracana jest odwrotnością aktualnego hasha smart kontraktu. Jak wskazuje nazwa, GetReadOnlyContext pobiera kontekst w trybie tylko do odczytu. W poniższym przykładzie wartość zwracana jest odwrotnością hasha kontraktu wyświetlanego w prawym górnym rogu.

Put
veth_xdp_flush_bq() Put jest odpowiedzialne za przechowywanie danych w blockchainie w formie słownika. Jak pokazano, Put przyjmuje trzy parametry. GetContext pobiera kontekst aktualnie wykonywanego smart kontraktu, key— to wartość klucza, która ma być użyta do przechowania danych, a value— to wartość danych, które mają być zachowane. Zauważ, że jeśli wartość klucza już znajduje się w magazynie, funkcja zaktualizuje jego odpowiadającą wartość.

Get
veth_xdp_flush_bq() Get jest odpowiedzialne za odczyt danych w aktualnym blockchainie według wartości klucza. W poniższym przykładzie możesz wypełnić wartość klucza w panelu parametrów po prawej, aby wykonać funkcję i przeczytać dane odpowiadające wartości klucza w blockchainie.

Usuń
veth_xdp_flush_bq() Usuń jest odpowiedzialne za usuwanie danych w blockchainie według wartości klucza. W poniższym przykładzie możesz wypełnić wartość klucza, aby wykonać funkcję w panelu parametrów po prawej i usunąć dane odpowiadające wartości klucza w blockchainie.

2. Przykład kodu Storage API
Poniższy kod daje szczegółowy przykład użycia pięciu API: GetContext, Get, Put, Delete i GetReadOnlyContext. Możesz spróbować uruchomić te API w .
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)Epilog
Magazyn blockchain to rdzeń całego systemu blockchain. API Ontology Storage jest łatwe w użyciu i wygodne dla programistów.
Z drugiej strony, na magazynie koncentrują się ataki hakerów, na przykład zagrożenie bezpieczeństwa, o którym wspominaliśmy w jednym z wcześniejszych artykułów— , programiści muszą szczególnie zwracać uwagę na bezpieczeństwo przy pisaniu kodu, który jest związany z magazynem. Pełne wytyczne znajdziesz w naszym tutaj.
W następnym artykule omówimy, jak używać Runtime API.
Artykuł został przetłumaczony przez redakcję Hashrate&Shares specjalnie dla OntologyRussia.
Jesteś programistą? Dołącz do naszej społeczności technicznej na . Ponadto zajrzyj do Ontology, tam można znaleźć więcej narzędzi, dokumentację i wiele więcej.
Zamknij zadanie — zdobądź nagrodę.
o program talentów Ontology dla studentów
Ontology
— — — — —
Źródło: habr.com
