ProHoster > Blog > administration > Comment rédiger un contrat intelligent en Python sur le réseau Ontology. Partie 2 : API de stockage
Comment rédiger un contrat intelligent en Python sur le réseau Ontology. Partie 2 : API de stockage
Il s'agit de la deuxième partie d'une série d'articles pédagogiques sur la création de contrats intelligents en Python sur le réseau blockchain Ontology. Dans l'article précédent, nous avons fait connaissance Chaîne de blocs et API de blocs Contrat intelligent d’ontologie.
Aujourd'hui, nous allons discuter de la façon d'utiliser le deuxième module : API de stockage. L'API de stockage dispose de cinq API associées qui permettent l'ajout, la suppression et la modification du stockage persistant dans les contrats intelligents sur la blockchain.
Vous trouverez ci-dessous une brève description de ces cinq API :
Examinons de plus près comment utiliser ces cinq API.
ObtenirContext и GetReadOnlyContext obtenir 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 le nom le suggère, GetReadOnlyContext prend le contexte en 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.
mettre
Fonction mettre est chargé de stocker les données sur la blockchain sous la forme d'un dictionnaire. Comme montré, mettre prend trois paramètres. ObtenirContext prend le contexte du contrat intelligent en cours d'exécution, key est la valeur de la clé nécessaire pour enregistrer les données et value est la valeur des données qui doivent être enregistrées. Notez que si la valeur de la clé est déjà dans le magasin, la fonction mettra à jour sa valeur correspondante.
Fonction Obtenez est responsable de la lecture des données dans la blockchain actuelle via la valeur clé. Dans l'exemple ci-dessous, vous pouvez renseigner la valeur clé dans le panneau d'options à droite pour exécuter la fonction et lire les données correspondant à la valeur clé dans la blockchain.
Supprimer
Fonction Supprimer est responsable de la suppression des données dans la blockchain via la valeur clé. Dans l'exemple ci-dessous, vous pouvez renseigner la valeur clé de la fonction dans le panneau d'options de droite et supprimer les données correspondant à la valeur clé dans la blockchain.
2. Exemple de code API de stockage
Le code ci-dessous donne un exemple détaillé de l'utilisation de cinq API : GetContext, Get, Put, Delete et GetReadOnlyContext. Vous pouvez essayer d'exécuter les données de l'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 blockchain est au cœur de tout le système blockchain. L'API Ontology Storage est facile à utiliser et conviviale pour les développeurs.
D’un autre côté, le stockage fait l’objet d’attaques de pirates informatiques, comme la menace de sécurité que nous avons évoquée dans l’un des articles précédents : attaque par injection de stockageLes développeurs doivent accorder une attention particulière à la sécurité lors de l’écriture de code lié au stockage. Vous pouvez retrouver le guide complet sur notre GitHub ici.
Dans le prochain article, nous verrons comment utiliser API d'exécution.
L'article a été traduit par les éditeurs de Hashrate&Shares spécialement pour OntologyRussia. клик
Vous êtes développeur? Rejoignez notre communauté technologique sur Discorde. Aussi, jetez un oeil à Centre de développement Ontologie pour plus d'outils, de documentation, et plus encore.