Oracle Blockchain Platform für die CBDC-Beispielanwendung für den Großhandel konfigurieren

Nachdem Sie alle erforderlichen Instanzen von Oracle Blockchain Platform und die erforderlichen Produkte erstellt haben, müssen Sie Ihre Benutzer und Rollen konfigurieren, alle teilnehmenden Organisationen zur Gründerorganisation hinzufügen und die umfangreiche Historiendatenbank aktivieren.

IDCS-Gruppen für Oracle Blockchain Platform-Instanzen konfigurieren

Weitere Informationen zu den integrierten Oracle Blockchain Platform-Rollen und zur Zuweisung von Benutzern finden Sie unter Benutzer und Anwendungsrollen einrichten.

Weitere Informationen zu den CBDC-Beispielanwendungsrollen im Großhandel finden Sie unter CBDC-Großhandelsanwendungsworkflow.

In Oracle Blockchain Platform müssen die folgenden Anwendungsrollenzuweisungen implementiert werden:

  • Systemeigentümergruppen: Weisen Sie die IDCS-Gruppe des einzelnen kombinierten Systemeigentümers (mit allen Personas des Systemeigentümers) der Anwendungsrolle REST_CLIENT der Oracle Blockchain Platform Digital Assets Edition-Instanz des Systemeigentümers zu. Weisen Sie der Oracle Blockchain Platform Digital Assets Edition-Instanz keine einzelnen personaspezifischen Gruppen direkt zu.
  • Teilnehmerorganisationsgruppen: Weisen Sie für jede Teilnehmerorganisation die IDCS-Gruppe der einzelnen kombinierten Teilnehmerorganisation (die alle personaspezifischen Gruppen für diese Organisation enthält) der Anwendungsrolle REST_CLIENT der jeweiligen Oracle Blockchain Platform Digital Assets Edition-Instanz zu.
  • Administrative Rollen: Weisen Sie die relevanten administrativen Gruppen, wie System_Admins und Org1_Admins, der Anwendungsrolle ADMIN der jeweiligen Oracle Blockchain Platform Digital Assets Edition-Instanz zu.

Diese Konfiguration stellt sicher, dass sowohl Systemeigentümer als auch teilnehmende Organisationsgruppen über die Rolle REST_CLIENT über den erforderlichen Zugriff verfügen, während administrative Berechtigungen entsprechend über die Rolle ADMIN verwaltet werden.

Führen Sie die folgenden Schritte aus, um die Gruppen Anwendungsrollen zuzuweisen.

  1. Melden Sie sich bei Ihrem Oracle Cloud Infrastructure-Account an.
  2. Klicken Sie in der Konsole in der oberen linken Ecke auf das Navigationsmenü.
  3. Wählen Sie unter Identität die Option Domains aus.
  4. Klicken Sie auf der Seite "Domains" auf Oracle Identity Cloud Service.
  5. Wählen Sie im Navigationsmenü von Oracle Identity Cloud Service die Option Oracle Cloud Services aus. Suchen Sie die Oracle Blockchain Platform-Instanz, für die Sie Gruppenrollen zuweisen möchten. Öffnen Sie die Seite "Details" dieser Instanz.
  6. Gehen Sie zur Seite "Anwendungsrollen", um die Oracle Identity Cloud Service-Anwendungsrollen anzuzeigen, die im Ressourcennavigator aufgeführt sind.
  7. Wählen Sie die Rolle, die Sie zuweisen möchten, und erweitern Sie die Rolle. Klicken Sie auf das Menü "Weitere" für die Rolle, und wählen Sie Gruppen zuweisen aus.
  8. Wählen Sie im Dialogfeld "Gruppen zuweisen" die Gruppen aus, denen Sie die Rolle zuweisen möchten, und klicken Sie auf Zuweisen.

Rufen Sie ClientId und ClientSecret ab.

Die Oracle Blockchain Platform ClientID und ClientSecret werden von Visual Builder verwendet. Sie müssen diese Parameter später in Visual Builder aktualisieren, wie unter Visual Builder-Backends konfigurieren beschrieben.

Gehen Sie folgendermaßen vor, um die Client-ID und das Client Secret für eine Oracle Blockchain Platform-Instanz abzurufen:

  1. Melden Sie sich bei Ihrem Oracle Cloud Infrastructure-Account an. Stellen Sie sicher, dass Sie über ausreichende Administratorberechtigungen zum Verwalten der OAuth-Einstellungen verfügen.
  2. Klicken Sie in der Konsole in der oberen linken Ecke auf das Navigationsmenü.
  3. Wählen Sie unter Identität die Option Domains aus.
  4. Klicken Sie auf der Seite "Domains" auf Oracle Identity Cloud Service.
  5. Wählen Sie im Navigationsmenü von Oracle Identity Cloud Service die Option Oracle Cloud Services aus. Suchen Sie die Oracle Blockchain Platform-Instanz, für die Sie die Client-ID und das Client Secret abrufen möchten. Öffnen Sie die Seite "Details" dieser Instanz.
  6. Wenn Sie die Seite mit den Instanzdetails öffnen, wird als Standardregisterkarte die Registerkarte OAuth "Konfiguration" angezeigt. Diese Registerkarte enthält wichtige Informationen zu den OAuth-Einstellungen für Ihre Oracle Blockchain Platform-Instanz.

    Die Felder "Client-ID" und "Client Secret" finden Sie im Abschnitt "Allgemeine Informationen". Mit diesen Zugangsdaten werden API-Anforderungen an Oracle Blockchain Platform authentifiziert.

Konfiguration mehrerer Organisationen

Wenn Sie ein komplexes Oracle Blockchain Platform-Netzwerk mit mehreren Organisationen erstellen, fügen Sie dem Gründer Teilnehmer hinzu. Einen Überblick über diesen Prozess finden Sie im Oracle Blockchain Platform Admin Guide unter OBCS-Teilnehmerorganisationen zum Netzwerk hinzufügen.

Rich History-Datenbank für Oracle Blockchain Platform konfigurieren

Weitere Informationen zum Konfigurieren und Verwenden der Rich History-Datenbank finden Sie unter Rich History-Datenbank erstellen.

Bevor Sie diese Schritte ausführen, müssen Sie eine Autonomous Database-Instanz erstellt haben, wie unter Autonomous Database bereitstellen beschrieben, um die umfangreiche Historiendatenbank für Oracle Blockchain Platform zu aktivieren.

Konfigurieren Sie im generischen Modus die einzelne Instanz von Oracle Autonomous Database für die Instanz des Systemeigentümers von Oracle Blockchain Platform. Im vertraulichen Modus müssen Sie jede Teilnehmerorganisation und jeden Systemeigentümer mit separaten Instanzen von Oracle Autonomous Database konfigurieren.

  1. Öffnen Sie die Oracle Blockchain Platform-Konsole für die Netzwerkinstanz.
  2. Klicken Sie oben rechts auf das Menü Weitere Aktionen, und wählen Sie Rich-Historie konfigurieren aus.
  3. Geben Sie eine Oracle-Datenbankverbindung an, indem Sie die Verbindungszeichenfolge und die Zugangsdaten für den Zugriff auf die Oracle-Datenbank und für das Schreiben in die Datenbank angeben. Die angegebenen Zugangsdaten sind die Zugangsdaten der Datenbank, und Oracle Blockchain Platform verwaltet sie nicht.
  4. Klicken Sie auf Speichern, um die Rich History-Datenbank zu konfigurieren.

Anmeldungen erstellen

Sie müssen die Anmeldungen für die Benutzer in den Gruppen System_Admins und Org_Admins manuell erstellen.

Anmeldungen im REST-Proxy von Oracle Blockchain Platform bieten Benutzern einen Mechanismus für die Interaktion mit der Blockchain, ohne dass ein Registrierungszertifikat erforderlich ist. Dadurch werden API-Aufrufe vereinfacht, indem Anwendungsidentitäten Blockchain-Mitgliedern zugeordnet werden. Um einen Aufruf des Chaincodes zu initiieren, müssen Anmeldungen in Oracle Blockchain Platform erstellt werden.

Die CBDC-Großhandelsanwendung verwaltet die Erstellung von Anmeldungen für Benutzer während des Kontosetups. Wenn sich jedoch ein Systemadministratorbenutzer zum ersten Mal anmeldet, ist keine Anmeldung vorhanden. Wenn dieser Benutzer also versucht, einen Account zu erstellen, verläuft der Aufruf von RestProxy nicht erfolgreich. Daher ist es wichtig, eine Anmeldung für die Gruppe System_Admins zu erstellen.

Beim Einrichten von Firmen werden Anmeldungen für die jeweiligen Organisationen erstellt. Beispiel: Wenn Konten für den Systemeigentümer eingerichtet werden, werden entsprechende Anmeldungen generiert. Wenn jedoch Teilnehmerorganisationskonten über die Systemadministratorseite erstellt werden, werden Anmeldungen nicht automatisch für diese Organisationen erstellt. In diesem CBDC-Großhandelsworkflow müssen Sie Organisationsadministratorkonten auf der Systemadministratorseite einrichten. Daher müssen Sie Anmeldungen für die Organisationsadministratorgruppe manuell erstellen, da diese Anmeldungen aufgrund der eindeutigen Organisationsstruktur zwischen der Zentralbank und den Finanzinstituten nicht automatisch generiert werden.

Ausführliche Informationen zum Erstellen der Anmeldungen finden Sie unter Anmeldungen zu einem REST-Proxy hinzufügen.

RestproxyId abrufen

Der Wert RestproxyId wird von Visual Builder verwendet. Sie müssen dies später in Visual Builder aktualisieren, wie unter Visual Builder-Backends konfigurieren beschrieben.

Um die RestProxyId für eine Oracle Blockchain Platform-Instanz abzurufen, müssen Sie die APIs der Oracle Blockchain Platform-Konsole mit einem administrativen Benutzeraccount aufrufen. Die Authentifizierung kann entweder mit der Basisauthentifizierung oder mit OAuth 2.0 erfolgen.

Authentifizierungsmethode

Informationen zur Implementierung des erforderlichen Authentifizierungsflusses finden Sie in der Dokumentation unter OAuth 2.0 Access Token Based Authentication für OAuth 2.0.

API-Endpunkt zum Abrufen von RestProxyId

Verwenden Sie die Oracle Blockchain Platform-Konsolen-API, um die RestProxyId abzurufen, indem Sie eine Anforderung an den folgenden Endpunkt senden:

GET <oracleblockchainplatform_url>/console/admin/api/v2/nodes

Dieser API-Aufruf gibt eine Antwort mit Details zu den in Ihrer Instanz konfigurierten REST-Proxys zurück.

Weitere Details zur Konsolen-API finden Sie in der folgenden Dokumentation: Knotenliste abrufen.

Antwortdetails

Suchen Sie in der Antwort den Abschnitt mit der Bezeichnung RESTProxies, in dem Sie den entsprechenden RestProxyId finden. Die Struktur der Antwort enthält verschiedene Attribute, die mit jedem REST-Proxyknoten verknüpft sind.

"RESTProxies": [
        {
            "status": "up",
            "extInfo": [],
            "displayName": "restproxy",
            "RESTProxyId": "48021a2c-e62b-40cd-b7ca-71dda883521d-restproxy",
            "url": "https://bank3-oabcs1-hyd.blockchain.ocp.oraclecloud.com:7443/restproxy",
            "mspId": "Bank3"
        }
    ]

Chaincode für die Wholesale CBDC-Beispielanwendung bereitstellen

Sie können jetzt einen Kanal erstellen und den Beispielanwendungs-Chaincode darin bereitstellen.

  1. Kanal erstellen.
    1. Definieren Sie einen neuen Kanal mit den erforderlichen Teilnehmern gemäß Ihren organisatorischen Anforderungen.
    2. Stellen Sie beim Erstellen des Kanals sicher, dass Rich-Historie aktivieren ausgewählt ist. Mit dieser Option wird das Feature "Richard History" aktiviert, das zuvor konfiguriert wurde.
    3. Nur vertraulicher Modus: Geben Sie unter Private Datensammlungen ein Sternchen (*) ein, um den Zugriff auf alle privaten Datensammlungen zu ermöglichen.
      Wenn Sie diesen Schritt nicht abschließen, sind die von der privaten Datenerfassung zurückgegebenen Daten nicht korrekt.
    4. Nur vertraulicher Modus: Wiederholen Sie die beiden vorherigen Schritte (Aktivierung der umfangreichen Historie und des Zugriffs auf private Datensammlungen im zuvor erstellten Kanal) für alle anderen Teilnehmerorganisationen im Netzwerk.
  2. Stellen Sie den Chaincode bereit.
    • Generischer Modus: Stellen Sie den CBDC-Großhandelskettencode bereit, indem Sie das CBDC-Großhandelskettencodepackage herunterladen und die darin enthaltene Archivdatei (WholesaleCBDC.zip) im neuen Kanal bereitstellen. Der Package-Name lautet Wholesale CBDC.
    • Vertraulicher Modus: Stellen Sie den vertraulichen CBDC-Großhandels-Chaincode bereit, indem Sie das vertrauliche CBDC-Chaincode-Großhandelspackage herunterladen und die darin enthaltene Archivdatei (WholesaleCBDC-Confidential.zip) im neuen Kanal bereitstellen. Der Package-Name ist WholesaleCBDCConfidential.
    Einzelheiten zum Deployment von Chaincodes finden Sie unter Typischer Workflow zum Bereitstellen von Chaincodes.
  3. Rufen Sie die API init auf, indem Sie entweder die CBDC Postman-Großhandels-Collection verwenden, die im CBDC-Chaincode-Großhandelspaket bereitgestellt wird, oder die vertrauliche CBDC Postman-Großhandels-Collection im vertraulichen CBDC-Chaincode-Großhandelspaket verwenden. Dieser Schritt schließt den Initialisierungsprozess ab und stellt sicher, dass der Chaincode einsatzbereit ist.
  4. Prüfen Sie den Replikationsstatus.
    1. Navigieren Sie zur Registerkarte Kanäle.
    2. Suchen Sie den Kanal, und klicken Sie rechts neben dem Kanaleintrag auf das Menü Weitere Aktionen.
    3. Wählen Sie Status der Berechtigungshistorie aus, um den Replikationsstatus anzuzeigen.
      • Wenn der Status REPLICATING lautet, werden die Kanaldaten aktiv in die Rich-History-Datenbank repliziert.
      • Wenn der Replikationsstatus USER_DISABLED lautet, führen Sie die folgenden Aktionen aus:
        1. Starten Sie den Peer neu: Starten Sie den Peerknoten neu, der dem Channel zugeordnet ist.
        2. Transaktion starten: Löst jede Transaktion im Kanal aus, um die Datenreplikation zu initiieren.
        3. Prüfen Sie den Replikationsstatus erneut, um zu bestätigen, dass die Daten jetzt in der Rich History-Datenbank repliziert werden.
Notieren Sie sich den Kanalnamen und den Chaincode-Namen. Sie müssen Visual Builder mit diesen konfigurieren, um mit der Beispielanwendung arbeiten zu können.

Rich History-Datenbankansichten erstellen

Nachdem Sie die Rich-History-Datenbank für Ihre Oracle Blockchain Platform-Instanz erstellt haben, können Sie das Erstellungsskript für die Datenbankansicht ausführen, um die Ansichten in der Rich-History-Datenbank zu erstellen und den ORDS-Endpunkt zu generieren.

Das Skript für Oracle REST Data Services (ORDS) ist eine Node.js-Anwendung, die in TypeScript geschrieben ist und ORDS-Endpunkte zum Abrufen von Kontotransaktionsdetails aus der umfangreichen Historiendatenbank bereitstellen soll. Es erstellt einen RESTful-Endpunkt, mit dem Benutzer Chaincode-Transaktionsdaten (für TypeScript und Go-Chaincodes) aus der Rich-History-Datenbank abrufen können. Außerdem werden wichtige Zugangsdaten wie der ORDS-Endpunkt, clientId, clientSecret und das Bearer-Token für die Authentifizierung und den Zugriff auf den Endpunkt bereitgestellt.
  1. Datenbank-View-Erstellungsskript herunterladen
    1. Öffnen Sie die Oracle Blockchain Platform-Konsole.
    2. Gehen Sie zur Seite "Digital Assets".
    3. Gehen Sie in der linken Seitenleiste zur Wholesale CBDC-Anwendung.
    4. Laden Sie das Skript aus dem Bereich Oracle Database-View-Definitionen für WholesaleCBDC herunter.
  2. Nach dem Herunterladen des Skripts finden Sie unter Oracle Database View Definitions for Wholesale CBDC weitere Informationen zur Ausführung.
  3. Das Skript gibt den ORDS-Endpunkt, die Client-ID, das Client Secret und das Bearer-Token zurück.
    • Im generischen Modus verwenden alle Organisationen eine einzelne ORDS-Endpunktkonfiguration. Das Skript gibt Endpunkte für Accounts in drei Geltungsbereichen zurück: einzelne Accounts, Accounts auf Organisationsebene und alle Accounts.
      {
        ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
       {
        "ORDSEndpoint": {
          "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN",
          "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts",
          "AllAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts"
        },
        clientId: '<clientId>',
        clientSecret: '<clientSecret>',
        bearerToken: {
          access_token: '<BearerToken>',
          token_type: 'bearer',
          expires_in: 3600
        }
      }
    • Im vertraulichen Modus verfügt jede Organisation einschließlich des Systemeigentümers über eine eigene ORDS-Konfiguration. Die Endpunkte des Systemeigentümers umfassen den Zugriff auf alle Accounts. Die Teilnehmerorganisationen haben nur Zugriff auf ihre eigenen Accounts auf Organisationsebene.
      Systemeigentümer:
      {
        ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
       {
        "ORDSEndpoint": {
          "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN",
          "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts",
          "AllAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts"
        },
        clientId: '<clientId>',
        clientSecret: '<clientSecret>',
        bearerToken: {
          access_token: '<BearerToken>',
          token_type: 'bearer',
          expires_in: 3600
        }
      }
      Teilnehmerorganisation:
      {
        ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
       {
        "ORDSEndpoint": {
          "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN",
          "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts"
        },
        clientId: '<clientId>',
        clientSecret: '<clientSecret>',
        bearerToken: {
          access_token: '<BearerToken>',
          token_type: 'bearer',
          expires_in: 3600
        }
      }
Der ORDS-Endpunkt für den Zugriff auf RESTful-Services folgt dieser Struktur:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/BASE_PATH/PATTERN
  • ORDS_REST_BASE_URL: Die Basis-URL des ORDS-Service.
  • ALIAS_NAME: Der in ORDS konfigurierte Datenbank- oder Schemaalias.
  • BASE_PATH: Der Basispfad für die RESTful-Services.
  • PATTERN: Das spezifische Endpunktmuster für den RESTful-Service.
Um ein Bearer-Token für die Authentifizierung zu generieren, verwenden Sie den Tokenendpunkt OAuth2:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/oauth/token
Die folgenden Parameter für ORDS müssen im Backend von Visual Builder aktualisiert werden, um Daten aus der Rich-History-Datenbank abzurufen. Dies wird später unter Visual Builder-Backends konfigurieren abgeschlossen.
  • clientId
  • clientSecret
  • ORDS-Endpunkt (nur Endpunkt Accounts; Endpunkte OrgAccounts und AllAccounts werden intern abgeleitet)
  • Basis-URL für OAuth: ORDS_REST_BASE_URL/ords/<userName|aliasName>