Cómo escribir un contrato inteligente en Python en la red Ontology. Parte 2: API de almacenamiento

Cómo escribir un contrato inteligente en Python en la red Ontology. Parte 2: API de almacenamiento

Esta es la segunda parte de una serie de artículos educativos sobre la creación de contratos inteligentes en Python en la red blockchain de Ontology. En el artículo anterior conocimos Cadena de bloques y API de bloques Contrato inteligente de ontología.

Hoy discutiremos cómo usar el segundo módulo: API de almacenamiento. La API de almacenamiento tiene cinco API relacionadas que permiten agregar, eliminar y cambiar el almacenamiento persistente en contratos inteligentes en la cadena de bloques.

A continuación se muestra una breve descripción de estas cinco API:

Cómo escribir un contrato inteligente en Python en la red Ontology. Parte 2: API de almacenamiento

Echemos un vistazo más de cerca a cómo utilizar estas cinco API.

0. Creemos un nuevo contrato. SmartX

1. Cómo utilizar la API de almacenamiento

GetContext y GetReadOnlyContext

ObtenerContexto и Obtener contexto de solo lectura Obtenga el contexto en el que se ejecuta el contrato inteligente actual. El valor de retorno es el inverso del hash del contrato inteligente actual. Como el nombre sugiere, Obtener contexto de solo lectura toma el contexto de solo lectura. En el siguiente ejemplo, el valor de retorno es el inverso del hash del contrato que se muestra en la esquina superior derecha.

Cómo escribir un contrato inteligente en Python en la red Ontology. Parte 2: API de almacenamiento

poner

Función poner es responsable de almacenar datos en la cadena de bloques en forma de diccionario. Como se muestra, poner toma tres parámetros. ObtenerContexto toma el contexto del contrato inteligente que se está ejecutando actualmente, la clave es el valor de la clave que se necesita para guardar los datos y el valor es el valor de los datos que se deben guardar. Tenga en cuenta que si el valor de la clave ya está en la tienda, la función actualizará su valor correspondiente.

Cómo escribir un contrato inteligente en Python en la red Ontology. Parte 2: API de almacenamientohashrate-and-shares.ru/images/obzorontology/python/functionput.png

Recibe

Función Recibe es responsable de leer los datos en la cadena de bloques actual a través del valor clave. En el siguiente ejemplo, puede completar el valor clave en el panel de opciones a la derecha para ejecutar la función y leer los datos correspondientes al valor clave en la cadena de bloques.

Cómo escribir un contrato inteligente en Python en la red Ontology. Parte 2: API de almacenamiento

Borrar

Función Borrar es responsable de eliminar datos en la cadena de bloques a través del valor clave. En el siguiente ejemplo, puede completar el valor clave de la función en el panel de opciones de la derecha y eliminar los datos correspondientes al valor clave en la cadena de bloques.

Cómo escribir un contrato inteligente en Python en la red Ontology. Parte 2: API de almacenamiento

2. Ejemplo de código de API de almacenamiento

El siguiente código ofrece un ejemplo detallado del uso de cinco API: GetContext, Get, Put, Delete y GetReadOnlyContext. Puede intentar ejecutar los datos de la API en 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

El almacenamiento blockchain es el núcleo de todo el sistema blockchain. La API de Ontology Storage es fácil de usar y amigable para los desarrolladores.

Por otro lado, el almacenamiento es el foco de los ataques de piratas informáticos, como la amenaza a la seguridad que mencionamos en uno de los artículos anteriores: ataque de inyección de almacenamientoLos desarrolladores deben prestar especial atención a la seguridad al escribir código relacionado con el almacenamiento. Puedes encontrar la guía completa en nuestro GitHub aquí.

En el próximo artículo discutiremos cómo usar API de tiempo de ejecución.

El artículo fue traducido por los editores de Hashrate&Shares especialmente para OntologyRussia. клик

¿Eres desarrollador? Únase a nuestra comunidad tecnológica en Discord. Además, eche un vistazo a Centro de desarrolladores Ontología para obtener más herramientas, documentación y más.

Tareas abiertas para desarrolladores. Cierra la tarea y obtén una recompensa.

Aplicar para el programa de talentos Ontology para estudiantes

Ontología

sitio web de ontología - GitHub - Discord - telegrama ruso - Twitter - Reddit

Fuente: habr.com

Añadir un comentario