ProHoster > Log > administrasjon > 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:
La oss se nærmere på hvordan du bruker disse fem API-ene.
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.
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.
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.
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.
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.