
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:

Examinons de plus près comment utiliser ces cinq API.
0. Créez un nouveau contrat
SmartX1. 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.

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.
hashrate-and-shares.ru/images/obzorontology/python/functionput.pngObtenez
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.

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.

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