Hvordan skrive en smart kontrakt i Python på Ontology-nettverket. Del 2: Lagrings-API

Hvordan skrive en smart kontrakt i Python på Ontology-nettverket. Del 2: Lagrings-API

Dette er den andre delen i en serie pedagogiske artikler om å lage smarte kontrakter i Python på Ontology blockchain-nettverket. I forrige artikkel ble vi kjent med Blockchain & Block API Ontologi smart kontrakt.

I dag skal vi diskutere hvordan du bruker den andre modulen— Lagrings-API. Storage API har fem relaterte APIer som tillater tillegg, sletting og endringer av vedvarende lagring i smarte kontrakter på blokkjeden.

Nedenfor er en kort beskrivelse av disse fem APIene:

Hvordan skrive en smart kontrakt i Python på Ontology-nettverket. Del 2: Lagrings-API

La oss se nærmere på hvordan du bruker disse fem API-ene.

0. La oss lage en ny kontrakt SmartX

1. Hvordan bruke Storage API

GetContext og GetReadOnlyContext

GetContext и GetReadOnlyContext få konteksten som gjeldende smartkontrakt utføres i. Returverdi er inversen av gjeldende smart kontrakt-hash. Som navnet tilsier, GetReadOnlyContext tar skrivebeskyttet kontekst. I eksemplet nedenfor er returverdien den inverse av kontrakt-hashen som vises øverst til høyre.

Hvordan skrive en smart kontrakt i Python på Ontology-nettverket. Del 2: Lagrings-API

Sette

Funksjon Sette er ansvarlig for å lagre data på blokkjeden i form av en ordbok. Som vist, Sette tar tre parametere. GetContext tar konteksten til den smarte kontrakten som kjøres for øyeblikket, nøkkel er verdien av nøkkelen som er nødvendig for å lagre dataene, og verdi er verdien av dataene som må lagres. Merk at hvis nøkkelens verdi allerede er i butikken, vil funksjonen oppdatere den tilsvarende verdien.

Hvordan skrive en smart kontrakt i Python på Ontology-nettverket. Del 2: Lagrings-APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Ta

Funksjon Ta er ansvarlig for å lese dataene i gjeldende blokkjede gjennom nøkkelverdien. I eksemplet nedenfor kan du fylle inn nøkkelverdien i alternativpanelet til høyre for å utføre funksjonen og lese dataene som tilsvarer nøkkelverdien i blokkjeden.

Hvordan skrive en smart kontrakt i Python på Ontology-nettverket. Del 2: Lagrings-API

Delete

Funksjon Delete er ansvarlig for å slette data i blokkjeden gjennom nøkkelverdien. I eksemplet nedenfor kan du fylle inn nøkkelverdien for funksjonen i alternativpanelet til høyre og slette dataene som tilsvarer nøkkelverdien i blokkjeden.

Hvordan skrive en smart kontrakt i Python på Ontology-nettverket. Del 2: Lagrings-API

2. Eksempel på lagrings-API-kode

Koden nedenfor gir et detaljert eksempel på bruk av fem APIer: GetContext, Get, Put, Delete og GetReadOnlyContext. Du kan prøve å kjøre API-dataene inn 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)

etterord

Blockchain-lagring er kjernen i hele blokkjedesystemet. Ontology Storage API er enkel å bruke og utviklervennlig.

På den annen side er lagring i fokus for hackerangrep, for eksempel sikkerhetstrusselen vi nevnte i en av de forrige artiklene— lagringsinjeksjonsangrepUtviklere er pålagt å være spesielt oppmerksomme på sikkerhet når de skriver kode som er relatert til lagring. Du finner den komplette veiledningen på vår GitHub her.

I den neste artikkelen vil vi diskutere hvordan du bruker Runtime API.

Artikkelen ble oversatt av redaktørene til Hashrate&Shares spesielt for OntologyRussia. klikk

Er du en utvikler? Bli med i vårt tekniske fellesskap på Discord. Ta også en titt på Utviklersenter Ontologi, du kan finne flere verktøy, dokumentasjon og mye mer der.

Åpne oppgaver for utviklere. Fullfør oppgaven og få en belønning.

Søke om for talentprogrammet Ontologi for studenter

ontologi

Ontologi nettsted - GitHub - Discord - Telegram russisk - Twitter - Reddit

Kilde: www.habr.com

Legg til en kommentar