
Dies ist der zweite Teil einer Reihe von Lernprogrammen zum Erstellen intelligenter Verträge in Python im Ontology-Blockchain-Netzwerk. In einem früheren Artikel haben wir uns mit der Ontology
Blockchain & Block API- Smart-Contract-
API getroffen .
Heute werden wir diskutieren, wie das zweite Modul verwendet wird - die
Speicher-API . Die Speicher-API verfügt über fünf zugehörige APIs, mit denen Sie dauerhaften Speicher in intelligenten Verträgen in der Blockchain hinzufügen, löschen und ändern können.
Nachfolgend finden Sie eine kurze Beschreibung dieser fünf APIs:

Sehen wir uns die Verwendung dieser fünf APIs genauer an.
0. Erstellen Sie einen neuen
SmartX- Vertrag
1. Verwendung der Speicher-API
GetContext & GetReadOnlyContext
GetContext und
GetReadOnlyContext ermitteln den Kontext, in dem der aktuelle Smart Contract ausgeführt wird. Der Rückgabewert ist die Umkehrung des aktuellen Hash des Smart-Vertrags. Wie der Name schon sagt, verwendet
GetReadOnlyContext einen schreibgeschützten Kontext. Im folgenden Beispiel ist der Rückgabewert die Umkehrung des Vertrags-Hashs, der in der oberen rechten Ecke angezeigt wird.

Put
Die
Put- Funktion ist für das Speichern von Daten in der Blockchain in Form eines Wörterbuchs zuständig. Wie gezeigt, nimmt
Put drei Parameter an.
GetContext verwendet den Kontext des aktuell ausgeführten Smart Contract. Key ist der Schlüsselwert, der zum Speichern der Daten erforderlich ist, und Value ist der Wert der Daten, die gespeichert werden müssen. Beachten Sie, dass die Funktion den entsprechenden Wert aktualisiert, wenn sich der Schlüsselwert bereits im Repository befindet.
hashrate-and-shares.ru/images/obzorontology/python/functionput.pngBekommen
Die
Get- Funktion ist für das Lesen von Daten in der aktuellen Blockchain mithilfe eines Schlüsselwerts verantwortlich. Im folgenden Beispiel können Sie den Schlüsselwert im Parameterfeld rechts eingeben, um die Funktion auszuführen und die Daten zu lesen, die dem Schlüsselwert in der Blockchain entsprechen.

Löschen
Die Funktion
Löschen ist für das Löschen von Daten in der Blockchain mithilfe eines Schlüsselwerts verantwortlich. Im folgenden Beispiel können Sie den Schlüsselwert eingeben, um die Funktion im Parameterbereich auf der rechten Seite auszuführen, und die Daten löschen, die dem Schlüsselwert in der Blockchain entsprechen.

2. Beispiel für einen Speicher-API-Code
Der folgende Code enthält ein detailliertes Beispiel für die Verwendung der fünf APIs: GetContext, Get, Put, Delete und GetReadOnlyContext. Sie können versuchen, die API-Daten in
SmartX auszuführen .
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
Blockchain-Speicher ist der Kern des gesamten Blockchain-Systems. Die Ontology-Speicher-API ist benutzerfreundlich und für Entwickler praktisch.
Auf der anderen Seite konzentrieren sich Hackerangriffe auf den Speicher, zum Beispiel auf das Sicherheitsrisiko, das wir in einem der vorherigen Artikel,
Speicherinjektionsangriff , erwähnt haben. Entwickler müssen beim Schreiben von Code, der mit dem Speicher verknüpft ist, besonderes Augenmerk auf die Sicherheit legen. Den kompletten Guide auf unserem
Github finden Sie hier.
Im nächsten Artikel wird die Verwendung der
Runtime-API erläutert .
Der Artikel wurde von Hashrate & Shares speziell für OntologyRussia übersetzt. klicke
Sind Sie Entwickler? Treten Sie unserer Tech-Community bei
Discord bei . Weitere Tools, Dokumentationen und mehr finden Sie
im Ontology
Developer Center .
Offene Aufgaben für Entwickler. Schließen Sie die Aufgabe - erhalten Sie eine Belohnung.
Bewerben Sie sich für das Ontology Student Talent Program
Ontologie
Ontologie-Website -
GitHub -
Discord -
Telegramm Russisch -
Twitter -
Reddit