为批发 CBDC 示例应用程序配置 Oracle Blockchain Platform
在创建了 Oracle Blockchain Platform 的所有必需实例及其先决条件产品后,您需要配置用户和角色,将任何参与者组织添加到创始组织,并启用丰富的历史记录数据库。
将 IDCS 组配置为 Oracle Blockchain Platform 实例
有关内置 Oracle Blockchain Platform 角色以及如何向其分配用户的附加信息,请参阅设置用户和应用程序角色
有关批发 CBDC 示例应用程序角色的其他信息,请参见 Wholesale CBDC Application Workflow 。
在 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_Admins
和Org1_Admins
)分配给各自 Oracle Blockchain Platform Digital Assets Edition 实例的ADMIN
应用程序角色。
此配置可确保系统所有者和参与组织组都具有通过 REST_CLIENT
角色的必要访问权限,而管理权限则通过 ADMIN
角色进行适当管理。
按照以下步骤将组分配给应用程序角色。
- 登录您的 Oracle Cloud Infrastructure 账户。
- 在控制台中,单击左上角的 Navigation(导航)菜单。
- 在身份下,选择域。
- 在“域”页上,单击 Oracle Identity Cloud Service 。
- 在 Oracle Identity Cloud Service 导航菜单中,选择 Oracle Cloud Services 。找到要为其分配组角色的 Oracle Blockchain Platform 实例。打开该实例的“详细信息”页。
- 转到“应用程序角色”页以查看“资源”导航器中列出的 Oracle Identity Cloud Service 应用程序角色。
- 选择要分配的角色,然后展开该角色。单击角色的“更多”菜单,然后选择分配组。
- 在“分配组”对话框中,选择要分配给角色的组,然后单击分配。
提取 ClientId
和 ClientSecret
Visual Builder 将使用 Oracle Blockchain Platform ClientID
和 ClientSecret
。以后需要在 Visual Builder 中更新这些参数,如配置 Visual Builder 后端中所述。
完成以下步骤来检索 Oracle Blockchain Platform 实例的客户端 ID 和客户端密钥:
- 登录您的 Oracle Cloud Infrastructure 账户。确保您具有足够的管理权限来管理 OAuth 设置。
- 在控制台中,单击左上角的 Navigation(导航)菜单。
- 在身份下,选择域。
- 在“域”页上,单击 Oracle Identity Cloud Service 。
- 在 Oracle Identity Cloud Service 导航菜单中,选择 Oracle Cloud Services 。找到要为其提取客户端 ID 和客户端密钥的 Oracle Blockchain Platform 实例。打开该实例的“详细信息”页。
- 打开实例详细信息页时,显示的默认选项卡将是“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 Blockchain Platform 启用丰富的历史记录数据库。
在通用模式下,为 Oracle Blockchain Platform 的系统所有者实例配置 Oracle Autonomous Database 的单个实例。在机密模式下,您必须为每个参与者组织和系统所有者配置单独的 Oracle Autonomous Database 实例。
- 打开网络实例的 Oracle Blockchain Platform 控制台。
- 单击右上角的 More Actions(更多操作)菜单,然后选择 Configure Rich History(配置富历史记录)。
- 通过提供用于访问和写入 Oracle 数据库的连接字符串和身份证明来指定 Oracle 数据库连接。请注意,您提供的身份证明是数据库的身份证明,Oracle Blockchain Platform 不对其进行管理。
- 单击保存以配置富历史记录数据库。
创建登记
您必须为 System_Admins
和 Org_Admins
组中的用户手动创建注册。
Oracle Blockchain Platform 的 REST 代理中的注册为用户提供了一种无需注册证书即可与区块链交互的机制,通过将应用程序身份映射到区块链成员来简化 API 调用。要启动对链代码的任何调用,必须在 Oracle Blockchain Platform 中建立注册。
CBDC 批发应用程序在账户设置期间管理用户的注册创建;但是,当系统管理员用户首次登录时,不存在注册。因此,如果此用户尝试创建帐户,则 RestProxy
调用将失败。因此,为 System_Admins
组创建注册至关重要。
设置帐户时,会为相应的组织创建注册。例如,为系统所有者建立帐户时,将生成相应的注册。但是,如果通过系统管理员页面创建任何参与者组织帐户,则不会自动为这些组织创建注册。在此批发 CBDC 工作流中,必须在系统管理员页面上设置组织管理员帐户。因此,您必须为组织管理员组手动创建注册,因为由于中央银行与金融机构之间的组织结构不同,不会自动生成这些注册。
有关如何创建登记的全面信息,请参阅将登记添加至 REST 代理。
提取 RestproxyId
RestproxyId
值将由 Visual Builder 使用。稍后,您需要在 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 示例应用程序部署链代码
现在,您可以创建渠道并将示例应用程序链代码部署到该渠道。
创建丰富的历史记录数据库视图
为 Oracle Blockchain Platform 实例创建富历史记录数据库后,可以运行数据库视图创建脚本以在富历史记录数据库中创建视图并生成 ORDS 端点。
clientId
、clientSecret
和 Bearer 标记,以验证和访问端点。
- 下载数据库视图创建脚本。
- 打开 Oracle Blockchain Platform 控制台。
- 转到“数字资产”页面。
- 在左侧侧栏中,转至 Wholesale CBDC 应用程序。
- 从 Oracle Database View Definitions for WholesaleCBDC 区域下载脚本。
- 下载脚本后,请参阅 Oracle Database View Definitions for Wholesale CBDC 以了解有关如何运行脚本的详细信息。
- 该脚本返回 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 } }
- 在一般模式下,所有组织都使用单个 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 服务的特定端点模式。
ORDS_REST_BASE_URL/ords/ALIAS_NAME/oauth/token
clientId
clientSecret
- ORDS 端点(仅限
Accounts
端点;内部派生OrgAccounts
和AllAccounts
端点) - OAuth 基本 URL:
ORDS_REST_BASE_URL/ords/<userName|aliasName>