
Questa è la seconda parte di una serie di articoli formativi sulla creazione di smart contract in Python nella rete blockchain Ontology. Nell'articolo precedente abbiamo conosciuto lo smart contract di Ontology.
Oggi discuteremo di come utilizzare il secondo modulo— Storage API. L'API di Storage ha cinque API correlate che consentono l'aggiunta, la rimozione e la modifica della memoria permanente negli smart contract sulla blockchain.
Di seguito è riportata una breve descrizione di queste cinque API:

Analizziamo più in dettaglio come utilizzare queste cinque API.
0. Creiamo un nuovo contratto
1. Come utilizzare l'API di Storage
GetContext & GetReadOnlyContext
GetContext e GetReadOnlyContext ottengono il contesto in cui viene eseguito lo smart contract attuale. Il valore restituito è l'inverso dell'hash dello smart contract attuale. Come suggerisce il nome, GetReadOnlyContext prende il contesto della modalità di sola lettura. Nell'esempio sottostante, il valore restituito è l'inverso dell'hash del contratto visualizzato nell'angolo in alto a destra.

Put
La funzione Put è responsabile della memorizzazione dei dati nella blockchain sotto forma di dizionario. Come mostrato, Put accetta tre parametri. GetContext prende il contesto dello smart contract attualmente in esecuzione, key è il valore della chiave necessaria per memorizzare i dati e value è il valore dei dati da memorizzare. Si prega di notare che se il valore della chiave è già presente nella memoria, la funzione aggiornerà il valore corrispondente.

Get
La funzione Get è responsabile della lettura dei dati nella blockchain attuale tramite il valore della chiave. Nell'esempio sottostante, puoi compilare il valore della chiave nel pannello delle impostazioni a destra per eseguire la funzione e leggere i dati corrispondenti al valore della chiave nella blockchain.

Elimina
La funzione Elimina è responsabile della rimozione dei dati nella blockchain tramite il valore della chiave. Nell'esempio sottostante, puoi compilare il valore della chiave per eseguire la funzione nel pannello delle impostazioni a destra e rimuovere i dati corrispondenti al valore della chiave nella blockchain.

2. Esempio di codice API di Storage
Il codice sottostante fornisce un esempio dettagliato di utilizzo delle cinque API: GetContext, Get, Put, Delete e GetReadOnlyContext. Puoi provare a eseguire queste API in .
da ontology.interop.System.Storage import GetContext, Get, Put, Delete, GetReadOnlyContext
da 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)Postfazione
Il deposito blockchain è il nucleo dell'intero sistema blockchain. L'API di Ontology Storage è semplice da utilizzare e comoda per gli sviluppatori.
D'altra parte, i depositi sono al centro degli attacchi degli hacker, ad esempio, la minaccia alla sicurezza di cui abbiamo parlato in uno dei precedenti articoli— , gli sviluppatori devono prestare particolare attenzione alla sicurezza quando scrivono codice legato al deposito. Puoi trovare la guida completa sul nostro qui.
Nell'articolo successivo discuteremo come utilizzare Runtime API.
L'articolo è stato tradotto dalla redazione di Hashrate&Shares specificamente per OntologyRussia.
Sei uno sviluppatore? Unisciti alla nostra comunità tecnica su . Inoltre, dai un'occhiata al Ontology, dove puoi trovare ulteriori strumenti, documentazione e molto altro.
Chiudi il compito — ricevi una ricompensa.
al programma talenti Ontology per studenti
Ontology
— — — — —
Fonte: habr.com
