ProHoster > Blog > Amministrazione > 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:
Fighjemu un ochju più vicinu à cumu utilizà sti cinque API.
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.
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.
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.
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.
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ù.