Sådan skriver du en smart kontrakt i Python på Ontology-netværket. Del 2: Storage API

Sådan skriver du en smart kontrakt i Python på Ontology-netværket. Del 2: Storage API

Dette er anden del i en række pædagogiske artikler om at skabe smarte kontrakter i Python på Ontology blockchain-netværket. I den forrige artikel stiftede vi bekendtskab med Blockchain & Block API Ontologi smart kontrakt.

I dag vil vi diskutere, hvordan man bruger det andet modul— Storage API. Storage API'en har fem relaterede API'er, der tillader tilføjelse, sletning og ændringer af vedvarende lagring i smarte kontrakter på blockchain.

Nedenfor er en kort beskrivelse af disse fem API'er:

Sådan skriver du en smart kontrakt i Python på Ontology-netværket. Del 2: Storage API

Lad os se nærmere på, hvordan man bruger disse fem API'er.

0. Lad os oprette en ny kontrakt SmartX

1. Sådan bruger du Storage API

GetContext & GetReadOnlyContext

GetContext и GetReadOnlyContext få den kontekst, som den aktuelle smarte kontrakt udføres i. Returværdi er det omvendte af den aktuelle smart kontrakt-hash. Som navnet antyder, GetReadOnlyContext tager skrivebeskyttet kontekst. I eksemplet nedenfor er returværdien den omvendte af kontrakthashen, der vises i øverste højre hjørne.

Sådan skriver du en smart kontrakt i Python på Ontology-netværket. Del 2: Storage API

Sætte

Funktion Sætte er ansvarlig for at opbevare data på blockchain i form af en ordbog. Som vist, Sætte tager tre parametre. GetContext tager konteksten af ​​den aktuelt kørende smarte kontrakt, nøgle er værdien af ​​nøglen, der er nødvendig for at gemme dataene, og værdi er værdien af ​​de data, der skal gemmes. Bemærk, at hvis nøglens værdi allerede er i butikken, vil funktionen opdatere dens tilsvarende værdi.

Sådan skriver du en smart kontrakt i Python på Ontology-netværket. Del 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Funktion er ansvarlig for at læse dataene i den aktuelle blockchain gennem nøgleværdien. I eksemplet nedenfor kan du udfylde nøgleværdien i indstillingspanelet til højre for at udføre funktionen og læse de data, der svarer til nøgleværdien i blockchain.

Sådan skriver du en smart kontrakt i Python på Ontology-netværket. Del 2: Storage API

Slette

Funktion Slette er ansvarlig for at slette data i blockchain gennem nøgleværdien. I eksemplet nedenfor kan du udfylde nøgleværdien for funktionen i indstillingspanelet til højre og slette de data, der svarer til nøgleværdien i blockchain.

Sådan skriver du en smart kontrakt i Python på Ontology-netværket. Del 2: Storage API

2. Storage API kode eksempel

Koden nedenfor giver et detaljeret eksempel på brugen af ​​fem API'er: GetContext, Get, Put, Delete og GetReadOnlyContext. Du kan prøve at køre API-dataene ind 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)

efterskrift

Blockchain-lagring er kernen i hele blockchain-systemet. Ontology Storage API er nem at bruge og udviklervenlig.

På den anden side er lagring i fokus for hackerangreb, såsom den sikkerhedstrussel, vi nævnte i en af ​​de tidligere artikler— lagerinjektionsangrebUdviklere skal være særligt opmærksomme på sikkerheden, når de skriver kode, der vedrører lagring. Du kan finde den komplette guide på vores GitHub her.

I den næste artikel vil vi diskutere, hvordan du bruger Runtime API.

Artiklen er oversat af redaktørerne af Hashrate&Shares specielt til OntologyRussia. skrig

Er du udvikler? Tilmeld dig vores tech-fællesskab på Discord. Tag også et kig på Udviklercenter Ontologi for flere værktøjer, dokumentation og mere.

Åbne opgaver for udviklere. Luk opgaven - få en belønning.

ansøge for talentprogrammet Ontologi for studerende

Ontologi

Ontologi hjemmesideGitHubDiscordTelegram russiskTwitter Reddit

Kilde: www.habr.com

Tilføj en kommentar