Cumu scrive un cuntrattu intelligente in Python nantu à a reta di Ontology. Parte 2: API di Storage

Cumu scrive un cuntrattu intelligente in Python nantu à a reta di Ontology. Parte 2: API di Storage

Questa hè a seconda parte in una seria d'articuli educativi nantu à a creazione di cuntratti intelligenti in Python nantu à a reta di blockchain d'Ontology. In l'articulu precedente avemu cunnisciutu Blockchain & Block API Ontologia smart contract.

Oghje discuteremu cumu utilizà u secondu modulu - API di Storage. L'API di Storage hà cinque API cunnessi chì permettenu l'aghjunzione, l'eliminazione è i cambiamenti à l'almacenamiento persistente in cuntratti intelligenti nantu à a blockchain.

Quì sottu hè una breve descrizzione di sti cinque API:

Cumu scrive un cuntrattu intelligente in Python nantu à a reta di Ontology. Parte 2: API di Storage

Fighjemu un ochju più vicinu à cumu utilizà sti cinque API.

0. Creemu un novu cuntrattu SmartX

1. Cumu utilizà l'API Storage

GetContext & GetReadOnlyContext

GetContext и GetReadOnlyContext uttene u cuntestu in quale u cuntrattu intelligente attuale hè eseguitu. U valore di ritornu hè l'inversu di l'hash current smart contract. Cum'è u nome suggerisce, GetReadOnlyContext piglia u cuntestu di sola lettura. In l'esempiu sottu, u valore di ritornu hè l'inversu di l'hash di u cuntrattu affissatu in u cantonu superiore dirittu.

Cumu scrive un cuntrattu intelligente in Python nantu à a reta di Ontology. Parte 2: API di Storage

Mettite

funziunava Mettite hè rispunsevule per almacenà e dati nantu à u blockchain in forma di dizziunariu. Cum'è mostra, Mettite piglia trè paràmetri. GetContext piglia u cuntestu di u cuntrattu intelligenti attualmente in esecuzione, a chjave hè u valore di a chjave chì hè necessariu per salvà i dati, è u valore hè u valore di e dati chì deve esse salvatu. Nota chì se u valore di a chjave hè digià in a tenda, a funzione aghjurnà u so valore currispundente.

Cumu scrive un cuntrattu intelligente in Python nantu à a reta di Ontology. Parte 2: API di Storagehashrate-and-shares.ru/images/obzorontology/python/functionput.png

Get

funziunava Get hè rispunsevuli di leghje i dati in u blockchain attuale attraversu u valore chjave. In l'esempiu quì sottu, pudete cumprità u valore chjave in u pannellu di l'opzioni à a diritta per eseguisce a funzione è leghje i dati chì currispondenu à u valore chjave in u blockchain.

Cumu scrive un cuntrattu intelligente in Python nantu à a reta di Ontology. Parte 2: API di Storage

cancillari

funziunava cancillari hè rispunsevule per sguassà e dati in u blockchain attraversu u valore chjave. In l'esempiu quì sottu, pudete inserisce u valore chjave per a funzione in u pannellu di l'opzioni à a diritta è sguassate i dati chì currispondenu à u valore chjave in u blockchain.

Cumu scrive un cuntrattu intelligente in Python nantu à a reta di Ontology. Parte 2: API di Storage

2. Esempiu di codice API Storage

U codice sottu dà un esempiu detallatu di l'usu di cinque API: GetContext, Get, Put, Delete è GetReadOnlyContext. Pudete pruvà à eseguisce i dati API in 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)

Afterword

L'almacenamiento Blockchain hè u core di tuttu u sistema blockchain. L'API Ontology Storage hè faciule d'utilizà è amichevule per i sviluppatori.

Per d 'altra banda, u almacenamentu hè u focu di l'attacchi di pirate, cum'è a minaccia di sicurezza chì avemu citatu in unu di l'articuli precedenti - attaccu d'iniezione di almacenamientoI sviluppatori sò tenuti à prestà una attenzione particulari à a sicurità quandu scrive u codice chì riguarda l'almacenamiento. Pudete truvà a guida cumpleta nant'à u nostru GitHub quì.

In u prossimu articulu avemu da discutiri cumu aduprà Runtime API.

L'articulu hè statu traduttu da l'editori di Hashrate&Shares in particulare per OntologyRussia. pienghje

Sò un sviluppatore? Unisci à a nostra cumunità tecnologica à Discord. Inoltre, fate un ochju Centru di sviluppatori Ontologia per più arnesi, documentazione è più.

Apertura di i travaglii per i sviluppatori. Chiudi u compitu - uttene una ricumpensa.

Applica per u prugramma di talentu Ontology per i studienti

Ontologia

U situ di l'ontologia - GitHub - Discord - Telegram inglese - Twitter - Reddit

Source: www.habr.com

Add a comment