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

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

C'est la deuxième partie d'une série d'articles didactiques sur la création de contrats intelligents en Python sur le réseau blockchain Ontology. Dans l'article précédent, nous avons découvert Blockchain & Block API le contrat intelligent Ontology.

Aujourd'hui, nous allons discuter de la façon d'utiliser le deuxième module— Storage API. Le Storage API comprend cinq API associées qui permettent l'ajout, la suppression et les modifications dans un stockage permanent pour les contrats intelligents sur la blockchain.

Voici un bref aperçu de ces cinq API :

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

Examinons plus en détail comment utiliser ces cinq API.

0. Créons un nouveau contrat SmartX

1. Comment utiliser le Storage API

GetContext & GetReadOnlyContext

GetContext et GetReadOnlyContext obtiennent 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 obtient le 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.

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

Put

Fonction Put est responsable du stockage des données sur la blockchain sous forme de dictionnaire. Comme indiqué, Put elle prend trois paramètres. GetContext elle prend le contexte du contrat intelligent actuellement exécuté, key—c'est la valeur de la clé qu'il faut utiliser pour stocker les données, et value—c'est la valeur des données à stocker. Notez que si la valeur de la clé est déjà dans le stockage, la fonction mettra à jour la valeur correspondante.

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

Get

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

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

Supprimer

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

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

2. Exemple de code Storage API

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 ces 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 le cœur de tout système blockchain. L'API Ontology Storage est simple à utiliser et conviviale pour les développeurs.

D'un autre côté, le stockage est la cible des attaques des hackers, par exemple, la menace de sécurité que nous avons mentionnée dans un des articles précédents— attaque par injection dans le stockage, les développeurs doivent porter une attention particulière à la sécurité lors de l'écriture de code lié au stockage. Vous pouvez trouver le guide complet sur notre GitHub ici.

Dans le prochain article, nous discuterons de l'utilisation de API d'exécution.

Cet article a été traduit par l'équipe de Hashrate & Shares spécialement pour OntologyRussia. cliquer

Vous êtes développeur ? Rejoignez notre communauté technique sur Discord. De plus, jetez un coup d'œil à Centre des développeurs Ontology, où vous pouvez trouver plus d'outils, de la documentation et bien plus encore.

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

Postuler au programme des talents Ontology pour les étudiants.

Ontology

site Ontology — GitHub — Discord — Telegram Russe — Twitter — Reddit

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster