ProHoster > Blog > Uprava > Kako napisati pametno pogodbo v Pythonu v omrežju Ontology. 2. del: API za shranjevanje
Kako napisati pametno pogodbo v Pythonu v omrežju Ontology. 2. del: API za shranjevanje
To je drugi del v seriji izobraževalnih člankov o ustvarjanju pametnih pogodb v Pythonu v omrežju veriženja blokov Ontology. V prejšnjem članku smo se seznanili z Blockchain & Block API Ontološka pametna pogodba.
Danes bomo razpravljali o uporabi drugega modula— API za shranjevanje. Storage API ima pet povezanih API-jev, ki omogočajo dodajanje, brisanje in spreminjanje trajnega shranjevanja v pametnih pogodbah v verigi blokov.
Spodaj je kratek opis teh petih API-jev:
Oglejmo si podrobneje, kako uporabljati teh pet API-jev.
GetContext и GetReadOnlyContext pridobite kontekst, v katerem se izvaja trenutna pametna pogodba. Povratna vrednost je inverzna vrednost zgoščene vrednosti trenutne pametne pogodbe. Kot že ime pove, GetReadOnlyContext prevzame kontekst samo za branje. V spodnjem primeru je povratna vrednost obratna zgoščena vrednost pogodbe, prikazana v zgornjem desnem kotu.
Put
Funkcija Put je odgovoren za shranjevanje podatkov na blockchain v obliki slovarja. Kot je prikazano, Put ima tri parametre. GetContext vzame kontekst trenutno delujoče pametne pogodbe, ključ je vrednost ključa, ki je potreben za shranjevanje podatkov, vrednost pa je vrednost podatkov, ki jih je treba shraniti. Upoštevajte, da če je vrednost ključa že v shrambi, bo funkcija posodobila ustrezno vrednost.
Funkcija Pridobite je odgovoren za branje podatkov v trenutni verigi blokov prek vrednosti ključa. V spodnjem primeru lahko izpolnite vrednost ključa v plošči z možnostmi na desni, da izvedete funkcijo in preberete podatke, ki ustrezajo vrednosti ključa v verigi blokov.
Brisanje
Funkcija Brisanje je odgovoren za brisanje podatkov v verigi blokov prek vrednosti ključa. V spodnjem primeru lahko izpolnite vrednost ključa za funkcijo na plošči z možnostmi na desni in izbrišete podatke, ki ustrezajo vrednosti ključa v verigi blokov.
2. Primer kode API za shranjevanje
Spodnja koda podaja podroben primer uporabe petih API-jev: GetContext, Get, Put, Delete in GetReadOnlyContext. Lahko poskusite zagnati podatke API 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)
spremna beseda
Shramba v verigi blokov je jedro celotnega sistema verige blokov. Ontology Storage API je enostaven za uporabo in razvijalcem prijazen.
Po drugi strani pa je shranjevanje v središču napadov hekerjev, kot je varnostna grožnja, ki smo jo omenili v enem od prejšnjih člankov – napad z vbrizgavanjem pomnilnikaRazvijalci morajo posebno pozornost posvetiti varnosti pri pisanju kode, ki se nanaša na shranjevanje. Celoten vodnik najdete na našem GitHub tukaj.
V naslednjem članku bomo razpravljali o uporabi Runtime API.
Članek so posebej za OntologyRussia prevedli uredniki Hashrate&Shares. kliknite
Ste razvijalec? Pridružite se naši tehnični skupnosti na Razpad. Oglejte si tudi Center za razvijalce Ontologija, tam lahko najdete več orodij, dokumentacije in še veliko več.