为批发 CBDC 示例应用程序配置 Oracle Blockchain Platform

在创建了 Oracle Blockchain Platform 的所有必需实例及其先决条件产品后,您需要配置用户和角色,将任何参与者组织添加到创始组织,并启用丰富的历史记录数据库。

将 IDCS 组配置为 Oracle Blockchain Platform 实例

有关内置 Oracle Blockchain Platform 角色以及如何向其分配用户的附加信息,请参阅设置用户和应用程序角色

有关批发 CBDC 示例应用程序角色的其他信息,请参阅批发 CBDC 应用程序工作流

在 Oracle Blockchain Platform 中,应实施以下应用程序角色分配:

  • 中央银行 (CB) 组:将所有中央银行组分配给 CentralBank Oracle Blockchain Platform 实例的 REST_CLIENT 应用程序角色。
  • 金融机构 (FI) 组:将所有金融机构组分配给 REST_CLIENT 应用程序角色及其各自组织。
  • 管理角色:将相关管理组(例如 CB_CBDC_ADMINFI_CBDC_ADMINS)分配给各自组织的 ADMIN 应用程序角色。

此配置可确保中央银行和金融机构组都具有通过 REST_CLIENT 角色的必需访问权限,而管理权限则通过 ADMIN 角色进行适当管理。

按照以下步骤将组分配给应用程序角色。

  1. 登录您的 Oracle Cloud Infrastructure 账户。
  2. 在控制台中,单击左上角的 Navigation(导航)菜单。
  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

Visual Builder 将使用 Oracle Blockchain Platform ClientIDClientSecret。您稍后需要在 Visual Builder 中更新这些参数,如 Configure Visual Builder Backends 中所述。

要检索 Oracle Blockchain Platform 实例的客户端 ID 和客户端密钥,请执行以下操作:

  1. 登录您的 Oracle Cloud Infrastructure 账户。确保您具有足够的管理权限来管理 OAuth 设置。
  2. 在控制台中,单击左上角的 Navigation(导航)菜单。
  3. 身份下,选择
  4. 在“域”页上,单击 Oracle Identity Cloud Service
  5. 在 Oracle Identity Cloud Service 导航菜单中,选择 Oracle Cloud Services 。找到要为其提取客户端 ID 和客户端密钥的 Oracle Blockchain Platform 实例。打开该实例的“详细信息”页。
  6. 打开实例详细信息页时,显示的默认选项卡将是“OAuth 配置”选项卡。此选项卡包含有关 Oracle Blockchain Platform 实例的 OAuth 设置的基本信息。

    您可以在“General Information(一般信息)”部分中找到标记为“Client ID(客户端 ID)”和“Client Secret(客户端密钥)”的字段。这些身份证明用于向 Oracle Blockchain Platform 验证 API 请求。

多组织配置

如果您要创建包含多个组织的复杂 Oracle Blockchain Platform 网络,请向创始人添加参与者。Oracle Blockchain Platform 管理指南中提供了此过程的概述:将 OBCS 参与者组织添加到网络

为 Oracle Blockchain Platform 配置丰富的历史记录数据库

有关配置和使用富历史记录数据库的其他信息,请参阅创建富历史记录数据库

完成这些步骤之前,必须按照 Provision Autonomous Database 中所述创建了 Autonomous Database 实例,以便为 Oracle Blochain Platform 启用丰富的历史记录数据库。

  1. 打开网络实例的 Oracle Blockchain Platform 控制台。
  2. 单击右上角的 More Actions(更多操作)菜单,然后选择 Configure Rich History(配置富历史记录)
  3. 通过提供用于访问和写入 Oracle 数据库的连接字符串和身份证明来指定 Oracle 数据库连接。请注意,您提供的身份证明是数据库的身份证明,Oracle Blockchain Platform 不对其进行管理。
  4. 单击保存以配置富历史记录数据库。

创建登记

必须手动为 CB_CBDC_ADMINSFI_CBDC_ADMINS 组中的用户创建登记。

Oracle Blockchain Platform 的 REST 代理中的注册为用户提供了一种无需注册证书即可与区块链交互的机制,通过将应用程序身份映射到区块链成员来简化 API 调用。要启动对链代码的任何调用,必须在 Oracle Blockchain Platform 中建立注册。

批发 CBDC 应用程序管理在账户设置期间为用户创建注册;但是,当 CBDC 管理员用户首次登录时,不存在注册。因此,如果此用户尝试创建帐户,则 RestProxy 调用将失败。因此,必须为 CBDC ADMIN 组创建注册。

设置帐户时,将为相应组织创建登记。例如,在建立中央银行 (CB) 帐户时,将生成相应的注册。但是,如果通过“CBDC 管理”页面创建任何金融机构 (FI) 帐户,则不会自动为这些金融机构创建注册。在此 CBDC 批发工作流中,必须在“CB 管理”页面中设置 FI 管理帐户。因此,用户必须为“金融机构管理”组手动创建注册,因为由于“中央银行”和“金融机构”之间的组织结构不同,不会自动生成这些注册。

有关如何创建登记的全面信息,请参阅将登记添加至 REST 代理

提取 RestproxyId

Visual Builder 将使用 RestproxyId。您稍后需要在 Visual Builder 中更新此信息,如 Configure Visual Builder Backends 中所述。

要检索 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 <obp_url>/console/admin/api/v2/nodes

此 API 调用将返回一个响应,其中包含有关在实例中配置的 REST 代理的详细信息。

有关控制台 API 的更多详细信息,请参阅以下文档:获取节点列表

答复明细

在响应中,找到标有 RESTProxies 的部分,您将在其中找到相应的 RestProxyId。响应的结构将包括与每个 REST 代理节点关联的各种属性。

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

为批发 CBDC 示例应用程序部署链代码

现在,您可以创建渠道并将示例应用程序链代码部署到该渠道。

  1. 创建通道。
    1. 根据您的组织要求,定义一个包含必要参与者的新渠道。
    2. 在渠道创建过程中,确保选中启用富历史记录。此选项会激活以前配置的富历史记录功能。
  2. 部署链代码。
    将批发 CBDC 链代码包中提供的批发 CBDC 链代码部署到新创建的渠道。有关如何部署链代码的详细信息,请参阅部署链代码的典型工作流
  3. 使用批发 CBDC 链代码程序包中提供的批发 CBDC Postman 集合来调用 init API。此步骤将完成初始化过程,确保链代码可供使用。
  4. 检查复制状态。
    1. 转到渠道选项卡。
    2. 定位渠道,然后单击渠道条目右侧的更多操作菜单。
    3. 选择丰富的历史记录状态可查看复制状态。
      • 如果状态为 REPLICATING,则表示通道数据正在主动复制到富历史记录数据库。
      • 如果复制状态为 USER_DISABLED,则执行以下操作:
        1. 重新启动对等节点:重新启动与通道关联的对等节点。
        2. 调用事务处理:触发通道上的任何事务处理以启动数据复制。
        3. 重新检查复制状态以确认数据现在正在复制到富历史记录数据库。
请注意渠道名称和链代码名称 - 您需要使用这些配置 Visual Builder 才能使用示例应用程序。

创建丰富的历史记录数据库视图

为 Oracle Blockchain Platform 实例创建富历史记录数据库后,可以运行“Database View Creation(数据库视图创建)”脚本来创建富历史记录数据库中的视图并生成 ORDS 端点。

Oracle REST Data Services (ORDS) 脚本是写在 TypeScript 中的 Node.js 应用程序,用于公开 ORDS 端点,以便从富历史记录数据库检索账户事务处理详细信息。它创建一个 RESTful 端点,允许用户从富历史记录数据库提取链代码事务处理数据(对于 TypeScript 和 Go 链代码)。此外,它还提供必要的身份证明(例如 ORDS 端点、clientIdclientSecret 和 Bearer 令牌)来验证和访问端点。
  1. 下载“Database View Creation(数据库视图创建)”脚本。
    1. 打开 Oracle Blockchain Platform 控制台。
    2. 转至“数字资产”选项卡。
    3. 在左侧侧栏中,转至 Wholesale CBDC 应用程序。
    4. Oracle Database View Definitions for WholesaleCBDC 区域下载脚本。
  2. 下载该脚本后,请参阅 Oracle Database View Definitions for Wholesale CBDC 以了解有关如何执行该脚本的详细信息。
    运行脚本时,系统会向您提示一个问题:选择 TypeScript (TS) 作为语言,因为批发 CBDC 链代码是在 TypeScript 中编写的。
  3. 该脚本返回 ORDS 端点、客户端 ID 和客户端密钥。
    {
      ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
      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 服务的基本路径。
  • PATTERN:RESTful 服务的特定端点模式。
要生成用于验证的 Bearer 标记,请使用 OAuth2 标记端点:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/oauth/token
必须在 Visual Builder 的后端更新与 ORDS 相关的以下参数,才能从富历史记录数据库中检索数据。稍后将在配置 Visual Builder 后端中完成此操作。
  • clientId
  • clientSecret
  • ORDS 端点
  • OAuth 基本 URL:ORDS_REST_BASE_URL/ords/<userName|aliasName>