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 Serie von Lehrartikeln über die Erstellung von Smart Contracts in Python im Ontology-Blockchain-Netzwerk. 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 APIverwendet. Das Storage API hat fünf verwandte APIs, die das Hinzufügen, Entfernen und Ändern von Daten im persistenten Speicher in Smart Contracts auf der Blockchain ermöglichen.

Nachfolgend 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 näher darauf eingehen, wie man diese fünf APIs nutzt.

0. Erstellen wir einen neuen Vertrag SmartX

1. Wie man das Storage API verwendet

GetContext & GetReadOnlyContext

GetContext und GetReadOnlyContext erhalten den Kontext, in dem der aktuelle Smart Contract ausgeführt wird. Der Rückgabewert ist der Hash des aktuellen Smart Contracts. Wie der Name schon sagt, GetReadOnlyContext nimmt den Kontext im Nur-Lesen-Modus an. Im nachstehenden Beispiel ist der Rückgabewert der Hash des Vertrags, der in der oberen rechten Ecke angezeigt wird.

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

Put

Funktion Put ist verantwortlich für das Speichern von Daten in der Blockchain in Form eines Wörterbuchs. Wie gezeigt, Put nimmt es drei Parameter entgegen. GetContext nimmt den Kontext des aktuell ausgeführten Smart Contracts, key - das Schlüsselfeld, das benötigt wird, um die Daten zu speichern, und value - das Datenfeld, das gespeichert werden muss. Beachten Sie, dass, wenn der Schlüsselwert bereits im Speicher vorhanden ist, die Funktion den entsprechenden Wert aktualisiert.

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

Get

Funktion Get ist verantwortlich für das Lesen von Daten in der aktuellen Blockchain anhand des Schlüsselfeldes. Im nachstehenden Beispiel können Sie den Schlüsselwert im rechten Parameterbereich eingeben, um die Funktion auszuführen und die Daten abzurufen, die dem Schlüsselwert in der Blockchain entsprechen.

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

Delete

Funktion Delete ist verantwortlich für das Entfernen von Daten in der Blockchain anhand des Schlüsselfeldes. Im nachstehenden Beispiel können Sie den Schlüsselwert ausfüllen, um die Funktion im rechten Parameterbereich auszuführen und die Daten zu entfernen, die dem Schlüsselwert in der Blockchain entsprechen.

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

2. Beispielcode für Storage API

Der nachfolgende Code bietet ein detailliertes Beispiel für die Nutzung der fünf APIs: GetContext, Get, Put, Delete und GetReadOnlyContext. Sie können diese APIs ausprobieren. 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-Speicher ist das Herzstück des gesamten Blockchain-Systems. Die Ontology Storage API ist einfach zu verwenden und bequem für Entwickler.

Andererseits konzentrieren sich Hackerangriffe auf den Speicher, wie die Sicherheitsbedrohung, die wir in einem der vorherigen Artikel erwähnt haben— Speicher-Injektionsangriff, die Entwickler müssen bei der Erstellung von Code, der mit dem Speicher verbunden ist, besondere Aufmerksamkeit auf die Sicherheit legen. Sie können das vollständige Handbuch auf unserem GitHub hier.

Im nächsten Artikel werden wir diskutieren, wie man Runtime-API.

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

Sind Sie Entwickler? Treten Sie unserer technischen Gemeinschaft bei auf Discord. Schauen Sie auch in das Entwicklerzentrum Ontology, dort finden Sie weitere Werkzeuge, Dokumentation und vieles mehr.

Offene Aufgaben für Entwickler. Schließe die Aufgabe ab – erhalte eine Belohnung.

Bewerben für das Ontology Talentprogramm für Studenten

Ontology

Ontology-WebsiteGitHubDiscordTelegram RussischTwitter Reddit

Quelle: habr.com

60GB SSD 8Gb DDR4