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:

Come scrivere un contratto intelligente in Python sulla rete Ontology. Parte 2: API di archiviazione

Diamo uno sguardo più da vicino a come utilizzare queste cinque API.

0. Creiamo un nuovo contratto SmartX

1. Come utilizzare l'API di archiviazione

GetContext e GetReadOnlyContext

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.

Come scrivere un contratto intelligente in Python sulla rete Ontology. Parte 2: API di archiviazione

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.

Come scrivere un contratto intelligente in Python sulla rete Ontology. Parte 2: API di archiviazionehashrate-and-shares.ru/images/obzorontology/python/functionput.png

Ottieni

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.

Come scrivere un contratto intelligente in Python sulla rete Ontology. Parte 2: API di archiviazione

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.

Come scrivere un contratto intelligente in Python sulla rete Ontology. Parte 2: API di archiviazione

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ì.

Attività aperte per gli sviluppatori. Completa l'attività e ottieni una ricompensa.

applicare per il programma di talenti Ontology per gli studenti

ontologia

Sito web di ontologia - GitHub - Discordia - Telegramma russo - Twitter - Reddit

Fonte: habr.com

Aggiungi un commento