Praxis: Blockchain in der IBM Cloud – Kostenlos testen
IBM gehört sicherlich zu den Unternehmen, die sich am stärksten im Bereich der Blockchain engagieren. Hier arbeitet IBM vorrangig mit Hyperledger und im Blockchain-Framework Hyperledger Fabric.
IBM bietet auf seiner Cloud-Plattform IBM Cloud auch Blockchain-Lösungen an, die auf Hyperledger Fabric aufbauen. Basis der Blockchain mit Hyperledger Fabric ist ein Kubernetes-Cluster, der über einen Assistenten in der IBM Cloud erstellt werden kann.
Es ist grundsätzlich möglich, in der IBM Cloud auch ein kostenloses Kontingent zu buchen. Der Zugriff auf die IBM Cloud erfolgt über die URL https://cloud.ibm.com.
Wir haben uns mit dem Thema bereits im Beitrag „IBM Blockchain Platform – Blockchain-as-a-Service“ auseinandergesetzt. Das Blockchain-Framework Hyperledger Fabric bietet nahezu alle notwendigen Tools und Schnittstellen für die Entwicklung von Blockchain-Anwendungen.
Was in Hyperledger Fabric nicht möglich ist, wird durch Drittentwickler zur Verfügung gestellt. Schnittstellen gibt es auch für Entwickler haufenweise, zum Beispiel zu Microsoft Visual Studio, auch zur kostenlosen Version Visual Studio Code.
Blockchain Platform in der IBM Cloud nutzen
Allerdings stehen in der IBM Cloud Free Tier keine Blockchain-Dienste zur Verfügung. Wer die Umgebung testen will, kann aber ein Upgrade auf ein kostenpflichtiges Abonnement durchführen. In diesem Zug stellt IBM auch ein Budget von 200 US-Dollar zur Verfügung.
Dieses Budget reicht in den meisten Fällen aus, um sich einen Überblick zu den Möglichkeiten im Bereich der Blockchain auf der IBM Cloud zu machen. Die IBM Cloud arbeitet mit dem Pay-as-you-Go-Modell.
Das heißt, es muss nur das bezahlt werden, was Anwender auch tatsächlich nutzen. Für einen Test der Möglichkeiten muss zwar ein kostenpflichtiges Abonnement in der IBM Cloud erstellt werden, allerdings fallen erst dann Kosten an, wenn das Budget von 200 US-Dollar aufgebraucht ist.
Konfigurieren der Blockchain Platform in der IBM Cloud
Sobald ein passendes Konto zur Verfügung steht, kann in der IBM Cloud die Blockchain Platform konfiguriert werden. Die Lösung ist über das Suchfeld oben nach Eingabe von „Blockchain Platform“ zu finden. Über die Registerkarte „Erstellen“ erfolgt die Konfiguration der Blockchain Platform.
Der Vorgang dauert einige Zeit, da für den Betrieb der Blockchain auch eine Infrastruktur notwendig ist, die in der IBM Cloud ebenfalls zur Verfügung gestellt werden muss. Auch diese Ressourcen verursachen Kosten, die aber von dem Budget abgezogen werden, das IBM zur Verfügung stellt.
Wichtig ist nur, dass am Ende des Tests die Blockchain-Lösung entweder gelöscht wird, oder Verantwortliche das entsprechende Budget einplanen, um die Plattform in der Cloud zu betreiben.
Im ersten Schritt wird bei der Erstellung der neuen Ressource der passende Standort ausgewählt. Hier steht zum Beispiel Frankfurt als deutscher Standort zur Verfügung, es gibt aber auch verschiedene, internationale Standorte.
Die Kosten für die Verwendung der Blockchain Platform in der IBM Cloud liegen bei 0,29 US-Dollar pro Virtual Processor Core-Hours. Für Testzwecke zieht IBM den Betrag vom Budget ab, das beim Abschluss eines kostenpflichtigen Kontos automatisch zur Verfügung steht.
Im unteren Bereich werden noch der Name, die Tags und die gewünschte Ressourcengruppe, in welcher die neue Blockchain betrieben werden soll, konfiguriert. Auf der Registerkarte „Informationen“ sind weiterführende Daten darüber zu finden, was die einzelnen Optionen bewirken.
Mit der Schaltfläche „Erstellen“ aktiviert der Assistent die Ressource in der Cloud. Das ist aber erst der erste Schritt zur Einrichtung einer eigenen Blockchain. Denn für die Konfiguration sind noch weitere Schritte notwendig.
Kubernetes-Cluster für den Betrieb der eigenen Blockchain erstellen
Nach der erfolgreichen Erstellung des Dienstes, kann die erste, eigene Blockchain erstellt werden. Dazu sind noch weitere Komponenten notwendig, die direkt in der IBM Cloud laufen. Es ist keine eigene Hard- oder Software notwendig, alle Ressourcen lassen sich in der IBM Cloud zur Verfügung stellen.
Auf der zweiten Seite des Assistenten wird zunächst mit „Kubernetes-Cluster in IBM Cloud erstellen“ ein Assistent gestartet, der dabei hilft einen Container-Cluster für die Bereitstellung der Blockchain zu installieren. Der Assistent zeigt darüber hinaus im Fenster auch an, welche Ausstattung der Cluster für verschiedene Einsatzgebiete haben sollte.
Nach der Auswahl von „Kubernetes-Cluster in IBM Cloud erstellen“ kann der gewünschte Cluster in der ausgewählten Konfiguration erstellt werden.
Wer auf Basis des Kubernetes-Clusters eine Blockchain mit Hyperledger Fabric in der IBM Cloud aufbauen will, sollte sich etwas mit der Konfiguration von Kubernetes auskennen. Generell sind die Voreinstellungen für den Cluster bereits passend für das ausgewählte Einsatzgebiet.
Auch die Konfiguration des Standortes und die Verwendung von VLANs ist an dieser Stelle steuerbar. Hier sollten die einzelnen Optionen genau geprüft werden, denn nach der Erstellung des Kubernetes-Clusters ist keine Änderung der Optionen mehr möglich.
Bei der Erstellung muss auch darauf geachtet werden, dass auch der Kubernetes-Cluster Kosten verursacht. Die Blockchain wird wiederum auf Basis von Hyperledger Fabric im Kubernetes-Cluster bereitgestellt. Nach der Auswahl von „Erstellen“ installiert der Assistent den Kubernetes-Cluster, sodass dieser mit der Blockchain Platform verknüpft werden kann.
Sobald der Cluster erstellt ist, steht auch die dazugehörige Ressource in der IBM Cloud zur Verfügung. Der Cluster stellt eine eigene Konstruktion dar, die auch getrennt von der Blockchain Platform verwaltet und betrieben wird. Erst, wenn bei „Masterstatus“ die Bereitstellung als abgeschlossen angezeigt wird, steht der Cluster für die Blockchain Platform zur Verfügung.
Auf den Worker-Nodes im Kubernetes-Cluster laufen die eigentlichen Dienste, die auch die Blockchain zur Verfügung stellen. Die Worker-Nodes werden wiederum durch den Master-Node gesteuert. Das Erstellen der Worker-Nodes kann durchaus über eine Stunde dauern. Durch einen Klick auf „Workerknoten“ in der Weboberfläche der IBM Cloud für den Kubernetes-Cluster ist zu sehen, wann diese erstellt sind.
Solange bei „Status“ noch „Bereitstellung läuft“ zu sehen ist, kann der Cluster nicht mit der Blockchain Platform verknüpft werden. Nach etwa einer Stunde sollen alle Worker-Nodes den Status „Normal“ haben und in der oberen Leiste sollte der Status des Clusters auch als „Normal“ angezeigt werden.
Sobald der Cluster erstellt ist, steht auch das Kubernetzes-Dashboard zur Verfügung. Vor der Erstellung der eigenen Blockchain sollte der Cluster zuerst überprüft werden. Es dauert einige Zeit, bis der Cluster zur Verfügung steht. Im oberen Bereich des Fensters ist auch zu sehen, welche Aufgaben der Assistent aktuell durchführt.
Sobald der Cluster erstellt ist, kann auf der Verwaltungswebseite für die neue Blockchain bei „Kubernetes-Cluster in IBM Cloud verknüpfen“ der Cluster ausgewählt werden. Das funktioniert erst dann, wenn der Assistent seine Aufgaben abgeschlossen hat.
Sobald der Dienst erstellt ist, steht die Blockchain-Plattform-Konsole zur Verfügung. Nach dem Start kann über diese Konsole die Blockchain. Nach dem Start der Konsole lassen sich die verschiedenen Funktionen des Blockchain-Dienstes steuern. Über die Konsole können neue Peers, Zertifizierungsstellen und andere Objekte hinzugefügt werden. Im oberen Bereich steht über den Menüpunkt „Einstieg“ eine Dokumentation zur Verfügung, die bei der Einrichtung der eigenen Blockchain hilft.
Die Verwaltung der einzelnen Blockchain-Dienste findet in der Verwaltungskonsole der IBM Blockchain Platform statt. Der Dienst dazu steht wiederum auf Basis von Ressourcen zur Verfügung, die in der IBm Cloud zur Verfügung stehen. Im Dashboard der IBM Cloud sind die dazugehörigen Ressourcen zu sehen. Diese Dienste sind wichtig für den Betrieb der eigenen Blockchain.
Die Verwaltung der Blockchain erfolgt also in der Konsole der IBM Blockchain Platform, die Verwaltung der Ressourcen, die für den Betrieb der Blockchain notwendig sind, erfolgen in der IBM Cloud-Konsole. Hier können auch jederzeit weitere Ressourcen hinzugefügt werden. Auch das Anpassen und erweitern der Ressourcen ist an dieser Stelle möglich.
Verwalten der eigenen Blockchain in der IBM Cloud
Smart Contracts mit der IBM Blockchain Platform
Um eine eigene Blockchain aufzubauen, zum Beispiel für das Bereitstellen von Smart Contracts, sind zunächst Peers notwendig. Diese dienen der Blockchain als Host und als Speicher für die Ledgers der Blockchain. Über den Menüpunkt „Peer hinzufügen“ startet ein Assistent, der dabei unterstützt neue Peers zu erstellen. Hier lassen sich alle notwendigen Optionen steuern.
Der erste Schritt bei der Erstellung eines Peers besteht darin, einen Namen zu definieren. Dazu kommen erweiterte Einstellungsmöglichkeiten, die Statusdatenbank, Bereitstellungszonen, CAs und Ressourcenzuordnung. Für die Erstellung eines Peers ist eine Zertifizierungsstelle notwendig. Auch diese lässt sich in der Konsole definieren.
Beim Erstellen einer Zertifizierungsstelle ist auch eine Datenbank notwendig. Der Assistent, der bei der Erstellung der CA unterstützt, ermöglicht als Datenbank die Auswahl zwischen SQLite und PostgreSQL. Nach Auswahl der entsprechenden Optionen steht die CA zur Verfügung. Die Bereitstellung dauert nur wenige Minuten.
Organisationen erstellen
Wenn die Zertifizierungsstelle zur Verfügung steht, ist es sinnvoll in der Blockchain Platform-Konsole über den Menüpunkt „Organisationen“ eine MSP-Definition zu erstellen. Im Rahmen der Erstellung der MSP-Definition wird eine Zertifizierungsstelle benötigt. Daher ist es sinnvoll in der Konsole zunächst diese CA zu definieren. Bis die CA zur Verfügung steht, kann es einige Minuten dauern. Neben der Erstellung einer neuen Organisation ist es auch möglich die MSP-Definitionen als JSON-Datei hochzuladen.
Kanäle und Smart Contracts in der eigenen Cloud definieren
Parallel zu Organisationen stehen bei der Bereitstellung von Hyperledger Fabric in der IBM Cloud auch Kanäle zur Verfügung. Diese lassen sich in einem eigenen Bereich erstellen und verwalten. Hier ist es auch möglich, vorhandenen Kanälen beizutreten.
Für das Beitreten zu einem Kanal ist wiederum ein Peer notwendig, der ebenfalls in der Konsole erstellt werden kann, wenn wiederum an dieser Stelle einem Kanal beigetreten werden soll.
Kanäle benötigen wiederum Anordnungslisten, die ebenfalls in der Konsole erstellt und verwaltet werden können. Auch das Erstellen der Anordnungsservices gehört daher zu den ersten Schritten, zusammen mit der Definition einer neuen Organisation und den dazugehörigen Peers. Alle Optionen stehen über den Icons auf der linken Seite zur Verfügung.
IBM stellt für die Entwicklung von Smart Contracts auch eine kostenlose Erweiterung für die kostenlose Entwicklungs-Umgebung Microsoft Visual Studio Code zur Verfügung. Diese auch Tutorials enthält, und mit der Entwickler sehr schnell einen Einstieg in Smart Contracts mit Hyperledger Fabric erhalten.
Wenn alle Objekte für die eigene Blockchain erstellt und definiert wurden, lassen sich auch Smart Contracts in der Konsole definieren. Dazu steht auf der linken Seite der Konsole ein eigener Bereich zur Verfügung. Hier lassen sich in der IBM Cloud Platform auch Smart Contracts auf Basis von Fabric 2.0 erstellen. Die Konfiguration der einzelnen Objekte erfolgt über die Menüpunkte auf der linken Seite. Hier lassen sich alle wichtigen Optionen aufrufen und steuern.
Für die Konfiguration der Berechtigungen zum Verwenden der Blockchain stehen in der IBM Cloud auch die Funktionen der Identity and Access Management (IAM)-Lösung der Cloud zur Verfügung. Administratoren der Blockchain können die Zugriffe über IAM in der IBM Cloud zuweisen. Die Konsole dazu ist im Menü zur Steuerung der Zugriffe verlinkt. In den Optionen ist es darüber hinaus möglich auch Einstellungen für die Benutzer zu definieren.
Bis die eigene Blockchain zur Verfügung steht, kann es einige Zeit dauern. Alle Ressourcen, die in der Konsole der Blockchain Platform bereitgestellt werden, müssen in der IBM Cloud erst dargestellt werden. Das erfolgt meistens über Container, die wiederum über Kubernetes verwaltet werden.
Um Einstellungen anzupassen, neue Objekte hinzuzufügen, oder Anpassungen zu ändern, sollten sich Anwender einiges an Zeit lassen. Die einzelnen Objekte müssen nach der Erstellung auch erst synchronisiert werden und zur Verfügung stehen.
Die wichtigsten Bereiche sind sicherlich die Zertifizierungsstelle, gefolgt von der Organisation. Danach folgen Kanäle und schließlich die Smart Contracts, die schlussendlich der wichtigste Bereich der neuen Blockchain sind.
Beim Betrieb der Blockchain müssen aber auch die zugrunde liegenden Ressourcen geschützt werden. Löschen Administratoren in der IBM Cloud die Ressourcen, auf denen die IBM Blockchain Platform aufbaut, ist auch die Blockchain weg. Die wichtigste Basis für den Betrieb der IBM Cloud Platform ist der Kubernetes-Cluster und die darin betriebenen Container. Diese sind für die Bereitstellung der Blockchain verantwortlich.