ProHoster > Bloc > Administració > Com escriure un contracte intel·ligent en Python a la xarxa d'Ontology. Part 2: API d'emmagatzematge
Com escriure un contracte intel·ligent en Python a la xarxa d'Ontology. Part 2: API d'emmagatzematge
Aquesta és la segona part d'una sèrie d'articles educatius sobre la creació de contractes intel·ligents en Python a la xarxa de blockchain d'Ontology. En l'article anterior ens vam familiaritzar Blockchain i Block API Contracte intel·ligent d'ontologia.
Avui parlarem de com utilitzar el segon mòdul: API d'emmagatzematge. L'API d'emmagatzematge té cinc API relacionades que permeten afegir, suprimir i modificar l'emmagatzematge persistent en contractes intel·ligents a la cadena de blocs.
A continuació es mostra una breu descripció d'aquestes cinc API:
Fem una ullada més de prop a com utilitzar aquestes cinc API.
GetContext и GetReadOnlyContext obtenir el context en què s'executa el contracte intel·ligent actual. El valor de retorn és la inversa del hash del contracte intel·ligent actual. Com el seu nom indica, GetReadOnlyContext pren el context de només lectura. A l'exemple següent, el valor de retorn és la inversa del hash del contracte que es mostra a l'extrem superior dret.
Posar
Funció Posar s'encarrega d'emmagatzemar les dades a la cadena de blocs en forma de diccionari. Com es mostra, Posar pren tres paràmetres. GetContext pren el context del contracte intel·ligent que s'executa actualment, la clau és el valor de la clau que es necessita per desar les dades i el valor és el valor de les dades que s'han de desar. Tingueu en compte que si el valor de la clau ja es troba a la botiga, la funció actualitzarà el seu valor corresponent.
Funció Obtenir s'encarrega de llegir les dades de la cadena de blocs actual mitjançant el valor clau. A l'exemple següent, podeu omplir el valor de la clau al tauler d'opcions de la dreta per executar la funció i llegir les dades corresponents al valor de la clau a la cadena de blocs.
Esborrar
Funció Esborrar s'encarrega d'esborrar les dades de la cadena de blocs mitjançant el valor clau. A l'exemple següent, podeu omplir el valor de la clau per a la funció al tauler d'opcions de la dreta i suprimir les dades corresponents al valor de la clau a la cadena de blocs.
2. Exemple de codi API d'emmagatzematge
El codi següent ofereix un exemple detallat de l'ús de cinc API: GetContext, Get, Put, Delete i GetReadOnlyContext. Podeu provar d'executar les dades de l'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)
Paraula posterior
L'emmagatzematge de cadena de blocs és el nucli de tot el sistema de cadena de blocs. L'API d'Ontology Storage és fàcil d'utilitzar i fàcil de desenvolupar.
D'altra banda, l'emmagatzematge és el focus dels atacs de pirates informàtics, com l'amenaça de seguretat que hem esmentat en un dels articles anteriors— atac d'injecció d'emmagatzematgeEls desenvolupadors han de prestar especial atenció a la seguretat quan escriuen codi relacionat amb l'emmagatzematge. Podeu trobar la guia completa al nostre GitHub aquí.
En el següent article parlarem de com utilitzar-lo API d'execució.
L'article va ser traduït pels editors d'Hashrate&Shares especialment per a OntologyRussia. feu clic a
Ets desenvolupador? Uneix-te a la nostra comunitat tecnològica a Discòrdia. A més, fes-hi una ullada Centre de desenvolupadors Ontologia per a més eines, documentació i molt més.