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

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

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 Blockchain & Block API 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:

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

Analizziamo più in dettaglio come utilizzare queste cinque API.

0. Creiamo un nuovo contratto SmartX

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.

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

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.

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

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.

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

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.

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

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

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— attacco di iniezione nello storage, gli sviluppatori devono prestare particolare attenzione alla sicurezza quando scrivono codice legato al deposito. Puoi trovare la guida completa sul nostro GitHub qui.

Nell'articolo successivo discuteremo come utilizzare Runtime API.

L'articolo è stato tradotto dalla redazione di Hashrate&Shares specificamente per OntologyRussia. clicca

Sei uno sviluppatore? Unisciti alla nostra comunità tecnica su Discord. Inoltre, dai un'occhiata al Centro sviluppatori Ontology, dove puoi trovare ulteriori strumenti, documentazione e molto altro.

Compiti aperti per gli sviluppatori. Chiudi il compito — ricevi una ricompensa.

Invia una candidatura al programma talenti Ontology per studenti

Ontology

sito web di OntologyGitHubDiscordTelegram RussoTwitter Reddit

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster