Comment écrire un contrat Python intelligent sur le réseau Ontology. Partie 2: API de stockage

image

Ceci est la deuxième partie d'une série de tutoriels sur la création de contrats intelligents en Python sur le réseau de blockchain d'Ontology. Dans un article précédent, nous avons rencontré l' API de contrats intelligents Blockchain & Block API d' Ontology.

Aujourd'hui, nous allons discuter de l'utilisation du deuxième module - l' API de stockage . L'API de stockage dispose de cinq API associées qui permettent d'ajouter, de supprimer et de modifier le stockage persistant dans les contrats intelligents sur la blockchain.

Voici une brève description de ces cinq API:

image

Examinons de plus près comment utiliser ces cinq API.

0. Créez un nouveau contrat SmartX

1. Comment utiliser l'API de stockage


GetContext & GetReadOnlyContext


GetContext et GetReadOnlyContext récupèrent le contexte dans lequel le contrat intelligent actuel est exécuté. La valeur de retour est l'inverse du hachage actuel du contrat intelligent. Comme son nom l'indique, GetReadOnlyContext prend un contexte en mode lecture seule. Dans l'exemple ci-dessous, la valeur de retour est l'inverse du hachage du contrat affiché dans le coin supérieur droit.

image

Mettez


La fonction Put est chargée de stocker les données sur la blockchain sous la forme d'un dictionnaire. Comme indiqué, Put prend trois paramètres. GetContext prend le contexte du contrat intelligent en cours d'exécution, clé est la valeur de clé qui est nécessaire pour enregistrer les données et valeur est la valeur des données qui doivent être enregistrées. Veuillez noter que si la valeur de clé est déjà dans le référentiel, la fonction mettra à jour sa valeur correspondante.

image hashrate-and-shares.ru/images/obzorontology/python/functionput.png

Obtenez


La fonction Get est responsable de la lecture des données dans la blockchain actuelle au moyen d'une valeur clé. Dans l'exemple ci-dessous, vous pouvez remplir la valeur de clé dans le panneau des paramètres à droite pour exécuter la fonction et lire les données correspondant à la valeur de clé dans la blockchain.

image

Effacer


La fonction Supprimer est responsable de la suppression des données dans la blockchain au moyen d'une valeur clé. Dans l'exemple ci-dessous, vous pouvez remplir la valeur de clé pour exécuter la fonction dans le panneau de paramètres à droite et supprimer les données correspondant à la valeur de clé dans la blockchain.

image

2. Exemple de code API de stockage


Le code ci-dessous donne un exemple détaillé de l'utilisation des cinq API: GetContext, Get, Put, Delete et GetReadOnlyContext. Vous pouvez essayer d'exécuter les données API dans 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) 

Postface


Le stockage de la blockchain est le cœur de l'ensemble du système de blockchain. L'API de stockage d'Ontology est facile à utiliser et pratique pour les développeurs.

D'autre part, les attaques de pirates se concentrent sur le stockage, par exemple, le risque de sécurité que nous avons mentionné dans l'un des articles précédents, l' attaque par injection de stockage , les développeurs doivent accorder une attention particulière à la sécurité lors de l'écriture de code associé au stockage. Vous pouvez trouver le guide complet sur notre github ici.

Dans le prochain article, nous verrons comment utiliser l' API Runtime .


L'article a été traduit par Hashrate & Shares spécifiquement pour OntologyRussia. cliquer

Êtes-vous développeur? Rejoignez notre communauté technologique sur Discord . Consultez également le Centre de développement d' Ontology pour plus d'outils, de documentation et plus encore.


Tâches ouvertes pour les développeurs. Fermez la tâche - obtenez une récompense.

Postulez pour le programme de talent Ă©tudiant en ontologie

Ontologie


Site Web d'ontologie - GitHub - Discord - Telegram Russian - Twitter - Reddit

Source: https://habr.com/ru/post/fr475618/


All Articles