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:

Com escriure un contracte intel·ligent en Python a la xarxa d'Ontology. Part 2: API d'emmagatzematge

Fem una ullada més de prop a com utilitzar aquestes cinc API.

0. Creem un nou contracte SmartX

1. Com utilitzar l'API d'emmagatzematge

GetContext i GetReadOnlyContext

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.

Com escriure un contracte intel·ligent en Python a la xarxa d'Ontology. Part 2: API d'emmagatzematge

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.

Com escriure un contracte intel·ligent en Python a la xarxa d'Ontology. Part 2: API d'emmagatzematgehashrate-and-shares.ru/images/obzorontology/python/functionput.png

Obtenir

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.

Com escriure un contracte intel·ligent en Python a la xarxa d'Ontology. Part 2: API d'emmagatzematge

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.

Com escriure un contracte intel·ligent en Python a la xarxa d'Ontology. Part 2: API d'emmagatzematge

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.

Tasques obertes per a desenvolupadors. Tanqueu la tasca: obteniu una recompensa.

Aplicar per al programa de talent Ontologia per a estudiants

Ontologia

Web d'ontologia - GitHub - Discòrdia - Telegrama rus - Twitter - Reddit

Font: www.habr.com

Afegeix comentari