
Esta é a segunda parte de uma série de artigos educativos sobre como criar contratos inteligentes em Python na rede blockchain Ontology. No artigo anterior, conhecemos o contrato inteligente Ontology.
Hoje, discutiremos como usar o segundo módulo— Storage API. O Storage API possui cinco APIs relacionadas que permitem adição, remoção e modificações no armazenamento permanente em contratos inteligentes na blockchain.
Abaixo está uma breve descrição dessas cinco APIs:

Vamos examinar mais detalhadamente como usar essas cinco APIs.
0. Criar um novo contrato
1. Como usar o Storage API
GetContext & GetReadOnlyContext
GetContext e GetReadOnlyContext obtêm o contexto no qual o atual contrato inteligente está sendo executado. O valor de retorno é o hash invertido do contrato inteligente atual. Como indicado pelo nome, GetReadOnlyContext pega o contexto no modo somente leitura. No exemplo abaixo, o valor de retorno é o hash invertido do contrato mostrado no canto superior direito.

Put
Função Put é responsável por armazenar dados na blockchain na forma de um dicionário. Como mostrado, Put recebe três parâmetros. GetContext pega o contexto do contrato inteligente em execução atual, key— é o valor da chave que precisa ser salvo, e value— é o valor dos dados que precisam ser armazenados. Note que, se o valor da chave já estiver no armazenamento, a função atualizará seu valor correspondente.

Get
Função Get é responsável por ler dados na blockchain atual através do valor da chave. No exemplo abaixo, você pode preencher o valor da chave no painel de parâmetros à direita para executar a função e ler os dados correspondentes ao valor da chave na blockchain.

Excluir
Função Excluir é responsável por remover dados na blockchain através do valor da chave. No exemplo abaixo, você pode preencher o valor da chave para executar a função no painel de parâmetros à direita e remover os dados correspondentes ao valor da chave na blockchain.

2. Exemplo de código Storage API
O código abaixo fornece um exemplo detalhado de uso das cinco APIs: GetContext, Get, Put, Delete e GetReadOnlyContext. Você pode tentar executar essas APIs em .
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)Epílogo
O armazenamento em blockchain é o núcleo de todo o sistema de blockchain. A Ontology Storage API é simples de usar e conveniente para os desenvolvedores.
Por outro lado, o armazenamento é alvo de ataques de hackers, como a ameaça de segurança que mencionamos em um dos artigos anteriores— , os desenvolvedores devem prestar atenção especial à segurança ao escrever código relacionado ao armazenamento. Você pode encontrar o guia completo em nosso aqui.
No próximo artigo, discutiremos como usar Runtime API.
Este artigo foi traduzido pela equipe da Hashrate & Shares especialmente para a OntologyRussia.
Você é desenvolvedor? Junte-se à nossa comunidade técnica em . Além disso, dê uma olhada no Ontology, onde você pode encontrar mais ferramentas, documentação e muito mais.
Finalize uma tarefa — ganhe uma recompensa.
no programa de talentos Ontology para estudantes
Ontology
— — — — —
Fonte: habr.com
