Dieser Blogpost ist ein Artikel in einer Serie von Artikeln zu dem im Dezember 2019 erschienenen Buch „Blockchain mit SAP“ (Rheinwerk Verlag, Bonn, ISBN 978-3-8362-6914-8). In diesem Blogpost geht es um das achte Kapitel aus dem Buch, in dem zwei Beispielanwendungen für die MultiChain entwickelt werden.
MultiChain ist ein Abkömmling der Bitcoin Software, erweitert um Funktionen für den Betrieb in privaten Netzwerken. Konkret wird dies durch Verschlüsselung realisiert, um die Kommunikation der Teilnehmer zu schützen.
Die SAP Cloud Platform unterstützt MultiChain 1.0 und die neue Version 2.0. In der Version 1.0 werden keine Smart Contracts unterstützt – die MultiChain ist somit lediglich ein Distributed Ledger, ein verteiltes Kontenbuch, ohne die Möglichkeit der Automatisierung und Programmierung. Erst mit Version 2.0 wurde sogenannte Smart Filters eingeführt – nur ein anderes Wort für Smart Contracts. Die Programmiersprache dafür ist Javascript. MultiChain bietet die Unterstützung für sogenannte Assets (Vermögenswerte), die in eigenen Streams verwaltet werden können.
Keine Smart Contracts?
Ohne Programmierbarkeit der Blockchain stellt sich die Frage nach der Konfigurierbarkeit für eigene Anwendungen – wie entwickelt man eigene Anwendungen für die MultiChain?
Die Antwortet lautet RPC (Remote Procedure Calls). Die SAP Cloud Platform bietet im SAP Business Hub ein Swagger-Interface an, mit dem man seine Instanz der MultiChain per http-Aufrufe konfigurieren kann. Damit das funktioniert, muss man einen eigenen MultiChain-Knoten provisioniert, und einen Service Key dafür erstellt haben. Mit diesen Informationen logt man sich auf der API Seite ein, und richtet eine Arbeitsumgebung ein („Configure Environments“), unter Angabe des neuen Service Keys. Das sieht zum Beispiel wie folgt aus:
Links im Screenshot werden die beiden Kategorien RPC (remote procedure calls) und Availability (Verfügbarkeit) aufgeführt – die Aufrufe der ersten Kategorie konfigurieren die MultiChain-Blockchain, die zweite Kategorie zeigt die generelle Verfügbarkeit („heartbeat“) des Knotens an.
Pharma Inventar
Es wird eine erste einfache Anwendung zur Inventarisierung von Medikamenten mit MultiChain entwickelt, analog zum Hyperledger Telefonbuch-Beispiel aus einem der vorherigen Blogposts. Ein einzelnes Medikament ist gekennzeichnet durch seine Eigenschaften wie Name, ID, Herstellungsdatum und so weiter – diese gilt es in der Blockchain zu erfassen.
Dazu muss bei einer MultiChain-Blockchain zunächst ein eigener Stream definiert werden – eine eigener Datencontainer zur Speicherung unserer Medikamente. Diesem Stream können wiederum Schlüssel-Wert-Paare zugewiesen werden. Die Idee ist somit, unsere Medikamente als JSON-Objekte unter Angabe eines eindeutigen Schlüssels in der Blockchain zu speichern.
Unter Verwendung der MultiChain-API für Version 1.0 wird der Stream eingerichtet – dabei muss ein Name vergeben werden, hier im Screenshot „DemoStream“.
Nach erfolgreichen Aufruf ist die Blockchain erfolgreich konfiguriert, und man kann einzelne Medikamente in den Stream schreiben. Auch dies geschieht mittels eines speziellen RPC-Aufrufes (Methode „publish“).
SAPUI5-Frontend
Nachdem das Backend erfolgreich entwickelt wurde, kann nun ein entsprechendes Frontend dafür entwickelt werden. Der nachfolgende Screenshot zeigt die fertige Oberfläche für das MultiChain Pharma Inventar.
Die Oberfläche erlaubt das einfache Hinzufügen von neuen Produkten, das Ändern ihrer Verfügbarkeit und listet alle erfassten Produkte auf. Sie ist in der SAP Web IDE entwickelt worden, und setzt die allgemeinen Operationen wie das Speichern neuer Medikamente und das Auslesen vorhandener Medikamente in Javascript um. Dazu setzt das Frontend direkt RPC-Aufrufe an die MultiChain-Blockchain ab, und erhält die Ergebnisse dazu, die wiederum im Frontend angezeigt werden. Beim Schreiben wird ein neues Medikamente als JSON-Objekt von der Oberfläche in die Blockchain geschrieben. Andersherum kann auch die Oberfläche einen Lese-Aufruf per AJAX-Aufruf an die Blockchain absetzen, um alle gespeicherten Medikamente abzufragen.
Weitere Artikel dieser Serie finden sie hier:
- Was ist eine Blockchain und wie funktioniert sie?
- Blockchain-as-a-Service-Angebote der SAP Cloud Platform
- Cloud Computing von SAP: Die SAP Cloud Platform
- Blockchain mit SAP – Geschäftliche Anwendungsszenarien für Blockchains
- Blockchain mit SAP – Erste Schritte zur eigenen Blockchain
- Blockchain mit SAP – Blockchain-Anwendungen mit Hyperledger Fabric entwickeln
- Blockchain mit SAP – Blockchain-Anwendungen mit Hyperledger Fabric entwickeln
- Blockchain mit SAP – SAP HANA Integration
- Blockchain mit SAP – MultiChain Anwendungen
- Blockchain mit SAP – Hybride Netzwerkarchitektur und Camelot Hypertrust Plattform
- Blockchain mit SAP – Zusammenfassung und Ausblick
Wollen Sie mehr über die Möglichkeiten von MultiChain für Ihr Unternehmen erfahren? In unserem Buch „Blockchain mit SAP“ erläutern wir Ihnen ausführlich die Vorteile von MultiChain-basierten Blockchainlösungen. Eine ausführliche Leseprobe zum Buch stellt der Verlag online bereit.