Informationen zu Streaming-Blockchain-Ereignissen
Ein Chaincode in der Blockchain kann Ereignisse auf eine von zwei Arten veröffentlichen. Das eine ist die Verwendung des Hyperledger Fabric-SDK, das andere über die REST-API für Blockchain Platform. Diese beiden Ansätze weisen jedoch folgende Einschränkungen auf:
- Hyperledger Fabric-SDKs befinden sich nur in Java oder Node.js.
- Sie müssen die Hyperledger Fabric-SDKs patchen, bevor Sie sie mit Oracle Blockchain Platform verwenden.
- Ereignisbenachrichtigungen werden nicht garantiert zugestellt.
- Verbraucher der REST-API müssen Zugangsdaten in der Blockchain-Gründungsinstanz haben.
Um diese Einschränkungen zu vermeiden, verwenden Sie die REST-API von Oracle Blockchain Platform mit einer Relay-App. Die Relay-App kann eine serverlose Funktion sein. Er empfängt eine Ereignis-Payload im JSON-Format von der Blockchain und reformiert die Ereignis-Payload, damit sie mit der Apache Kafka-API kompatibel ist. Die Relay-App ruft Authentifizierungszugangsdaten von Oracle Vault ab und sendet das Ereignis dann an Oracle Streaming Services. Mehrere Ereignis-Consumer können dann Oracle Streaming Services abonnieren und mit dem Empfang von Ereignissen beginnen, für die sie berechtigt sind.
Architektur
Dieses Diagramm zeigt, wie Sie mit den Tools und Services in Oracle Cloud Infrastructure zuverlässige und sichere Blockchain-Ereignisbenachrichtigungen für mehrere Event-Consumer einrichten können.
So fließt das Ereignis von der Blockchain-Plattform zu den Event Consumer:
- Chaincode in der Blockchain ruft das API-Gateway mit dem Ereignis als Payload auf. Sie abonnieren die API-Gateway-URL manuell für Blockchain-Ereignisse.
- Das API-Gateway übergibt die Anforderung an die Ereignisreaktions-App. Die Event Relay App ist eine Anwendung, die Sie schreiben. Dabei werden folgende Funktionen ausgeführt:
- Formatiert das Ereignis für die Streaming Service-API neu.
- Ruft Streaming Service-Zugangsdaten aus Vault ab.
- Sendet das Ereignis an die Streaming Service-API.
- Der Streaming-Service stellt sicher, dass das Ereignis an die autorisierten Verbraucher-Apps übermittelt wird.

Beschreibung der Abbildung architecture-blockchain-event-streaming.png
Bevor Sie beginnen
Informationen zu erforderlichen Services und Rollen
Um diese Lösung zu implementieren, benötigen Sie einen Oracle Cloud Infrastructure-Account.
Ihr Benutzeraccount muss über ausreichende Berechtigungen zum Erstellen und Bereitstellen der folgenden Services verfügen:
-
Oracle Blockchain Platform
-
Oracle Functions
-
Oracle Cloud Infrastructure Vault
-
Oracle Cloud Infrastructure Streaming
-
Oracle Cloud Infrastructure Registry
-
Oracle Cloud Infrastructure-Gateway
Informationen zu Policys, die für den Zugriff erforderlich sind, finden Sie unter Allgemeine Policys.
Weitere Informationen zum Abrufen der erforderlichen Cloud-Services finden Sie unter Oracle Cloud-Services für Oracle-Lösungen.