Jak napisać smart kontrakt w Pythonie w sieci Ontology. Część 2: Storage API

Jak napisać smart kontrakt w Pythonie w sieci Ontology. Część 2: Storage API

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 Blockchain & Block API 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:

Jak napisać smart kontrakt w Pythonie w sieci Ontology. Część 2: Storage API

Przyjrzyjmy się dokładniej, jak używać tych pięciu API.

0. Stwórzmy nowy kontrakt SmartX

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.

Jak napisać smart kontrakt w Pythonie w sieci Ontology. Część 2: Storage API

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ść.

Jak napisać smart kontrakt w Pythonie w sieci Ontology. Część 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

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.

Jak napisać smart kontrakt w Pythonie w sieci Ontology. Część 2: Storage API

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.

Jak napisać smart kontrakt w Pythonie w sieci Ontology. Część 2: Storage API

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 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)

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— atak iniekcji do magazynu, 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 GitHub tutaj.

W następnym artykule omówimy, jak używać Runtime API.

Artykuł został przetłumaczony przez redakcję Hashrate&Shares specjalnie dla OntologyRussia. klik

Jesteś programistą? Dołącz do naszej społeczności technicznej na Discord. Ponadto zajrzyj do Centrum dewelopera Ontology, tam można znaleźć więcej narzędzi, dokumentację i wiele więcej.

Otwarte zadania dla programistów. Zamknij zadanie — zdobądź nagrodę.

Złożyć wniosek o program talentów Ontology dla studentów

Ontology

strona internetowa OntologyGitHubDiscordTelegram RosyjskiTwitter Reddit

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster