設定 Oracle Blockchain Platform for Wholesale CBDC 範例應用程式

建立 Oracle Blockchain Platform 的所有必要執行處理及其先決條件產品之後,您必須設定使用者和角色、將任何參與者組織新增至創始組織,以及啟用豐富的歷史記錄資料庫。

設定 Oracle Blockchain Platform 執行處理的 IDCS 群組

如需有關內建 Oracle Blockchain Platform 角色以及如何指派使用者的其他資訊,請參閱設定使用者和應用程式角色

如需批發 CBDC 範例應用程式角色的其他資訊,請參閱批發 CBDC 應用程式工作流程

在 Oracle Blockchain Platform 中,必須導入下列應用程式角色指派:

  • 系統擁有者群組:將單一合併的系統擁有者 IDCS 群組 (包含所有系統擁有者角色) 指派給系統擁有者 Oracle Blockchain Platform Digital Assets Edition 執行處理的 REST_CLIENT 應用程式角色。請勿直接將個別的個別角色特定群組指派給 Oracle Blockchain Platform Digital Assets Edition 執行處理。
  • 參與者組織群組:針對每個參與者組織,將單一結合的參與者組織 IDCS 群組 (包含該組織的所有角色特定群組) 指派給個別 Oracle Blockchain Platform Digital Assets Edition 執行處理的 REST_CLIENT 應用程式角色。
  • 管理角色:將相關管理群組 (例如 System_AdminsOrg1_Admins) 指定給其個別 Oracle Blockchain Platform Digital Assets Edition 執行處理的 ADMIN 應用程式角色。

此組態可確保「系統擁有者」和「參與組織」群組都具有透過 REST_CLIENT 角色的必要存取權,而管理權限則透過 ADMIN 角色適當管理。

請依照下列步驟將群組指派給應用程式角色。

  1. 登入您的 Oracle Cloud Infrastructure 帳戶。
  2. 在主控台中,按一下左上角的導覽功能表。
  3. 識別下,選取網域
  4. 在「網域」頁面上,按一下 Oracle Identity Cloud Service
  5. 在 Oracle Identity Cloud Service 導覽功能表中,選取 Oracle Cloud Services 。尋找要指定群組角色的 Oracle Blockchain Platform 執行處理。開啟該執行處理的「詳細資訊」頁面。
  6. 移至「應用程式角色」頁面,檢視「資源」導覽器中所列的 Oracle Identity Cloud Service 應用程式角色。
  7. 選取您要指派的角色,並展開角色。按一下角色的「其他」功能表,然後選取指派群組
  8. 在「指定群組」對話方塊中,選取您要指派給角色的群組,然後按一下指定

擷取 ClientIdClientSecret

Oracle Blockchain Platform ClientIDClientSecret 將由 Visual Builder 使用。您稍後需要更新 Visual Builder 中的這些參數,如設定 Visual Builder 後端中所述。

完成下列步驟,以擷取 Oracle Blockchain Platform 執行處理的用戶端 ID 和用戶端密碼:

  1. 登入您的 Oracle Cloud Infrastructure 帳戶。確定您具有管理 OAuth 設定值的足夠管理權限。
  2. 在主控台中,按一下左上角的導覽功能表。
  3. 識別下,選取網域
  4. 在「網域」頁面上,按一下 Oracle Identity Cloud Service
  5. 在 Oracle Identity Cloud Service 導覽功能表中,選取 Oracle Cloud Services 。尋找要擷取從屬端 ID 和從屬端加密密碼的 Oracle Blockchain Platform 執行處理。開啟該執行處理的「詳細資訊」頁面。
  6. 當您開啟執行處理詳細資訊頁面時,顯示的預設頁籤將會是 OAuth 組態頁籤。此頁籤包含有關 Oracle Blockchain Platform 執行處理之 OAuth 設定的重要資訊。

    您會在「一般資訊」區段中找到標示為「從屬端 ID」和「從屬端密碼」的欄位。這些證明資料主要用來認證對 Oracle Blockchain Platform 的 API 要求。

多重組織組態

如果您正在與多個組織建立複雜的 Oracle Blockchain Platform 網路,請將參與者新增至創始人。Oracle Blockchain Platform 管理手冊提供此程序的簡介:新增 OBCS 參與者組織至網路

設定 Oracle Blockchain Platform 的豐富歷史記錄資料庫

如需有關設定和使用 Rich History 資料庫的其他資訊,請參閱建立 Rich History 資料庫

在完成這些步驟之前,您必須先依照佈建 Autonomous Database 中所述建立 Autonomous Database 執行處理,才能啟用 Oracle Blockchain Platform 的豐富歷史記錄資料庫。

在一般模式中,為 Oracle Blockchain Platform 的系統擁有者執行處理設定 Oracle Autonomous Database 的單一執行處理。在機密模式中,您必須為每個參與者組織和系統擁有者設定個別的 Oracle Autonomous Database 執行處理。

  1. 開啟網路執行處理的 Oracle Blockchain Platform 主控台。
  2. 按一下右上角的其他動作功能表,然後選取設定 Rich History
  3. 提供存取和寫入 Oracle 資料庫的連線字串和證明資料,以指定 Oracle 資料庫連線。請注意,您提供的證明資料是資料庫的證明資料,而 Oracle Blockchain Platform 則不會管理這些證明資料。
  4. 按一下儲存以設定 Rich History 資料庫。

建立登記

您必須手動為 System_AdminsOrg_Admins 群組中的使用者建立註冊。

Oracle Blockchain Platform 的 REST 代理主機註冊可提供機制,讓使用者無需註冊憑證即可與區塊鏈進行互動,透過將應用程式識別對應至區塊鏈成員來簡化 API 呼叫。若要起始對鏈碼的任何呼叫,必須在 Oracle Blockchain Platform 中建立註冊。

Wholesale CBDC 應用程式會在帳戶設定期間管理使用者註冊的建立;不過,當系統管理員使用者第一次登入時,就不會有註冊。因此,如果此使用者嘗試建立帳戶,RestProxy 呼叫將會失敗。因此,建立 System_Admins 群組的註冊是非常重要的。

設定帳戶時,會為個別組織建立註冊。例如,建立系統擁有者的帳戶時,將會產生對應的註冊。不過,如果透過系統管理員頁面建立任何參與者組織帳戶,則不會自動為這些組織建立註冊。在此批發 CBDC 工作流程中,您必須在系統管理員頁面設定組織管理員帳號。因此,您必須手動建立組織管理者群組的註冊,因為中央銀行與金融機構之間的組織結構不同,這些註冊不會自動產生。

如需有關如何建立登記的完整資訊,請參考新增登記至 REST 代理

擷取 RestproxyId

Visual Builder 將使用 RestproxyId 值。您稍後需要如設定 Visual Builder 後端中所述,在 Visual Builder 中更新此資訊。

若要擷取 Oracle Blockchain Platform 執行處理的 RestProxyId,您必須使用管理使用者帳戶呼叫 Oracle Blockchain Platform 主控台 API。可以使用基本驗證或 OAuth 2.0 來完成驗證。

認證方法

對於 OAuth 2.0,請參閱位於 OAuth 2.0 Access Token Based Authentication 的文件,以實作必要的認證流程。

用於擷取 RestProxyId 的 API 端點

使用 Oracle Blockchain Platform 主控台 API 傳送要求至下列端點,以取得 RestProxyId

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

此 API 呼叫將會傳回包含執行處理中所設定 REST 代理主機相關詳細資訊的回應。

如需有關主控台 API 的詳細資訊,請參閱下列文件:取得節點清單

回應詳細資訊

在回應中,找出標示為 RESTProxies 的區段,您可以在其中找到對應的 RestProxyId。回應的結構將包含與每個 REST 代理主機節點相關聯的各種屬性。

"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"
        }
    ]

部署批發 CBDC 範例應用程式的 Chaincode

您現在可以建立通道並將範例應用程式鏈碼部署到該通道。

  1. 建立管道。
    1. 根據您的組織需求,定義具有必要參與者的新管道。
    2. 在通道建立處理作業期間,請確定已選取啟用 Rich History 。此選項會啟用先前設定的 Rich History 功能。
    3. 僅限機密模式:對於專用資料收集,請輸入星號 (*) 以允許存取所有專用資料收集。
      如果您未完成此步驟,從專用資料收集傳回的資料將不正確。
    4. 僅限機密模式:對網路中的所有其他參與者組織重複前兩個步驟 (啟用之前建立之通道上的豐富歷史記錄與專用資料收集存取權)。
  2. 部署鏈碼。
    • 一般模式:透過下載批發 CBDC 鏈碼套件,並在其中內部部署封存檔案 (WholesaleCBDC.zip),來部署批發 CBDC 鏈碼。套裝軟體名稱為 Wholesale CBDC
    • 機密模式:透過下載機密批發 CBDC 鏈碼套件並將封存檔案 (WholesaleCBDC-Confidential.zip) 部署至新管道,來部署機密批發 CBDC 鏈碼。薪資配套名稱為 WholesaleCBDCConfidential
    如需有關如何部署鏈碼的詳細資訊,請參閱部署鏈碼的一般工作流程
  3. 視需要呼叫 init API,使用批發 CBDC 鏈碼套件中提供的批發 CBDC Postman 集合,或機密批發 CBDC 鏈碼套件中的機密批發 CBDC Postman 集合。此步驟會完成初始化處理作業,確保鏈碼已可供使用。
  4. 檢查複寫狀態。
    1. 移至通道頁籤。
    2. 尋找通道,然後按一下通道項目右側的其他動作功能表。
    3. 選取正確的歷史記錄狀態以檢視複製狀態。
      • 如果狀態為 REPLICATING,則通道資料會主動複製到 Rich History 資料庫。
      • 如果複製狀態為 USER_DISABLED,請完成下列動作:
        1. 重新啟動對等:重新啟動與通道關聯的對等節點。
        2. 啟動交易:觸發通道上的任何交易以起始資料複製。
        3. 重新檢查複寫狀態,確認資料現在正在複寫至豐富的歷史記錄資料庫。
請注意通道名稱和鏈碼名稱;您必須使用這些名稱設定 Visual Builder,才能使用範例應用程式。

建立豐富歷史記錄資料庫視觀表

建立 Oracle Blockchain Platform 執行處理的豐富歷史記錄資料庫之後,您可以執行資料庫檢視建立命令檔,在豐富的歷史記錄資料庫中建立檢視,並產生 ORDS 端點。

Oracle REST Data Services (ORDS) 命令檔是以 TypeScript 撰寫的 Node.js 應用程式,設計用來顯示 ORDS 端點,以從 Rich History 資料庫擷取帳戶交易詳細資訊。它會建立一個 RESTful 端點,讓使用者從 RTF 歷史記錄資料庫擷取鏈碼交易資料 (TypeScript 和 Go 鏈碼)。它也提供基本證明資料 (例如 ORDS 端點、clientIdclientSecret 和 Bearer 權杖) 來認證及存取端點。
  1. 下載資料庫檢視建立命令檔。
    1. 開啟 Oracle Blockchain Platform 主控台。
    2. 前往「數位資產」頁面。
    3. 在左側側邊欄中,移至批發 CBDC 應用程式。
    4. Oracle Database View Definitions for WholesaleCBDC 區域下載命令檔。
  2. 下載指令碼之後,請參考 Oracle Database View Definitions for Wholesale CBDC 以瞭解如何執行該指令碼的詳細資訊。
  3. 命令檔會傳回 ORDS 端點、從屬端 ID、從屬端加密密碼以及 Bearer 記號。
    • 在一般模式中,所有組織都使用單一 ORDS 端點組態。指令碼會傳回三個範圍的帳戶端點:個別帳戶、組織層級帳戶及所有帳戶。
      {
        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
        }
      }
    • 在機密模式中,每個組織 (包括系統擁有者) 都有自己的 ORDS 組態。系統擁有者端點包含所有帳戶的存取權。參與者組織只能存取自己的組織層級帳戶。
      系統擁有者:
      {
        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
        }
      }
      參與者組織:
      {
        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
        }
      }
存取 RESTful 服務的 ORDS 端點會遵循此結構:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/BASE_PATH/PATTERN
  • ORDS_REST_BASE_URL:ORDS 服務的基礎 URL。
  • ALIAS_NAME:ORDS 中設定的資料庫或綱要別名。
  • BASE_PATH:RESTful 服務的基本路徑。
  • 專利:RESTful 服務的特定端點樣式。
若要產生用於認證的 Bearer 權杖,請使用 OAuth2 權杖端點:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/oauth/token
下列與 ORDS 相關的參數必須在 Visual Builder 後端更新,才能從 Rich History 資料庫擷取資料。這會在稍後於設定 Visual Builder 後端中完成。
  • clientId
  • clientSecret
  • ORDS 端點 (僅限 Accounts 端點;內部衍生 OrgAccountsAllAccounts 端點)
  • OAuth 基礎 URL:ORDS_REST_BASE_URL/ords/<userName|aliasName>