Die Blockchain ist eine der interessantesten und gleichzeitig kontroversesten Technologien unserer Zeit. Ihre wohl bekannteste Anwendung sind Kryptowährungen wie der Bitcoin. Der Kern der Technologie ist aber die verteilte, manipulationssichere Speicherung von Daten unter mehreren Nutzern. Statt die Blockchain selbst zu analysieren, möchte ich hier einmal darstellen, wie man mit SAP-Bordmitteln seine Datenbank an eine von SAP bereitgestellte Blockchain anschließt.

Integration der Blockchain mit SAP-Bordmitteln

 

SAP bietet alle notwendigen Tools, um eine volle Integration der Datenbank mit einer Blockchain zu ermöglichen. Der gesamte Aufbau ist oben schematisch dargestellt. Die Tools, die dafür im Einzelnen genutzt werden, sind:

  • Blockchain-Netzwerke werden auf der SAP Cloud Platform angeboten. Dort stehen Hyperledger Fabric und MultiChain zur Verfügung. 
  • SAP Blockchain Application Enablement bietet eine Abstraktionsschicht und wird auch auf der SAP Cloud Platform angeboten. Dieses Tool garantiert die Unabhängigkeit von der darunter liegenden Blockchain.
  • SAP HANA Data Provisioning Server, Data Provisioning Agent und ein registrierter SAP HANA Blockchain Adapter: Diese Werkzeuge erlauben es uns, die Datenbank mit sogenannten Remote Sources zu verbinden.
  • Innerhalb der Datenbanken werden virtuelle Tabellen eingerichtet, die mit der Remote Source verbunden werden. Diese bieten nur eine Schnittstelle zu der Remote Source, und jeder Zugriff ist ein direkter Zugriff auf die Blockchain über die vorher genannten Tools. Dadurch kann es bei großen Datendurchsätzen zu Performanceproblemen kommen. Abhilfe schafft hier eine physische Tabelle, die mit den Daten aus der virtuellen Tabelle synchronisiert wird.

Bei dieser Integration greifen alle Applikationen der Datenbank nur noch wie gewohnt mit SQL-Befehlen auf die physischen Tabellen zu. Ein direkter Kontakt zu Blockchain besteht in diesem Fall nicht, und die Datenbank ist kein Knoten im Blockchain-Netzwerk. Außerdem werden bei Änderungen oder Löschungen keine Daten direkt aus der Blockchain gelöscht, denn das widerspräche der Manipulationssicherheit. Stattdessen werden die Daten als gelöscht markiert bzw. die Änderung wird protokolliert. Mit dieser Methode wird also die relationale Struktur der HANA-Datenbank mit der chronologischen Struktur der Blockchain verknüpft.

Direkter Aufruf von Chaincode

Neben diesem Weg besteht auch die Möglichkeit, direkt aus Anwendungen auf die Blockchain zuzugreifen. Dies geschieht mit der REST API, mit der dann sogenannte Chaincodes aufgerufen werden. Eine direkte Verknüpfung der Datenbank mit der Blockchain findet mit dieser Methode nicht statt, daher muss in diesem Fall die Anwendung sicherstellen, dass die Persistenz in der Datenbank herbeigeführt wird. Hier wird stattdessen eine direkte Verbindung zwischen der Anwendung und dem Code auf der Blockchain hergestellt.