Oracle Database 檢視批發 CBDC 的定義

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

您可以使用 GetAccountTransactionHistoryWithFiltersFromRichHistDB API 從 RTF 歷史記錄資料庫擷取科目交易歷史記錄。當您將 custom_endpointbearer_token 參數傳遞至方法時,會從 RTF 歷史記錄資料庫或狀態資料庫擷取帳戶交易歷史記錄。
若要從 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 VIEW_NAME 顯示帳戶交易明細的檢視名稱。這可以是與資料庫中現有資產不衝突的任何值。 VIEW_NAME="viewTest"
    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 Endpoint Setup ITEMS_PER_PAGE ORDS 查詢結果中每頁顯示的項目數目。這可以是與資料庫中現有資產不衝突的任何值。 ITEMS_PER_PAGE=120
    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_MOD。交易檢視為 TRANSACTION_MOD。帳戶交易檢視是 ACCOUNTS_TRANSACTION_MOD

  9. 使用下列命令執行 ORDS 命令檔。
    npm run start --username='<username>' --password='<password>'

    在此範例中,<username><password> 是 Rich History 資料庫的證明資料,必須具備建立檢視和 ORDS 端點的必要權限。由於 bash 介面的限制,使用者名稱和密碼必須以單引號 (') 括住。

    當指令執行時,會顯示下列提示。
    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
您可能會看到下列錯誤。
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