Oracle Database - Definitionen für Wholesale CBDC anzeigen

Mit der Rich History-Datenbank können Sie die Kontotransaktionshistorie abrufen und falsche Salden in mehreren Transaktionen auflösen, die im selben Block auftreten.

Mit den APIs GetAccountTransactionHistoryWithFiltersFromRichHistDB, getOrgAccountTransactionHistoryWithFiltersFromRichHistDB und getAllAccountTransactionHistoryWithFiltersFromRichHistDB können Sie die Kontotransaktionshistorie aus der Rich-History-Datenbank abrufen. Wenn Sie die Parameter custom_endpoint und bearer_token an die Methode übergeben, wird die Kontotransaktionshistorie aus der Rich-History-Datenbank oder der Statusdatenbank abgerufen. Es gibt mehrere benutzerdefinierte Endpunkte, wie in der folgenden Liste gezeigt. Weitere Informationen finden Sie unter Rich History-Datenbankansichten erstellen.
Firmen
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN
Erhältlich im generischen und vertraulichen Modus.
OrgAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccount
Erhältlich im generischen und vertraulichen Modus.
AllAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts
Im generischen Modus verfügbar. Im vertraulichen Modus nur für Systemeigentümer verfügbar.
Um die Transaktionshistorie aus der Rich History-Datenbank abzurufen, müssen Sie Oracle Autonomous Database mit aktiviertem Oracle REST Data Services (ORDS) und OAuth ausführen.
  1. Aktivieren und konfigurieren Sie die Rich History-Datenbank.
    Weitere Informationen finden Sie unter Rich History-Datenbank aktivieren und konfigurieren in Oracle Blockchain Platform verwenden.
  2. Aktivieren Sie die Rich History auf den Kanälen, die Chaincode-Daten enthalten, die Sie in die Rich History-Datenbank schreiben möchten. Weitere Informationen finden Sie unter Channels konfigurieren, die Daten in die Rich History-Datenbank schreiben in Oracle Blockchain Platform verwenden.
  3. Laden Sie Node.js Version 18 oder höher herunter, und installieren Sie es.
  4. Wählen Sie auf der Seite Digitale Assets in Oracle Blockchain Platform die Option CBDC-Großhandelsanwendung aus.
  5. Klicken Sie auf Datenbankansichtsdefinitionen herunterladen.
  6. Extrahieren Sie die Datei WholesaleCBDCViewsPackage.zip.
  7. Navigieren Sie zum Ordner ORDSscript, und installieren Sie die erforderlichen Abhängigkeiten, indem Sie den folgenden Befehl ausführen.
    npm install
  8. Bearbeiten Sie die Datei .env, die mit dem Skript bereitgestellt wird, um sie für Ihre Umgebung zu konfigurieren.
    Oracle REST Data Services-Endpunkte verwenden das folgende allgemeine Format.
    <base_URL>/<user_name>/<resource_link>
    Umgebung/Konfigurationstyp Umgebungs-/Konfigurationsvariablen Beschreibung Beispiel
    DB Connection CONNECTION_STRING Die Verbindungszeichenfolge für die Datenbank.
    CONNECTION_STRING="(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)
    (host=adg.ap-sydney-1.example.com))(connect_data=
    (service_name=g536390e55ee33f4_db_high.adg.example.com))(security=(ssl_server_dn_match=yes)))"
    View Configuration CHAINCODE_NAME Der Name des Chaincodes, aus dem Transaktionsdetails in der Rich History-Datenbank abgerufen werden sollen. CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME Der Name der Instanz, in der der Chaincode bereitgestellt wird. INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME Der Name des Kanals, in dem der Chaincode bereitgestellt wird. CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME Der Name des zu verwendenden ORDS-Moduls. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. MODULE_NAME="demotest"
    ORDS Endpoint Setup BASE_PATH Der Basispfad der ORDS-URL. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN Der Mustername der ORDS-URL. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. PATTERN="accountTransactionDetails"
    ORDS REST Endpoint ORDS_REST_BASE_URL Die Basis-URL des ORDS-REST-Endpunkts der Datenbank. ORDS_REST_BASE_URL="https://g536390e55ee33f4_db_high.adg.ap-sydney-1.example.com"
    Alias Configuration ALIAS_NAME Der Alias, der anstelle eines Benutzernamens in der REST-Endpunkt-URL verwendet werden soll. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME Die dem Benutzer zugewiesene ORDS-Rolle. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME Die ORDS-Berechtigung, die dem Benutzer zugewiesen ist. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL Ein Label für die ORDS-Berechtigung. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. LABEL="demotest_label"
    ORDS Privilege DESCRIPTION Eine Beschreibung der ORDS-Berechtigung. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME Der Clientname für die OAuth-Authentifizierung mit dem ORDS-REST-Endpunkt. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER Der Eigentümername, der für die OAuth-Authentifizierung mit dem ORDS-REST-Endpunkt verwendet werden soll. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. OWNER="demotest"
    OAuth Configuration DESCRIPTION Eine Beschreibung der OAuth-Konfiguration. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL Die Support-E-Mail-Adresse für die OAuth-Konfiguration. Dabei kann es sich um einen beliebigen Wert handeln, der nicht mit vorhandenen Assets in der Datenbank in Konflikt steht. SUPPORT_EMAIL="test@example.com"

    Analytics und andere Ansichtsnamen sind im Softwarecode enthalten. Die Kontenansicht lautet ACCOUNTS_VIEW. Die private Datenerfassungsansicht der Transaktion lautet TRANSACTION_PDC_VIEW. Die Kontotransaktionsansicht lautet ACCOUNT_TRANSACTION_VIEW.

  9. Nur Systemeigentümer (Zentralbanken): Bearbeiten Sie die Datei Participant_orgs_list.yml, um Datenbanklinks zwischen der Zentralbank und jeder Teilnehmerbank zu erstellen. Bearbeiten oder löschen Sie diese Datei nicht für Teilnehmerbankknoten. Wenn Sie beim Ausführen des Skripts den vertraulichen Modus auswählen, werden Sie aufgefordert, den Benutzernamen und das Kennwort für den Datenbanklink für jede in der Datei Participant_orgs_list.yml aufgeführte Teilnehmerorganisation einzugeben. Im Gegensatz zu Datenbankbenutzernamen ist bei Datenbanklinkbenutzern die Groß-/Kleinschreibung zu beachten.
    Die Datei Participant_orgs_list.yml ist ein YAML-Array, das Konfigurationsdetails enthält, mit denen Datenbanklinks zwischen der Zentralbank und jeder Teilnehmerbank im folgenden Format erstellt werden.
    orgName
    Der Instanzname der Teilnehmerorganisation.
    hostName
    Hostname oder IP-Adresse des Zieldatenbankservers.
    port
    Der Netzwerkport für den Datenbankservice.
    serviceName
    Der Datenbankservicename oder die System-ID (SID).
    Der folgende Text ist eine Beispieldatei Participant_orgs_list.yml.
    - orgName: "Participating_Org1"
      hostName: "dbserver.example.com"
      port: 1521
      serviceName: "ORCLPDB1"
    - orgName: "Participating_Org2"
      hostName: "dbserver2.example.com"
      port: 1522
      serviceName: "ORCLPDB2"
  10. Führen Sie das ORDS-Skript mit dem folgenden Befehl aus.
    npm run start

    Im vertraulichen Fall wird der Benutzer aufgefordert, Ihren Organisationstyp auszuwählen. Wenn der Benutzer Systemeigentümer gewählt hat, wird die Datei Participant_orgs_list.yml in die Aktion aufgenommen. Erwähnen Sie den vertraulichen Fall, dass alle Teilnehmerbanken ihr ORDS-Setup vor dem Systemeigentümer abschließen müssen. Andernfalls führt dies zu einem Fehler.

    Wenn der Befehl ausgeführt wird, werden die folgenden Eingabeaufforderungen angezeigt.
    Enter your DB User Name
    Geben Sie den Benutzernamen für die Rich History-Datenbank ein. Der Account muss über die erforderlichen Berechtigungen zum Erstellen von Ansichten und ORDS-Endpunkten verfügen.
    Enter your DB Password
    Geben Sie das Kennwort für die Rich History-Datenbank ein.
    Please select a chaincode type
    Wählen Sie CONFIDENTIAL für Chaincodes, die den vertraulichen Modus verwenden. Wählen Sie andernfalls WCBDC für Chaincodes aus, die den generischen Modus verwenden. Verwenden Sie die Pfeiltasten, um zu navigieren, und drücken Sie die Eingabetaste, um Ihre Auswahl zu bestätigen. Wenn Sie den vertraulichen Modus auswählen, werden Sie aufgefordert, den Organisationstyp SYSTEM OWNER (der die Zentralbank darstellt) oder PARTICIPATING ORG (der die teilnehmenden Banken repräsentiert) auszuwählen.

    Hinweis:

    Im vertraulichen Modus müssen alle beteiligten Organisationen dieses Skript ausführen und das ORDS-Setup vor dem Systemeigentümer abschließen. Wenn Sie das Skript zuerst für den Systemeigentümer ausführen, schlägt es fehl.
    Do you want to create the View and ORDS Endpoint? (y/n)
    Geben Sie y ein, um die Ansicht und den Endpunkt zu erstellen. Geben Sie n ein, wenn Sie die Ansicht und den Endpunkt bereits erstellt haben.
    Please select the language of your chaincode? (TS/GO)
    Wenn Sie zuvor y eingegeben haben, geben Sie TS für TypeScript oder GO für "Los" ein.
    Do you want to generate ORDS Endpoint URL and Bearer Token? (y/n)
    Geben Sie y ein, um die Endpunktzugangsdaten zu generieren. Andernfalls geben Sie n ein.
Wenn Sie die Datei Participant_orgs_list.yml versehentlich löschen, führen Sie den folgenden Befehl aus, um die Datei neu zu generieren.
npm run refresh
Wenn bereits eine View oder ein Datenbanklink im System vorhanden ist, erstellt das Skript sie nicht neu. Stattdessen wird eine Meldung ähnlich dem folgenden Text protokolliert:
createView already exists
Das Skript wird mit dem nächsten Schritt fortgesetzt. Dadurch wird sichergestellt, dass Views, Tabellen, Datenbanklinks und andere Datenbankentitys nicht vom Skript gelöscht oder überschrieben werden.
Außerdem wird möglicherweise der folgende Fehler angezeigt.
Error: ORA-20049: Cannot alter the URL mapping while the schema is enabled. Try disabling the schema first.
Dieser Fehler tritt auf, weil das Datenbankschema aktiviert ist und daher nicht dem anderen Alias zugeordnet werden kann, der in der Datei .env angegeben ist.
Gehen Sie folgendermaßen vor, um dieses Verhalten zu umgehen.
  1. Verwenden Sie denselben Aliasnamen, der zuvor verwendet wurde, oder prüfen Sie die REST-Services in der Datenbank auf den Schemaalias.
  2. Deaktivieren Sie das Datenbankschema, und führen Sie das Skript erneut aus. Weitere Informationen finden Sie unter Oracle REST Data Services (ORDS): SQL Developer verwenden.