Oracle Database 檢視批發 CBDC 的定義

您可以使用 RTF 歷史記錄資料庫來擷取科目交易歷史記錄,並解決在相同區塊中發生之多個交易中不正確的餘額。

您可以使用 GetAccountTransactionHistoryWithFiltersFromRichHistDBgetOrgAccountTransactionHistoryWithFiltersFromRichHistDBgetAllAccountTransactionHistoryWithFiltersFromRichHistDB API,從 RTF 歷史記錄資料庫擷取帳戶交易歷史記錄。當您將 custom_endpointbearer_token 參數傳遞至方法時,會從 RTF 歷史記錄資料庫或狀態資料庫擷取帳戶交易歷史記錄。有多個自訂端點,如下所示。如需詳細資訊,請參閱建立豐富歷史記錄資料庫檢視
帳戶
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN
適用於一般模式和機密模式。
OrgAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccount
適用於一般模式和機密模式。
AllAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts
可用於一般模式。在機密模式中,僅供系統擁有者使用。
若要從 Rich History 資料庫擷取交易歷史記錄,您必須執行 Oracle Autonomous Database 並啟用 Oracle REST Data Services (ORDS) 和 OAuth。
  1. 啟用與設定 RTF 歷史記錄資料庫。
    如需詳細資訊,請參閱使用 Oracle Blockchain Platform 中的啟用和設定 Rich History 資料庫
  2. 在含有要寫入豐富歷史記錄資料庫之鏈碼資料的通道上啟用豐富的歷史記錄。如需詳細資訊,請參閱 Using Oracle Blockchain Platform 中的 Configure the Channels that Write Data to the Rich History Database
  3. 下載並安裝 Node.js 版本 18 或更新版本。
  4. Oracle Blockchain Platform數位資產頁面上,選取批發 CBDC 應用程式
  5. 按一下下載資料庫檢視定義套裝程式
  6. 擷取 WholesaleCBDCViewsPackage.zip 檔案。
  7. 瀏覽至 ORDSscript 資料夾,然後執行下列命令來安裝必要的相依性。
    npm install
  8. 編輯命令檔隨附的 .env 檔案,為您的環境進行設定。
    Oracle REST Data Services 端點使用下列一般格式。
    <base_URL>/<user_name>/<resource_link>
    環境 / 組態類型 環境 / 組態變數 描述 範例
    DB Connection CONNECTION_STRING 資料庫的連線字串.
    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 從 RTF 歷史記錄資料庫中擷取交易明細的鏈碼名稱。 CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME 部署鏈碼之執行處理的名稱。 INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME 部署鏈碼之通道的名稱。 CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME 要使用的 ORDS 模組名稱。這可以是與資料庫中現有資產不衝突的任何值。 MODULE_NAME="demotest"
    ORDS Endpoint Setup BASE_PATH ORDS URL 的基本路徑。這可以是與資料庫中現有資產不衝突的任何值。 BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN ORDS URL 的樣式名稱。這可以是與資料庫中現有資產不衝突的任何值。 PATTERN="accountTransactionDetails"
    ORDS REST Endpoint ORDS_REST_BASE_URL 資料庫之 ORDS REST 端點的基礎 URL。 ORDS_REST_BASE_URL="https://g536390e55ee33f4_db_high.adg.ap-sydney-1.example.com"
    Alias Configuration ALIAS_NAME 用於取代 REST 端點 URL 中使用者名稱的別名。這可以是與資料庫中現有資產不衝突的任何值。 ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME 指派給使用者的 ORDS 角色。這可以是與資料庫中現有資產不衝突的任何值。 ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME 指派給使用者的 ORDS 權限。這可以是與資料庫中現有資產不衝突的任何值。 PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL ORDS 權限的標籤。這可以是與資料庫中現有資產不衝突的任何值。 LABEL="demotest_label"
    ORDS Privilege DESCRIPTION ORDS 權限的描述。這可以是與資料庫中現有資產不衝突的任何值。 DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME 用於 ORDS REST 端點之 OAuth 認證的從屬端名稱。這可以是與資料庫中現有資產不衝突的任何值。 CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER 用於 ORDS REST 端點之 OAuth 認證的擁有者名稱。這可以是與資料庫中現有資產不衝突的任何值。 OWNER="demotest"
    OAuth Configuration DESCRIPTION OAuth 組態的描述。這可以是與資料庫中現有資產不衝突的任何值。 DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL OAuth 組態的支援電子郵件地址。這可以是與資料庫中現有資產不衝突的任何值。 SUPPORT_EMAIL="test@example.com"

    軟體程式碼中包含分析和其他檢視名稱。帳戶檢視為 ACCOUNTS_VIEW。異動專用資料收集檢視為 TRANSACTION_PDC_VIEW。帳戶交易檢視為 ACCOUNT_TRANSACTION_VIEW

  9. 僅限系統擁有者 (中央銀行):編輯 Participant_orgs_list.yml 檔案,以建立中央銀行與每個參與者銀行之間的資料庫連結。請勿編輯或刪除參與者銀行節點的檔案。如果您在命令檔執行時選取機密模式,系統會提示您輸入 Participant_orgs_list.yml 檔案中所列之每個參與者組織的資料庫連結使用者名稱和密碼。不同於資料庫使用者名稱,資料庫連結使用者名稱有大小寫之分。
    Participant_orgs_list.yml 檔案是一個 YAML 陣列,其中包含用於建立中央銀行與每個參與者銀行之間資料庫連結的組態詳細資訊,格式如下。
    orgName
    參與者組織的實例名稱。
    hostName
    目標資料庫伺服器的主機名稱或 IP 位址。
    port
    資料庫服務的網路連接埠。
    serviceName
    資料庫服務名稱或系統 ID (SID)。
    下列文字為範例 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. 使用下列命令執行 ORDS 命令檔。
    npm run start

    在機密情況下,系統會提示使用者選取您的組織類型。如果使用者選擇「系統」擁有者,則 Participant_orgs_list.yml 檔案會採取動作。請針對機密個案提及,所有參與者銀行都需要在「系統擁有者」之前完成其 ORDS 設定,否則會導致失敗。

    當指令執行時,會顯示下列提示。
    Enter your DB User Name
    輸入 RTF 記錄資料庫的使用者名稱。帳戶必須具備建立檢視和 ORDS 端點的必要權限。
    Enter your DB Password
    輸入 Rich History 資料庫的密碼。
    Please select a chaincode type
    對使用機密模式的鏈碼選取機密。否則,請為使用一般模式的鏈碼選取 WCBDC 。使用方向鍵瀏覽,然後按 Enter 鍵確認您的選取。如果您選取機密模式,系統會提示您選取組織類型:系統擁有者 (代表中央銀行) 或參與銀行 (代表參與銀行)。

    附註:

    在機密模式中,所有參與的組織都必須執行此指令檔,並在系統擁有者之前完成 ORDS 設定。如果您先為系統擁有者執行命令檔,該命令檔將會失敗。
    Do you want to create the View and ORDS Endpoint? (y/n)
    輸入 y 以建立檢視和端點。如果您已經建立檢視和端點,請輸入 n
    Please select the language of your chaincode? (TS/GO)
    如果您先前輸入 y ,請為 TypeScript 輸入 TS ,或為 GO 輸入 GO
    Do you want to generate ORDS Endpoint URL and Bearer Token? (y/n)
    輸入 y 以產生端點證明資料。否則,輸入 n
如果您不小心刪除 Participant_orgs_list.yml 檔案,請執行下列指令以重新產生檔案。
npm run refresh
如果系統中已有檢視或資料庫連結,則指令碼不會重新建立。相反地,會記錄類似下列文字的訊息:
createView already exists
命令檔會繼續下一個步驟。這可確保命令檔不會刪除或覆寫視觀表、表格、資料庫連結以及其他資料庫實體。
此外,您可能會看到下列錯誤。
Error: ORA-20049: Cannot alter the URL mapping while the schema is enabled. Try disabling the schema first.
發生此錯誤的原因是資料庫綱要已啟用,因此無法對應至 .env 檔案中指定的不同別名。
若要解決此行為,請完成下列步驟。
  1. 使用先前使用的相同別名,或檢查資料庫中的 REST 服務是否有綱要別名。
  2. 停用資料庫綱要,然後重新執行命令檔。如需詳細資訊,請參閱 Oracle REST Data Services (ORDS):使用 SQL Developer