
Este es un tutorial oficial publicado anteriormente en el blog Ontology Medium
Emocionado de publicarlo para los lectores de Habr. Siéntase libre de hacer cualquier pregunta relacionada y sugerir un mejor formato para los materiales del tutorial.
Prólogo
Anteriormente, en la Parte 1, presentamos
Blockchain & Block API del contrato inteligente de Ontology. Hoy discutiremos cómo usar el segundo módulo:
API de almacenamiento . La API de almacenamiento tiene cinco API relacionadas que permiten la adición, eliminación y cambios en el almacenamiento persistente en los contratos inteligentes de blockchain. Aquí hay una breve descripción de las cinco API:

Echemos un vistazo más de cerca a cómo usar estas cinco API. Primero, cree un nuevo contrato
SmartX y luego siga los pasos a continuación. Como siempre, al final del artículo, proporcionaremos el enlace de GitHub del código fuente.
2 Cómo usar la API de almacenamiento
2.1 GetContext y GetReadOnlyContext
GetContext & GetReadOnlyContext obtiene el contexto en el que se ejecuta el contrato inteligente actual. El valor de retorno es el reverso del hash de contrato inteligente actual. Como su nombre lo indica,
GetReadOnlyContext obtiene el contexto del modo de solo lectura. En el siguiente ejemplo, el valor de retorno es el reverso del hash del contrato que se muestra en la esquina superior derecha.

2.2 Poner
La función
Put es responsable de almacenar los datos en la cadena de bloques en forma de diccionario. Como se muestra, Put acepta tres parámetros.
GetContext obtiene el contexto del contrato inteligente actual en ejecución, la clave es el valor clave que necesita almacenar datos y el valor es el valor de los datos que deben almacenarse. Tenga en cuenta que si el valor de la clave ya está almacenado, la función actualizará su valor correspondiente.

2.3 Obtener
La función
Obtener es responsable de leer los datos en la cadena de bloques existente a través del valor clave. En el ejemplo a continuación, puede completar el valor clave en el panel de parámetros a la derecha para ejecutar la función y leer los datos correspondientes al valor clave en la cadena de bloques:

2.4 Eliminar
La función de
eliminación es responsable de eliminar los datos en la cadena de bloques a través del valor clave. En el ejemplo a continuación, puede completar el valor clave para ejecutar la función en el panel de parámetros a la derecha y eliminar los datos correspondientes al valor clave en la cadena de bloques:

3 Código de muestra de API de almacenamiento
El siguiente código ofrece un ejemplo detallado del uso de cinco API:
GetContext; Obtener Poner; Eliminar y GetReadOnlyContext . Puede intentar ejecutar estas 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 de blockchain es el núcleo de todo el sistema blockchain.
El uso de la API de almacenamiento de Ontology es muy simple y amigable para el desarrollador.Por otro lado, el almacenamiento es el foco de los hackers, como la amenaza de seguridad que mencionamos en un artículo anterior:
ataque de inyección de almacenamiento , los desarrolladores deben prestar especial atención a la seguridad del código al escribir código relacionado con el almacenamiento.
Encuentra el tutorial detallado en GitHub
aquí .
En el siguiente artículo, discutiremos cómo usar la
API Runtime . Estén atentos!
¿Eres desarrollador? Asegúrate de unirte a nuestra comunidad tecnológica en
Discord . Además, eche un vistazo al
Centro de desarrolladores en nuestro sitio web, donde puede encontrar herramientas de desarrollador, documentación y más.
Encuentra ontología en otro lugar
Sitio web de ontologíaGithub /
discordiaTelegram (
inglés /
ruso )
Twitter /
Reddit /