ProHoster > Blog > Administrazioa > Nola idatzi kontratu adimendun bat Python-en Ontology sarean. 2. zatia: Biltegiratze APIa
Nola idatzi kontratu adimendun bat Python-en Ontology sarean. 2. zatia: Biltegiratze APIa
Hau Ontology blockchain sarean Python-en kontratu adimendunak sortzeari buruzko hezkuntza-artikulu batzuen bigarren zatia da. Aurreko artikuluan ezagutu genuen Blockchain eta Block APIa Ontologia kontratu adimenduna.
Gaur bigarren modulua nola erabili aztertuko dugu. Biltegiratze APIa. Biltegiratze APIak erlazionatutako bost API ditu, bloke-katearen kontratu adimendunetan biltegiratze iraunkorra gehitzea, ezabatzea eta aldatzea ahalbidetzen dutenak.
Jarraian, bost API hauen deskribapen laburra dago:
Ikus dezagun hurbilagotik bost API hauek nola erabili.
LortuContext ΠΈ GetReadOnlyContext lortu egungo kontratu adimenduna exekutatzen den testuingurua. Itzultzeko balioa uneko smart contract hash-aren alderantzizkoa da. Izenak dioen bezala, GetReadOnlyContext irakurtzeko soilik den testuingurua hartzen du. Beheko adibidean, itzuleraren balioa goiko eskuineko izkinan bistaratzen den kontratuaren hash-aren alderantzizkoa da.
Jarri
Funtzioa Jarri blockchain-en datuak hiztegi moduan gordetzeaz arduratzen da. Erakutsi bezala, Jarri hiru parametro hartzen ditu. LortuContext Gaur egun martxan dagoen kontratu adimendunaren testuingurua hartzen du, gakoa datuak gordetzeko behar den gakoaren balioa da eta balioa gorde behar diren datuen balioa da. Kontuan izan gakoaren balioa dagoeneko dendan badago, funtzioak dagokion balioa eguneratuko duela.
Funtzioa Talde uneko bloke-katearen datuak gako-balioaren bidez irakurtzeaz arduratzen da. Beheko adibidean, eskuineko aukeren panelean gako-balioa bete dezakezu funtzioa exekutatzeko eta bloke-katearen gako-balioari dagozkion datuak irakur ditzakezu.
Ezabatu
Funtzioa Ezabatu gako-balioaren bidez blokeko datuak ezabatzeaz arduratzen da. Beheko adibidean, eskuineko aukeren panelean funtzioaren gako-balioa bete dezakezu eta bloke-katean gako-balioari dagozkion datuak ezabatu.
2. Biltegiratze API kodearen adibidea
Beheko kodeak bost APIren erabileraren adibide zehatza ematen du: GetContext, Get, Put, Delete eta GetReadOnlyContext. Saia zaitezke APIaren datuak exekutatzen 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)
afterword
Blockchain biltegiratzea blockchain sistema osoaren muina da. Ontology Storage APIa erabiltzeko erraza eta garatzaileentzako egokia da.
Bestalde, biltegiratzea da hackerren erasoen ardatza, aurreko artikuluetako batean aipatu dugun segurtasun mehatxua adibidezβ biltegiratze injekzio erasoaGaratzaileek segurtasunari arreta berezia jarri behar diote biltegiratzearekin lotutako kodea idaztean. Gida osoa gure webgunean aurki dezakezu GitHub hemen.
Hurrengo artikuluan nola erabili eztabaidatuko dugu Runtime APIa.
Artikulua Hashrate&Shares-eko editoreek itzuli dute bereziki OntologyRussiarako. negar egin
Garatzailea al zara? Sartu gure komunitate teknologikoa hemen discord. Gainera, begiratu Garatzaile Zentroa Ontologia, tresna, dokumentazio eta askoz gehiago aurki ditzakezu bertan.