Lösung installieren, konfigurieren und bereitstellen

Zur Implementierung dieser Lösung müssen drei Hauptbereiche bearbeitet werden, wie im folgenden Abschnitt beschrieben.

  1. Vorbereitung der Blockchain-Infrastruktur.
  2. Entwicklung und Einführung des Smart Contracts.
  3. Erstellung der Anwendung(en), die unseren Smart-Vertrag nutzen.


oracle-blockchain-cms-plan-oracle.zip

Erstellen Sie ein Hyperledger Fabric-Netzwerk, das zunächst aus einer einzigen Organisation besteht, aber auf beliebig viele Mitglieder skaliert werden kann.

Dann werden wir fortfahren, den intelligenten Vertrag zu erstellen, um die Logik zu verarbeiten, die erforderlich ist, um die für unseren Geschäftsanwendungsfall erforderlichen Entitäten in der Blockchain zu erhalten und zu verwalten.

Sobald das Smart-Contract-Projekt erstellt wurde, installieren und implementieren wir es in dem zuvor erstellten Blockchain-Netzwerk, dann konfigurieren wir die Konten, Anmeldungen und schließlich führen wir die Initialisierung des SmartContract und seiner NFTs aus.

Zu diesem Zeitpunkt wurden die Smart Contract-Methoden bereits über das API Gateway unserer Oracle Blockchain-Instanz, auch RESTPROXY genannt, veröffentlicht. Daher sind sie bereit, von den Clientanwendungen verwendet zu werden, in unserem Fall die Webanwendung, die wir bereits mit VBCS erstellt haben, und wir werden sie im letzten Abschnitt bereitstellen.

Im letzten Schritt wird der OCI-Speicher-Bucket erstellt, in dem die Dokumente gespeichert werden. Schließlich ist der letzte Schritt die Neukonfiguration der VBCS-Beispielanwendung, um auf unser neu erstelltes Blockchain-Netzwerk und den neuen Bucket in unserem Mandanten zu verweisen. Nachdem die gesamte Neukonfiguration abgeschlossen ist, wird die Anwendung in unserem Mandanten bereitgestellt.

Oracle Blockchain-Netzwerk erstellen

Für die Erstellung eines Hyperledger Fabric-(HLF-)Netzwerks auf Basis von Oracle Blockchain verwenden wir den Oracle Blockchain Cloud Service.

Wir werden ein Einzelinstanz-HLF-Netzwerk erstellen, wie im Anwendungsfall können wir die Funktionalität innerhalb einer einzigen Organisation anzeigen, die zum Netzwerk gehört. Neue Organisationen können dem Netzwerk beitreten, indem sie ihre eigene Blockchain-Instanz integrieren, sodass neue Benutzer aus diesen Organisationen ihre Ordner besitzen oder Inhalte aus vorhandenen Ordnern prüfen können, die anderen Mitgliedern gehören.

Gründerinstanz erstellen

  1. Wählen Sie im Menü "OCI-Services" die Option Entwicklerservices aus, und klicken Sie auf Blockchain Platform.
  2. Stellen Sie im Compartment-Kombinationsselektor auf der linken Seite der OCI-Konsole sicher, dass das Compartment ausgewählt ist, in dem Sie die Instanz erstellen möchten.
  3. Klicken Sie auf Blockchain Platform erstellen.
  4. Geben Sie Ihrer Plattform einen Anzeigenamen (z.B. org1), fügen Sie optional eine Beschreibung hinzu, und behalten Sie die verbleibende Standardauswahl bei, da sie die Einstellungen zum Erstellen einer Gründerinstanz sind. Dies wird der Gründer eines neuen Hyperledger Fabric Network sein und die Standardform verwenden, die genau die gleiche Funktionalität wie die Enterprise-Form hat, aber zu geringeren Kosten, aber für Entwicklungsarbeiten gültig ist. Klicken Sie auf Create.
    Die Erstellung der Instanz für diese Organisation (org1) wurde weitergeleitet und ist in einigen Minuten bereit.
Wenn die Gründerinstanz erstellt wird, können Sie auf die Oracle Blockchain-Konsole für diese Instanz zugreifen, indem Sie auf Servicekonsole klicken.

Kanal erstellen

Wir müssen den Organisationen auf Kanalebene beitreten, um die Kommunikation zwischen dem Gründer und dem Teilnehmer zu ermöglichen. Diese Aktion wird mit der Blockchain-Servicekonsole ausgeführt.

  1. Wählen Sie in der Blockchain-Servicekonsole der Gründerinstanz (org1) die Registerkarte Kanäle aus, und klicken Sie auf Neuen Kanal erstellen.
  2. Füllen Sie die erforderlichen Felder aus.
    • Legen Sie wedocms je nach Voreinstellung als Kanalname oder einen beliebigen Namen fest.
    • Wählen Sie die Optionen (peer0 und peer1) für den Abschnitt Peers to Join Channel aus.
  3. Bestätigen Sie die Erstellung, indem Sie im Bestätigungs-Popup auf Ja klicken.
    Prüfen Sie, ob in der Kanaltabelle der neue Kanal angezeigt wird. Klicken Sie auf den Kanalnamen (wedocms), um die Kanaldetails anzuzeigen. Sie können alle Details zum Kanal anzeigen, z.B. in den Blöcken des Buchs gespeicherte Transaktionen, im Kanal bereitgestellte Chaincodes, konfigurierte Orderer und Peers, Organisationen, die zum Kanal gehören usw.

Benutzeraccounts erstellen

Wir verwenden Oracle Identity Cloud Service, um mindestens einen Benutzer für jede der Abteilungen zwischen den Ordnern zu erstellen. Für jeden dieser Benutzer wird ein Account erstellt, der die verschiedenen Ordner enthält, deren Eigentümer er ist.

Wir erstellen den Benutzer cmsrsk001, der zur Risikoabteilung gehört, den Benutzer cmsfin001, der zur Finanzabteilung gehört, und den Benutzer cmsleg001, der zur Rechtsabteilung gehört.
  1. Klicken Sie im Navigationsmenü der OCI-Konsole in der oberen linken Ecke auf Identität und Sicherheit, und wählen Sie im Abschnitt "Identität" die Option Föderation aus.
  2. Klicken Sie auf den Link mit dem Namen des Identitätsproviders.
  3. Klicken Sie auf Benutzer erstellen.
  4. Legen Sie als Benutzernamen den Wert fest, den Sie für die Anmeldung bei der Konsole oder als Autorisierungsbenutzername für die Ausführung der REST-APIs unseres Smart Contracts verwenden möchten. Legen Sie im E-Mail-Feld die E-Mail-Adresse Ihres OCI-Accounts fest. Sie erhalten dann die E-Mail zum Zurücksetzen des Kennworts für diesen Benutzer, und klicken Sie auf Erstellen.
  5. Klicken Sie auf Rollen zuweisen.
  6. Klicken Sie für den AUTOBLOCKCHAIN-Service auf die Auslassungspunkte auf der rechten Seite, und wählen Sie Instanzzugriff verwalten aus.
  7. Weisen Sie je nach erstelltem Benutzer Berechtigungen basierend auf der folgenden Tabelle zu. Nachdem Sie die richtigen Rollen zugewiesen haben, klicken Sie auf Instanzeinstellungen aktualisieren. Die Rollen sollten ordnungsgemäß zugewiesen sein.

    Tabelle - Rollenzuweisung

    Benutzername Instanz Rollen
    cmsrsk001 org1 ADMIN, REST_CLIENT
    cmsfin001 org1 ADMIN, REST_CLIENT
    cmsleg001 org1 ADMIN, REST_CLIENT
  8. (Optional) Sie werden aufgefordert, eine E-Mail an die E-Mail-Adresse des Benutzers zu senden und die Rollen zu informieren, die erteilt wurden.
  9. Während des Benutzererstellungsprozesses erhalten Sie eine E-Mail in dem E-Mail-Account, der dem zuletzt erstellten Benutzer zugeordnet ist, um das Kennwort für diesen Benutzer zurückzusetzen. Verwenden Sie den angegebenen Link, um das Kennwort des gerade erstellten Benutzers festzulegen.

Anmeldungen in den REST-Proxyknoten erstellen

Oracle Blockchain Platform unterstützt Anmeldungen beim REST-Proxy. Diese Anmeldungen werden in Chaincodes verwendet, in denen FT- oder NFT-Token vorhanden sind, um die Identität des Anrufers der Rolle zuzuordnen, die die Transaktion ausführt. Dazu müssen Sie die Beziehung des Benutzers zur in der Blockchain definierten Rolle erstellen. Aus Gründen der Einfachheit können Sie die Rolle als Benutzer benennen.

Jede Registrierung muss in der Instanz erstellt werden, in der der Benutzer mit dieser Rolle Transaktionen über den REST-Proxy auf dieser Blockchain-Instanz ausführen darf. Daher muss die Registrierung cmsrsk001, die dem Benutzer cmsrsk001 zugewiesen ist, im REST-Proxyknoten der Gründerinstanz (org1) und für die beiden anderen Benutzer wie in der folgenden Tabelle beschrieben erstellt werden.
Benutzername Registrierung Instanz
cmsrsk001 cmsrsk001 org1
cmsfin001 cmsfin001 org1
cmsleg001 cmsleg001 org1
  1. Navigieren Sie von der Blockchain-Servicekonsole der Gründerinstanz (org1) zur Registerkarte Knoten.
  2. Klicken Sie neben restproxy auf das Hamburger-Menü, und wählen Sie Anmeldungen anzeigen oder verwalten aus.
  3. Wählen Sie Neue Anmeldung erstellen aus.
  4. Legen Sie Registrierungs-ID als cmsrsk001, Benutzer-ID als cmsrsk001 fest, und klicken Sie auf Anmelden.
Wiederholen Sie Schritt 4, um Anmeldungen für die beiden anderen Benutzer zu erstellen: cmsfin001 und cmsleg001. Falls Benutzer aus einer anderen Organisation erstellt wurden, sollten die Anmeldungen für diese Benutzer im REST-Proxy der Blockchain-Instanz erstellt werden, zu der sie gehören.

Entwicklungsumgebung von Oracle Blockchain App Builder vorbereiten

Die Erstellung eines Smart Contracts für Hyperledger Fabric (HLF) erfordert Kenntnisse über HLF, die Codierung in Java, Typescript oder GoLang sowie die Bereitstellung und Verwaltung des gesamten Lebenszyklus des Smart Contract-Projekts.

Oracle Blockchain App Builder wurde erstellt, um die Erstellung eines Smart Contract-Projekts zu vereinfachen. Tatsächlich ist Oracle Blockchain App Builder ein Low-Code-Tool, mit dem das gesamte Chaincode-Projekt von Grund auf neu erstellt werden kann, ohne jeden benutzerdefinierten Code, der für Ihren Business Case erforderlich ist. Oracle Blockchain App Builder unterstützt Sie auch in den Testphasen, in der Verpackung des Projekts und auch bei der lokalen Bereitstellung des Chaincodes auf Ihrem eigenen Computer für einheitliche Tests oder remote in einem echten Hyperledger Fabric-Netzwerk.

oracle-app-builder-oracle.zip

Oracle Blockchain App Builder wurde in zwei Varianten erstellt. Sie können ihn als Befehlszeilentool zur Automatisierung von Erstellungs- und Deployment-Schritten in CI/CD-Prozessen verwenden oder als Microsoft Visual Code-Plug-in verwenden. Beide ermöglichen es Ihnen, genau die gleiche Funktionalität auszuführen. Wählen Sie einfach die gewünschte Funktion aus, je nach Ihren Voreinstellungen. Oracle Blockchain App Builder bietet die folgenden Features:

  • Entwicklung: Oracle Blockchain App Builder erstellt das gesamte Chaincode-Projekt, indem es nur eine benutzerdefinierte Spezifikationsdatei erstellt. Das Projekt umfasst alle codierten Entitys, alle zugehörigen Accessoren zusammen mit allen CRUD-Methoden zur Verwaltung dieser Entitys sowie die Signatur jeder benutzerdefinierten Methode, die für eine nicht standardmäßige oder komplexe Geschäftslogik erforderlich ist, die von Ihrer Anwendung benötigt wird. Dies wird der einzige Code sein, der manuell implementiert werden muss.
  • Deployment: Sobald das Chaincodeprojekt getestet werden kann, können Sie es lokal im vorkonfigurierten Hyperledger Fabric Network oder remote in einer vorhandenen Cloud- oder On-Premise-Instanz von Oracle Blockchain Platform bereitstellen. Eine weitere Möglichkeit besteht darin, das Projekt manuell über die Oracle Blockchain-Konsole bereitzustellen.
  • Testen: Nachdem das Projekt bereitgestellt wurde, können Sie jede der automatisch generierten Methoden oder die benutzerdefinierten Methoden des Chaincode-Projekts testen.
  • Debugging: Wenn Sie die Visual Studio Code-Erweiterung verwenden, können Sie auch das lineare Debugging des Chaincodes ausführen.

Sie können eine der folgenden beiden verfügbaren Versionen von Oracle Blockchain App Builder installieren:

Wenn Sie diese Art von Entwicklungstools und alle zugehörigen Abhängigkeiten nicht installieren möchten, aber Zugriff auf Oracle Cloud haben, können Sie eine dedizierte Entwicklungsbox mit all diesen Produkten erstellen, die bereits in der Cloud installiert und für die Verwendung vorbereitet sind, und remote darauf zugreifen. Diese Maschinen sind aufgrund der erforderlichen Compute-Ausprägung kosteneffektiv und werden nur während des Betriebs in Rechnung gestellt.

Oracle LiveLabs verfügt über eine Übung, in der Sie einen Remoterechner in Minutenschnelle bereitstellen können, basierend auf einem VM-Image, das bereits vom Oracle Blockchain-Entwicklungsteam vorkonfiguriert wurde. Weitere Informationen finden Sie unter Low-Code-Blockchain-Anwendungen mit Apex und Blockchain App Builder entwickeln.

Hinweis:

In der Übung müssen Sie nur die Schritte "Setup und Umgebung vorbereiten" ausführen, um einen Cloud-Rechner mit Visual Code Studio und dem darauf installierten Low-Code-Plug-in von Oracle Blockchain App Builder bereit zu machen.

OCI Object Storage-Bucket erstellen und konfigurieren

Wir konfigurieren den OCI Object Storage-Bucket, mit dem Sie Dokumente in der Oracle Visual Builder-Webanwendung speichern und abrufen können.

Die Aktionen werden von der Webanwendung synchron mit der Erstellung des Hash des Dokuments ausgeführt, das während des Uploads des Dokuments in den Bucket in Blockchain gespeichert wird, und der Überprüfung der Gültigkeit des Hash beim Herunterladen des Dokuments.

Hinweis:

Weitere Informationen zum Codieren einer Oracle Visual Builder-Anwendung zum Hochladen oder Herunterladen von Dateien aus OCI Object Storage finden Sie unter Dateien aus OCI Storage in einer Visual Builder-App hochladen/herunterladen.

Um die Verwendung von Buckets über die von OCI Object Storage-Buckets angebotene REST-API zu aktivieren, müssen Sie einen OCI-API-Schlüssel erstellen, der sich auf den Benutzer bezieht, der die REST-API ausführen darf. Führen Sie die folgenden beiden Konfigurationsaufgaben aus, um die OCI Object Storage-Buckets in unserer VBCS-Webanwendung zu verwenden.

Um die Verwendung von OCI Object Storage-Buckets aus Ihrer Oracle Visual Builder-App zu aktivieren, müssen Sie einen OCI-API-Schlüssel erstellen, um über die REST-API Zugriff auf die OCI-Services zu erhalten.

  1. Melden Sie sich bei der OCI-Konsole an, und klicken Sie auf das Profilsymbol oben rechts in der Konsole, um auf die Benutzereinstellungen zuzugreifen.
  2. Scrollen Sie nach unten, und klicken Sie im Menü Ressourcen auf API-Schlüssel.
  3. Klicken Sie auf API-Schlüssel hinzufügen, um einen neuen API-Schlüssel hinzuzufügen.
  4. Wählen Sie API-Schlüsselpaar generieren aus.

    Hinweis:

    Sie können Ihre eigenen öffentlichen und privaten Schlüssel im pem-Format verwenden, aber in dieser Lösung werden wir die automatisch generierten Schlüssel verwenden.
  5. Laden Sie die Private Keys und Public Keys herunter, und markieren Sie eine .pem-Datei als "Öffentlich".
  6. Klicken Sie auf "Hinzufügen".
  7. Klicken Sie auf den Kopierlink, um Ihre OCI-API-Zugangsdaten in eine Textdatei auf Ihrem lokalen Computer zu kopieren, wie Sie sie für spätere Schritte benötigen.
  8. Klicken Sie auf Schließen.
    Sie müssen einen neuen API-Schlüssel erstellen, und der Fingerprint-Schlüssel sollte in der OCI-Webkonsole angezeigt werden. Sie können auf die Konfigurationsdatei zugreifen, die Sie zuvor auf Ihren Desktop kopiert haben, indem Sie auf die Auslassungspunkte in der Fingerabdruckzeile klicken und Konfigurationsdatei anzeigen auswählen.

    Hinweis:

    Speichern Sie die Details, da Sie einige davon zusammen mit dem Private Key für die nächsten Schritte benötigen.
  9. Erstellen Sie einen Bucket, in dem unsere Objekte gespeichert werden. Navigieren Sie zu Speicher, und klicken Sie auf Buckets.
    Der Einfachheit halber kann es als "Öffentlich" erstellt werden, sodass keine Authentifizierung erforderlich ist. Dies ist jedoch auch mit privaten Sichtbarkeits-Buckets möglich.
  10. Wählen Sie ein Compartment aus, in dem Sie den Bucket erstellen möchten, und klicken Sie auf Bucket erstellen.
  11. Geben Sie im Fenster Bucket erstellen einen Namen für den Bucket an, übernehmen Sie die anderen Konfigurationsparameter als Standard, und klicken Sie auf Erstellen, um die Erstellung des Buckets abzuschließen.
    Der neue Bucket wird im ausgewählten Compartment angezeigt. Wählen Sie den Bucket-Namen aus, um Details anzuzeigen. Klicken Sie im linken Menü auf Objekte, um die in diesen Bucket hochgeladenen Objekte anzuzeigen.