ProHoster > blog > amministrazione > Come scrivere un contratto intelligente in Python sulla rete Ontology. Parte 2: API di archiviazione
Come scrivere un contratto intelligente in Python sulla rete Ontology. Parte 2: API di archiviazione
Questa è la seconda parte di una serie di articoli didattici sulla creazione di contratti intelligenti in Python sulla rete blockchain Ontology. Nell'articolo precedente abbiamo conosciuto Blockchain e API di blocco Contratto intelligente dell'ontologia.
Oggi discuteremo di come utilizzare il secondo modulo: API di archiviazione. L'API Storage ha cinque API correlate che consentono l'aggiunta, l'eliminazione e la modifica dell'archiviazione persistente nei contratti intelligenti sulla blockchain.
Di seguito è riportata una breve descrizione di queste cinque API:
Diamo uno sguardo più da vicino a come utilizzare queste cinque API.
OttieniContesto и GetReadOnlyContext ottenere il contesto in cui viene eseguito l'attuale contratto intelligente. Il valore restituito è l'inverso dell'attuale hash del contratto intelligente. Come suggerisce il nome, GetReadOnlyContext accetta il contesto di sola lettura. Nell'esempio seguente, il valore restituito è l'inverso dell'hash del contratto visualizzato nell'angolo in alto a destra.
Mettere
Funzione Mettere è responsabile della memorizzazione dei dati sulla blockchain sotto forma di dizionario. Come mostrato, Mettere accetta tre parametri. OttieniContesto prende il contesto dello smart contract attualmente in esecuzione, chiave è il valore della chiave necessaria per salvare i dati e valore è il valore dei dati che devono essere salvati. Tieni presente che se il valore della chiave è già nello store, la funzione aggiornerà il valore corrispondente.
Funzione Ottieni è responsabile della lettura dei dati nell'attuale blockchain attraverso il valore chiave. Nell'esempio seguente, puoi inserire il valore della chiave nel pannello delle opzioni a destra per eseguire la funzione e leggere i dati corrispondenti al valore della chiave nella blockchain.
Elimina
Funzione Elimina è responsabile della cancellazione dei dati nella blockchain attraverso il valore chiave. Nell'esempio seguente, puoi inserire il valore della chiave per la funzione nel pannello delle opzioni a destra ed eliminare i dati corrispondenti al valore della chiave nella blockchain.
2. Esempio di codice API di archiviazione
Il codice seguente fornisce un esempio dettagliato dell'utilizzo di cinque API: GetContext, Get, Put, Delete e GetReadOnlyContext. Puoi provare a eseguire i dati 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)
postfazione
Lo storage blockchain è il nucleo dell’intero sistema blockchain. L'API Ontology Storage è facile da usare e intuitiva per gli sviluppatori.
D'altro canto, lo storage è al centro degli attacchi degli hacker, come la minaccia alla sicurezza di cui abbiamo parlato in uno degli articoli precedenti: attacco di storage injectionGli sviluppatori sono tenuti a prestare particolare attenzione alla sicurezza quando scrivono codice relativo all'archiviazione. Puoi trovare la guida completa sul nostro GitHub qui.
Nel prossimo articolo parleremo di come utilizzarlo API di runtime.
L'articolo è stato tradotto dalla redazione di Hashrate&Shares appositamente per OntologyRussia. клик
Sei uno sviluppatore? Unisciti alla nostra comunità tecnologica su Discordia. Inoltre, dai un'occhiata a Centro per sviluppatori Ontology, puoi trovare più strumenti, documentazione e molto altro lì.