安装、配置和部署解决方案

要实施此解决方案,有三个主要领域需要处理,如下一节所述。

  1. 区块链基础设施准备。
  2. 开发和部署智能合约。
  3. 创建将利用我们的智能合约的应用程序。


oracle-blockchain-cms-plan-oracle.zip

创建超级账本架构 (Hyperledger Fabric) 网络,最初由单个组织组成,但可以根据需要轻松扩展到任意多个成员。

然后,我们将继续创建智能合同,以处理在区块链中保留和管理业务用例所需的实体所需的逻辑。

一旦智能合约项目被创建,我们将安装并部署到之前创建的区块链网络中,然后我们将配置帐户,注册,最后我们将执行智能合约及其 NFT 的初始化。

此时,智能合同方法已通过我们的 Oracle Blockchain 实例的 API 网关(也称为 RESTPROXY)发布,因此它们可供客户端应用程序使用,在本例中,我们已经使用 VBCS 创建的 Web 应用程序,我们将在最后一节中提供。

最后一步是创建将存储文档的 OCI 存储桶,最后一步是重新配置 VBCS 示例应用程序,以指向我们新创建的区块链网络以及在租户中配置的新存储桶。完成所有重新配置后,应用程序将部署到我们的租户中。

创建 Oracle Blockchain 网络

为了在 Oracle Blockchain 中创建超级账本架构 (Hyperledger Fabric,HLF) 网络,我们使用的是 Oracle Blockchain Cloud Service。

我们将创建一个单实例 HLF 网络,根据具体用例,我们可以显示属于该网络的一个组织中的功能。新组织可以通过合并他们自己的区块链实例加入网络,允许这些组织的新用户拥有他们的文件夹,或者查看其他成员拥有的现有文件夹的内容。

创建建立者实例

  1. 在 OCI 服务菜单中,选择开发人员服务并单击区块链平台
  2. 在 OCI 控制台左侧的区间组合选择器中,确保选择要创建实例的区间。
  3. 单击创建区块链平台
  4. 为平台提供显示名称(例如 org1 ),可以选择添加说明,并保留剩余的默认选项,因为它们是创建建立者实例的设置,将是新的超级账本架构网络 (Hyperledger Fabric Network) 的创始人,并使用标准配置,该配置与企业配置功能完全相同,但成本更低,但对开发工作有效。单击创建
    已提交为此组织 (org1 ) 创建的实例,该实例将在几分钟后就绪。
创建建立者实例后,您将能够通过单击服务控制台访问此实例的 Oracle Blockchain 控制台。

创建通道

我们需要加入渠道层面的组织,以允许创始人和参与者之间的沟通。将使用区块链服务控制台执行此操作。

  1. 在创建者实例的区块链服务控制台 (org1 ) 中,选择渠道选项卡并单击创建新渠道
  2. 填写必填字段。
    • 根据您的首选项将 wedocms 设置为渠道名称或任何名称。
    • Peers to Join Channel 部分选择选项(peer0peer1 )。
  3. 通过在确认弹出窗口中单击来确认创建。
    检查通道表是否显示新通道。单击通道名称 ( wedocms ) 可查看通道详细信息。您可以查看有关渠道的所有详细信息,例如保存到分类账块中的事务处理、部署在渠道中的链代码、配置的排序者和对等节点、属于渠道的组织等。

创建用户账户

我们将使用 Oracle Identity Cloud Service 为文件夹中的每个部门创建至少一个用户。对于每个用户,将创建一个帐户,以存放他们拥有的不同文件夹。

我们将创建属于风险部门的用户 cmsrsk001 、属于财务部门的用户 cmsfin001 以及属于法律部门的用户 cmsleg001
  1. 从左上角的 OCI 控制台导航菜单中,单击身份和安全,然后从“身份”部分中选择联盟选项。
  2. 单击身份提供者名称链接。
  3. 单击创建用户
  4. 将要用于登录控制台的值或授权用户名设置为用户名,以执行智能合同的 REST API。在电子邮件字段中,设置 OCI 账户的电子邮件,以便您收到重置此用户的密码的电子邮件,然后单击创建
  5. 单击分配角色
  6. 对于 AUTOBLOCKCHAIN 服务,单击右侧的省略号并选择管理实例访问
  7. 根据您创建的用户,根据下表分配授权,并在分配正确的角色后,单击更新实例设置。您应看到已正确分配的角色。

    表 - 角色分配

    用户名 实例 角色
    cmsrsk001 org1 管理,REST_CLIENT
    cmsfin001 org1 管理,REST_CLIENT
    cmsleg001 org1 管理,REST_CLIENT
  8. (可选)系统将要求您向通知已授予角色的用户的电子邮件地址发送电子邮件。
  9. 在用户创建过程中,您将在与最近创建的用户关联的电子邮件帐户中收到一封电子邮件,以重置此用户的密码。使用提供的链接设置刚创建的用户的密码。

在 REST 代理节点中创建注册

Oracle Blockchain Platform 支持注册 REST 代理。这些注册用于存在 FT 或 NFT 令牌的链代码中,以将调用者的身份映射到执行事务处理的角色。为此,您必须创建用户与区块链中定义的角色的关系,为了简单起见,您可以将该角色命名为用户。

必须在允许具有此类角色的用户通过该区块链实例上的 REST 代理执行事务处理的实例中创建每个注册。因此,需要在创建者实例 (org1 ) 的 REST 代理节点中创建分配给用户 cmsrsk001 的注册 cmsrsk001 ,对于其他两个用户也是如此,如下表所述。
用户名 注册 实例
cmsrsk001 cmsrsk001 org1
cmsfin001 cmsfin001 org1
cmsleg001 cmsleg001 org1
  1. 从创建者实例的区块链服务控制台 (org1 ) 中,导航到节点选项卡。
  2. 单击 restproxy 之外的汉堡菜单,然后选择查看或管理注册
  3. 选择创建新注册
  4. 注册 ID 设置为 cmsrsk001 ,将用户 ID 设置为 cmsrsk001 ,然后单击注册
重复步骤 4,为其他两个用户创建注册:cmsfin001cmsleg001 。如果从其他组织创建了用户,则应在这些用户所属区块链实例的 REST 代理中创建这些用户的注册。

准备 Oracle Blockchain App Builder 开发环境

创建超级账本架构 (Hyperledger Fabric,HLF) 智能合同需要了解有关 HLF 的内在知识、如何使用 Java、Typescript 或 GoLang 进行编码以及如何部署和管理智能合同项目的整个生命周期。

Oracle Blockchain App Builder 的创建是为了简化智能合同项目的创建,实际上 Oracle Blockchain App Builder 是一种低代码工具,能够从头开始创建整个链代码项目,不包括业务案例所需的任何自定义代码。Oracle Blockchain App Builder 还将帮助您在测试阶段、打包项目以及将链代码本地部署到您自己的计算机上进行统一测试,或远程部署到真正的超级账本架构网络中。

oracle-app-builder-oracle.zip

Oracle Blockchain App Builder 是两种风格创建的,您可以将其用作命令行工具,旨在自动执行 CI/CD 流程中的构建和部署步骤,也可以将其用作 Microsoft Visual Code 插件。两者都允许您执行完全相同的功能,只需根据您的首选项选择您喜欢的功能即可。Oracle Blockchain App Builder 具有以下功能:

  • 开发:Oracle Blockchain App Builder 将创建整个链代码项目,只是创建所谓的自定义规范文件。该项目将包括所有编码的实体、其所有存取程序以及用于管理这些实体的所有 CRUD 方法,以及应用程序所需的任何非标准或复杂业务逻辑所需的任何定制方法的签名,这些定制方法将成为手动实现所需的唯一代码。
  • 部署:链代码项目准备就绪后,您可以将其本地部署到预配置的超级账本架构网络中,或者远程部署到任何现有云或内部部署 Oracle Blockchain Platform 实例。另一种选择是通过 Oracle Blockchain 控制台打包要手动部署的项目。
  • 测试:部署项目后,您可以测试任何自动生成的方法或链代码项目的定制方法。
  • 调试:如果您使用的是 Visual Studio Code 扩展,则还可以逐行调试链代码。

您可以安装以下两个可用的 Oracle Blockchain App Builder 版本中的任何一个:

如果您不愿意安装此类开发工具及其所有依赖项,但可以访问 Oracle Cloud,则可以选择创建一个专用开发框,其中包含已安装并准备在云中使用的所有产品,并远程访问这些产品。由于需要计算配置,这些计算机非常经济高效。仅在启动并运行期间对它们计费。

Oracle LiveLabs 设有实验室,您可以根据 Oracle Blockchain 开发团队预先配置的 VM 映像在数分钟内部署远程计算机。有关详细信息,请参阅使用 Apex 和 Blockchain App Builder 开发低代码区块链应用

注意:

在实验室中,要让云计算机准备好 Visual Code Studio 和安装在它的 Oracle Blockchain App Builder 低代码插件,您只需执行“准备设置和环境设置”步骤。

创建和配置 OCI 对象存储存储桶

我们将配置 OCI 对象存储存储桶,以允许您存储和检索 Oracle Visual Builder Web 应用程序中的文档。

这些操作由 Web 应用程序执行,与创建文档的散列同步,该散列将在文档上载到存储桶期间存储在区块链中,以及下载文档时验证散列的有效性。

注意:

有关如何编码 Oracle Visual Builder 应用程序以从 OCI 对象存储上载或下载文件的更多详细信息,请参阅:在 Visual Builder 应用程序中从 OCI 存储上载/下载文件

要通过 OCI 对象存储存储桶提供的 REST API 启用存储桶的使用,我们必须创建与允许执行 REST API 的用户相关的 OCI API 密钥。执行以下两个配置任务来使用 VBCS Web 应用中的 OCI 对象存储存储桶。

要允许从 Oracle Visual Builder 应用程序使用 OCI 对象存储存储桶,必须创建 OCI API 密钥才能通过 REST API 访问 OCI 服务。

  1. 登录到 OCI 控制台,然后单击控制台右上角的“Profile(概要信息)”图标以访问用户设置。
  2. 向下滚动并单击资源菜单中的 API 密钥
  3. 单击添加 API 密钥以添加新的 API 密钥。
  4. 选择生成 API 密钥对

    注意:

    您可以以 pem 格式使用自己的公钥和私钥,但在此解决方案手册中,我们将使用自动生成的密钥。
  5. 下载私钥和公钥,并将一个 .pem 文件标记为公共。
  6. 单击添加
  7. 单击复制链接以将 OCI API 身份证明复制到本地计算机中的文本文件,因为您需要这些身份证明以供后续步骤使用。
  8. 单击关闭
    您应创建新 API 密钥,并且应在 OCI Web 控制台中看到指纹密钥。通过单击指纹行中的省略号并选择查看配置文件,可以访问之前复制到桌面的配置文件。

    注意:

    保存详细信息,因为您需要在接下来的步骤中将其中一些信息与私钥一起使用。
  9. 创建一个存储桶,用于存储对象。导航到存储,然后单击存储桶
    为了简单起见,它可以创建为 Public,这样就不需要验证,但也可以使用 Private 可见性存储桶实现同样的目标。
  10. 选择要创建存储桶的区间,然后单击创建存储桶
  11. 创建存储桶屏幕中,为存储桶指定名称,将其他配置参数保留为默认值,然后单击创建以完成存储桶的创建。
    新存储桶将显示在所选区间中。选择存储桶名称以查看详细信息。单击左侧菜单中的对象可查看上载到此存储桶的对象。