ProHoster > Blog > administração > Como escrever um contrato inteligente em Python na rede Ontology. Parte 2: API de armazenamento
Como escrever um contrato inteligente em Python na rede Ontology. Parte 2: API de armazenamento
Esta é a segunda parte de uma série de artigos educacionais sobre a criação de contratos inteligentes em Python na rede blockchain Ontology. No artigo anterior conhecemos API Blockchain e Bloco Contrato inteligente de ontologia.
Hoje discutiremos como usar o segundo módulo— API de armazenamento. A API de armazenamento possui cinco APIs relacionadas que permitem adição, exclusão e alterações no armazenamento persistente em contratos inteligentes no blockchain.
Abaixo está uma breve descrição dessas cinco APIs:
Vamos dar uma olhada mais de perto em como usar essas cinco APIs.
ObterContexto и GetReadOnlyContext obtenha o contexto no qual o contrato inteligente atual é executado. O valor de retorno é o inverso do hash do contrato inteligente atual. Como o nome sugere, GetReadOnlyContext usa o contexto somente leitura. No exemplo abaixo, o valor de retorno é o inverso do hash do contrato exibido no canto superior direito.
colocar
Função colocar é responsável por armazenar dados no blockchain na forma de um dicionário. Como mostrado, colocar leva três parâmetros. ObterContexto considera o contexto do contrato inteligente em execução no momento, chave é o valor da chave necessária para salvar os dados e valor é o valor dos dados que precisam ser salvos. Observe que se o valor da chave já estiver armazenado, a função atualizará seu valor correspondente.
Função Get é responsável por ler os dados do blockchain atual por meio do valor-chave. No exemplo abaixo, você pode preencher o valor da chave no painel de opções à direita para executar a função e ler os dados correspondentes ao valor da chave no blockchain.
Apagar
Função Apagar é responsável por deletar dados no blockchain através do valor da chave. No exemplo abaixo, você pode preencher o valor-chave da função no painel de opções à direita e excluir os dados correspondentes ao valor-chave no blockchain.
2. Exemplo de código da API de armazenamento
O código abaixo fornece um exemplo detalhado do uso de cinco APIs: GetContext, Get, Put, Delete e GetReadOnlyContext. Você pode tentar executar os dados da API em 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)
Posfácio
O armazenamento Blockchain é o núcleo de todo o sistema Blockchain. A API Ontology Storage é fácil de usar e amigável ao desenvolvedor.
Por outro lado, o armazenamento é o foco de ataques de hackers, como a ameaça à segurança que mencionamos em um dos artigos anteriores— ataque de injeção de armazenamentoOs desenvolvedores devem prestar atenção especial à segurança ao escrever códigos relacionados ao armazenamento. Você pode encontrar o guia completo em nosso GitHub aqui.
No próximo artigo discutiremos como usar API de tempo de execução.
O artigo foi traduzido pelos editores da Hashrate&Shares especialmente para a OntologyRussia. clique
Você é um desenvolvedor? Junte-se à nossa comunidade de tecnologia em Discord. Além disso, dê uma olhada Centro do Desenvolvedor Ontologia, você pode encontrar mais ferramentas, documentação e muito mais lá.