Ako napísať smart kontrakt na Pythone v sieti Ontology. Časť 2: Storage API

Ako napísať smart kontrakt na Pythone v sieti Ontology. Časť 2: Storage API

Toto je druhá časť série vzdelávacích článkov o vytváraní smart kontraktov v Pythone v blockchainovej sieti Ontology. V predchádzajúcom článku sme sa oboznámili s Blockchain & Block API smart kontraktom Ontology.

Dnes sa budeme zaoberať, ako využiť druhý modul— Storage API. Storage API má päť súvisiacich API, ktoré umožňujú pridávanie, odstraňovanie a zmeny v trvalej pamäti v smart kontraktoch na blockchaine.

Nižšie je uvedený stručný popis týchto piatich API:

Ako napísať smart kontrakt na Pythone v sieti Ontology. Časť 2: Storage API

Poďme podrobnejšie preskúmať, ako využiť týchto päť API.

0. Vytvorme nový kontrakt SmartX

1. Ako používať Storage API

GetContext & GetReadOnlyContext

GetContext a GetReadOnlyContext získavajú kontext, v ktorom sa aktuálny smart kontrakt vykonáva. Hodnota návratu je spätná k aktuálnemu hash-u smart kontraktu. Ako naznačuje názov, GetReadOnlyContext berie kontext režimu iba na čítanie. V nižšie uvedenom príklade je hodnota návratu spätná k hash-u kontraktu, ktorý sa zobrazuje v pravom hornom rohu.

Ako napísať smart kontrakt na Pythone v sieti Ontology. Časť 2: Storage API

Put

Funkcia Put je zodpovedná za ukladanie dát do blockchainu vo forme slovníka. Ako je znázornené, Put prijíma tri parametre. GetContext berie kontext aktuálne vykonávaného smart kontraktu, key— je hodnota kľúča, ktorú je potrebné na uloženie dát, a value— je hodnota dát, ktoré je potrebné uložiť. Upozorňujeme, že ak sa hodnota kľúča už nachádza v úložisku, funkcia aktualizuje jej zodpovedajúcu hodnotu.

Ako napísať smart kontrakt na Pythone v sieti Ontology. Časť 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Get

Funkcia Get je zodpovedná za čítanie dát v aktuálnom blockchaine pomocou hodnoty kľúča. V nižšie uvedenom príklade môžete vyplniť hodnotu kľúča v paneli parametrov sprava, aby ste spustili funkciu a prečítali dáta zodpovedajúce hodnote kľúča v blockchaine.

Ako napísať smart kontrakt na Pythone v sieti Ontology. Časť 2: Storage API

Delete

Funkcia Delete je zodpovedná za odstraňovanie dát v blockchaine pomocou hodnoty kľúča. V nižšie uvedenom príklade môžete vyplniť hodnotu kľúča, aby ste spustili funkciu v paneli parametrov sprava a odstránili dáta, ktoré zodpovedajú hodnote kľúča v blockchaine.

Ako napísať smart kontrakt na Pythone v sieti Ontology. Časť 2: Storage API

2. Príklad kódu Storage API

Nižšie uvedený kód poskytuje podrobný príklad použitia piatich API: GetContext, Get, Put, Delete a GetReadOnlyContext. Môžete sa pokúsiť spustiť tieto API v 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)

Pósledok

Blockchain storage is the core of the entire blockchain system. The Ontology Storage API is easy to use and convenient for developers.

On the other hand, the storage is targeted by hacker attacks, such as the security threat we mentioned in one of the previous articles— storage injection attack, developers must pay special attention to security when writing code related to storage. You can find the complete guide at our GitHub tu.

In the next article, we will discuss how to use Runtime API.

This article was translated by the Hashrate&Shares editorial team specially for OntologyRussia. klik

Ste vývojár? Pripojte sa k našej technickej komunite na Discord. Okrem toho sa pozrite na Centrum vývojárov Ontology, kde nájdete viac nástrojov, dokumentáciu a mnoho ďalšieho.

Otvorené úlohy pre vývojárov. Zatvorte úlohu - získajte odmenu.

Žiadosť o talentovú program Ontology pre študentov

Ontology

Ontology website — GitHub — Discord — Telegram Russian — Twitter — Reddit

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster