So erstellen Sie einen Smart Python-Vertrag im Ontology-Netzwerk. Teil 2: Speicher-API

Bild

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:

Bild

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.

Bild

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.

Bild hashrate-and-shares.ru/images/obzorontology/python/functionput.png

Bekommen


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.

Bild

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.

Bild

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

Source: https://habr.com/ru/post/de475618/


All Articles