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:

Como escrever um contrato inteligente em Python na rede Ontology. Parte 2: API de armazenamento

Vamos dar uma olhada mais de perto em como usar essas cinco APIs.

0. Vamos criar um novo contrato SmartX

1. Como usar a API de armazenamento

GetContext e GetReadOnlyContext

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.

Como escrever um contrato inteligente em Python na rede Ontology. Parte 2: API de armazenamento

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.

Como escrever um contrato inteligente em Python na rede Ontology. Parte 2: API de armazenamentohashrate-and-shares.ru/images/obzorontology/python/functionput.png

Get

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.

Como escrever um contrato inteligente em Python na rede Ontology. Parte 2: API de armazenamento

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.

Como escrever um contrato inteligente em Python na rede Ontology. Parte 2: API de armazenamento

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

Tarefas abertas para desenvolvedores. Complete a tarefa e receba uma recompensa.

Aplicar para o programa de talentos Ontology para estudantes

Ontologia

site de ontologia - GitHub - Discord - Telegrama russo - Twitter - Reddit

Fonte: habr.com

Adicionar um comentário