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

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

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 Blockchain & Block API 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:

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

Vamos examinar mais detalhadamente como usar essas cinco APIs.

0. Criar um novo contrato SmartX

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.

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

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.

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

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.

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

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.

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

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 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)

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— ataque de injeção de armazenamento, os desenvolvedores devem prestar atenção especial à segurança ao escrever código relacionado ao armazenamento. Você pode encontrar o guia completo em nosso GitHub aqui.

No próximo artigo, discutiremos como usar Runtime API.

Este artigo foi traduzido pela equipe da Hashrate & Shares especialmente para a OntologyRussia. clique

Você é desenvolvedor? Junte-se à nossa comunidade técnica em Discord. Além disso, dê uma olhada no Centro de Desenvolvedores Ontology, onde você pode encontrar mais ferramentas, documentação e muito mais.

Tarefas abertas para desenvolvedores. Finalize uma tarefa — ganhe uma recompensa.

Inscreva-se no programa de talentos Ontology para estudantes

Ontology

site da Ontology — GitHub — Discord — Telegram Russo — Twitter — Reddit

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster