ProHoster > Blog > Administración > Como escribir un contrato intelixente en Python na rede Ontology. Parte 2: API de almacenamento
Como escribir un contrato intelixente en Python na rede Ontology. Parte 2: API de almacenamento
Esta é a segunda parte dunha serie de tutoriais sobre a creación de contratos intelixentes en Python na rede Ontology blockchain. No artigo anterior coñecémonos Blockchain e Block API Ontoloxía de contrato intelixente.
Hoxe discutiremos como usar o segundo módulo: API de almacenamento. A API de almacenamento ten cinco API asociadas que permiten engadir, eliminar e modificar o almacenamento persistente en contratos intelixentes na cadea de bloques.
A continuación móstrase unha breve descrición destas cinco API:
GetContext и GetReadOnlyContext obter o contexto no que se executa o contrato intelixente actual. O valor de retorno é o recíproco do hash actual do contrato intelixente. Como o nome indica, GetReadOnlyContext toma un contexto de modo só lectura. No seguinte exemplo, o valor de retorno é o reverso do hash do contrato que se mostra na esquina superior dereita.
Poñer
Función Poñer encárgase de almacenar os datos na cadea de bloques en forma de dicionario. Como se mostra, Poñer toma tres parámetros. GetContext toma o contexto do contrato intelixente que se está a executar actualmente, a clave é o valor clave que se necesita para gardar os datos e o valor é o valor dos datos que se deben gardar. Teña en conta que se o valor da clave xa está na tenda, a función actualizará o seu valor correspondente.
Función Obter encárgase de ler os datos da cadea de bloques actual a través do valor clave. No seguinte exemplo, pode encher o valor da clave no panel de opcións da dereita para executar a función e ler os datos correspondentes ao valor da clave na cadea de bloques.
Borrar
Función Borrar é responsable de eliminar os datos da cadea de bloques a través do valor da chave. No seguinte exemplo, pode encher o valor da clave para a función no panel de opcións da dereita e eliminar os datos correspondentes ao valor da clave na cadea de bloques.
2. Exemplo de código API de almacenamento
O código a continuación ofrece un exemplo detallado do uso de cinco API: GetContext, Get, Put, Delete e GetReadOnlyContext. Podes probar a executar os datos da API 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)
Posterior
O almacenamento blockchain é o núcleo de todo o sistema blockchain. A API de Ontology Storage é fácil de usar e amigable para desenvolvedores.
Por outra banda, o almacenamento é o foco dos ataques de piratas informáticos, como a ameaza á seguridade que mencionamos nun dos artigos anteriores— ataque de inxección de almacenamento, os desenvolvedores están obrigados a prestar especial atención á seguridade ao escribir código relacionado co repositorio. Podes atopar a guía completa na nosa web GitHub здесь.
No seguinte artigo discutiremos como usalo API de execución.
O artigo foi traducido polos editores de Hashrate&Shares especialmente para OntologyRussia. chorar
Vostede é un programador? Únete á nosa comunidade tecnolóxica en Discordia. Ademais, bótalle un ollo Centro de Desenvolvedores Ontoloxía para obter máis ferramentas, documentación e moito máis.