
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.png
 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