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 :

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

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

0. Créons un nouveau contrat SmartX

1. Comment utiliser l'API de stockage

GetContext et GetReadOnlyContext

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.

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

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.

Comment rédiger un contrat intelligent en Python sur le réseau Ontology. Partie 2 : API de stockagehashrate-and-shares.ru/images/obzorontology/python/functionput.png

Obtenez

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.

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

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.

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

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.

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

Appliquer pour le programme de talent Ontologie pour les étudiants

Ontologie

Site d'ontologie - GitHub - Discorde - Télégramme russe - Twitter - Reddit

Source: habr.com

Ajouter un commentaire