Wie man einen Smart Contract in Python im Ontology-Netzwerk schreibt. Teil 2: Storage API

Wie man einen Smart Contract in Python im Ontology-Netzwerk schreibt. Teil 2: Storage API

Dies ist der zweite Teil einer Reihe von Lernartikeln über die Erstellung von Smart Contracts in Python auf der Blockchain-Plattform Ontology. Im vorherigen Artikel haben wir uns mit Blockchain & Block API dem Smart Contract von Ontology beschäftigt.

Heute werden wir besprechen, wie man das zweite Modul— Storage API. Die Storage API verfügt über fünf verwandte APIs, die das Hinzufügen, Entfernen und Ändern von Daten im permanenten Speicher in Smart Contracts auf der Blockchain ermöglichen.

Im Folgenden finden Sie eine kurze Beschreibung dieser fünf APIs:

Wie man einen Smart Contract in Python im Ontology-Netzwerk schreibt. Teil 2: Storage API

Lassen Sie uns genauer darauf eingehen, wie man diese fünf APIs verwendet.

0. Erstellen wir einen neuen Vertrag SmartX

1. Nutzung der Storage API

GetContext & GetReadOnlyContext

GetContext und GetReadOnlyContext erhalten den Kontext, in dem der aktuelle Smart Contract ausgeführt wird. Der Rückgabewert ist der inverse aktuelle Hash des Smart Contracts. Wie der Name schon sagt, GetReadOnlyContext nimmt den Kontext im Nur-Lese-Modus. Im folgenden Beispiel ist der Rückgabewert der inverse Hash des Vertrags, der oben rechts angezeigt wird.

Wie man einen Smart Contract in Python im Ontology-Netzwerk schreibt. Teil 2: Storage API

Put

Die Funktion Put ist verantwortlich für die Speicherung von Daten in der Blockchain in Form eines Wörterbuchs. Wie gezeigt, Put nimmt drei Parameter an. GetContext nimmt den Kontext des aktuellen ausgeführten Smart Contracts auf, key— ist der Wert des Schlüssels, der benötigt wird, um Daten zu speichern, und value— ist der Wert der Daten, die gespeichert werden müssen. Beachten Sie, dass die Funktion den entsprechenden Wert aktualisiert, wenn der Schlüsselwert bereits im Speicher vorhanden ist.

Wie man einen Smart Contract in Python im Ontology-Netzwerk schreibt. Teil 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Holen

Die Funktion Holen ist verantwortlich für das Lesen von Daten im aktuellen Blockchain über den Schlüsselwert. Im folgenden Beispiel können Sie den Schlüsselwert im Parameterbereich rechts ausfüllen, um die Funktion auszuführen und die entsprechenden Daten, die dem Schlüsselwert in der Blockchain entsprechen, zu lesen.

Wie man einen Smart Contract in Python im Ontology-Netzwerk schreibt. Teil 2: Storage API

Löschen

Die Funktion Löschen ist verantwortlich für das Löschen von Daten in der Blockchain über den Schlüsselwert. Im folgenden Beispiel können Sie den Schlüsselwert ausfüllen, um die Funktion im Parameterbereich rechts auszuführen und die entsprechenden Daten, die dem Schlüsselwert in der Blockchain entsprechen, zu löschen.

Wie man einen Smart Contract in Python im Ontology-Netzwerk schreibt. Teil 2: Storage API

2. Beispielcode Storage API

Der nachstehende Code bietet ein detailliertes Beispiel für die Verwendung von fünf APIs: GetContext, Get, Put, Delete und GetReadOnlyContext. Sie können versuchen, diese APIs auszuführen in 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)

Nachwort

Die Blockchain-Speicherung ist das Herzstück des gesamten Blockchain-Systems. Die Ontology Storage API ist einfach zu verwenden und benutzerfreundlich für Entwickler.

Andererseits sind Speicherziele häufig Angriffen von Hackern ausgesetzt, wie zum Beispiel der Sicherheitsbedrohung, die wir in einem der vorherigen Artikel erwähnt haben— Speichereinschleusungsangriff, und deshalb müssen Entwickler besonders auf die Sicherheit achten, wenn sie Code schreiben, der mit dem Speicher verbunden ist. Sie können das vollständige Handbuch auf unserem finden GitHub hier.

Im nächsten Artikel werden wir erörtern, wie man verwendet Runtime API.

Der Artikel wurde von der Redaktion Hashrate & Shares speziell für OntologyRussia übersetzt. klicken

Sind Sie Entwickler? Treten Sie unserer technischen Gemeinschaft auf Discord. Außerdem schauen Sie in das Entwicklerzentrum von Ontology, wo Sie weitere Werkzeuge, Dokumentationen und vieles mehr finden können.

Offene Aufgaben für Entwickler. Schließen Sie die Aufgabe ab — erhalten Sie eine Belohnung.

Bewerben Sie sich für das Ontology Talentprogramm für Studenten

Ontology

Ontology-WebsiteGitHubDiscordTelegram RussischTwitter Reddit

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster