简介

此教程的时长为 15 分钟,介绍如何安装随 Oracle Blockchain Platform 打包的汽车经销商示例链代码,在渠道中部署该链代码,确认它正在运行,调用基本事务处理向您的分类账添加块,以及确认新块已正确添加。

背景信息

区块链平台实现了数据分散、防篡改的账本,并在可信的业务网络中安全地共享这些数据。区块链是不断增长的记录列表,称为块,它们使用加密功能链接和保护。

链代码定义分类账中的数据方案,初始化数据方案,在应用程序触发时执行更新,以及响应查询。链代码还可以发布事件,以便通知应用程序并执行下游操作。

渠道对等节点和账本数据进行分区和隔离,以便在区块链网络上提供私密事务处理。成员定义并构建渠道,允许特定对等节点执行同一区块链网络中其他成员无法查看或访问的私有和机密交易。每个渠道都包括对等节点、共享账本、渠道中实例化的链代码以及一个或多个排序服务节点。

对等节点包含分类账的副本,并将事务处理写入分类账。这些节点还可以对事务处理进行背书。

REST 代理节点将应用身份映射到区块链成员,以便用户和应用调用 Oracle Blockchain Platform REST API。

汽车经销商样品包括用于管理汽车部件的生产、转移和查询的链代码、从这些部件装配的车辆以及车辆的转移。要运行示例,需要完成以下步骤:

  • 在一个或多个对等节点上安装链代码。
  • 在渠道上部署链代码。
  • 使用 REST API 调用或应用程序调用链代码。

您可以下载示例以更全面地浏览它,或者将其用作您自己的链代码或应用程序的基础。

先决条件

  • Oracle Blockchain Platform 创始人实例。
  • 管理员访问您的实例。
  • Oracle Blockchain Platform 控制台的 URL。
  • 实例附带的通道 (default)。
  • 您的实例附带的对等节点(peer0peer1),并加入到 default 通道。
  • 实例附带的默认 REST 代理节点 (restproxy)。

任务 1:安装示例

安装是将链代码放在对等方上的操作。

  1. 使用管理用户 ID 登录 Oracle Blockchain Platform 服务控制台。
  2. 单击 Developer Tools(开发人员工具)选项卡。
  3. 单击示例窗格。
  4. 示例窗格中,找到汽车经销商示例,然后单击安装
  5. 在“安装 CarDealer 链代码”对话框中,从排队下拉列表中选择 peer0,然后单击安装。将语言下拉列表设置为 Golang
  6. 单击“Chaincodes(链代码)”选项卡。此时将显示“链代码汇总”页,其中显示 obcs-cardealer 链代码已打包并提供了软件包 ID。单击安装在对等点上列中的 1。此时将显示 "Installed on Peers Summary" 页面,其中显示链代码安装在 peer0 上。

任务 2:部署示例

部署链代码将在所选渠道和以前安装链代码的对等节点上批准并提交链代码定义。部署事务处理调用生命周期链代码 (_lifecycle),以在渠道中部署链代码。

  1. 开发人员工具选项卡的示例窗格中,找到汽车经销商示例,然后单击部署。在“部署链代码”对话框中,选择以下内容,然后单击部署
    • 渠道:default
    语言下拉列表设置为 Golang
  2. 部署链代码后,转到“链代码”选项卡。对于以 obcs-cardealer 开头的软件包 ID,请单击部署在通道上列中的 1。此时将显示 "Deploy on Channels Summary"(已部署在通道概要)页面,其中显示链代码部署在您选择的 default 通道上。
  3. 渠道选项卡上,单击运行示例链代码的 default 渠道。单击部署的链代码窗格以确认通道上有一个链代码部署,即 obcs-cardealer 链代码。
    后面是 deploy-channel.png 的说明
    插图 deploy-channel.png 的说明

任务 3:调用示例

调用就是调用链代码函数的过程。虽然您可以根据需要使用示例附带的应用程序,但也可以使用直接 REST API 调用。

  1. 开发人员工具选项卡上,打开样品窗格,找到汽车经销商样品,然后单击调用
  2. 在“调用链代码”窗口中,使用以下信息创建轮胎,然后单击执行:
    • 语言:Golang
    • 渠道:default
    • 操作:Produce vehicle part
    • 序列号:tr357
    • 所有者:bobsmith
    • 名称:tire357
    • 汇编程序:sevencorp
    • 装配件日期:Thursday, December 9, 2021
    后面是 call-create-part.png 的说明
    插图 call-create-part.png 的说明
  3. 渠道选项卡上,找到并单击 default 渠道。
  4. Ledger(分类账)窗格中,找到指示发生了数据调用的块编号。
  5. 选择该块,并确认在“Transactions(事务处理)”表中,您在“Status(状态)”列中看到 Success
  6. 单击事务处理 ID 旁边的箭头图标可显示有关事务处理的更多信息。

    注:

    由于您正在调用汽车经销商链代码,因此在事务处理中会列出 obcs-cardealer 链代码。函数名称为 initVehiclePart,因为您已创建新部分,并且事务处理已由 peer0 背书,因为这是您选择在此渠道上背书事务处理的唯一对等点。
  7. 后面是 call-create-ledger.png 的说明
    插图 call-create-ledger.png 的说明
  8. 开发人员工具选项卡上,打开示例窗格,找到汽车经销商示例,然后单击调用
  9. 在“调用链代码”窗口中,输入以下值以查询刚刚创建的轮胎,然后单击执行:
    • 语言:Golang
    • 渠道:default
    • 操作:Query vehicle part
    • 序列号:tr357
  10. 渠道选项卡上,找到并单击 default 渠道。
  11. 分类账窗格中,找到最近事务处理的块编号。
  12. 单击块并确认在“Transactions(事务处理)”表中,您在“Status(状态)”列中看到 Success。单击交易 ID 旁边的箭头图标可显示有关交易的更多信息。

    注:

    应列出正确的链代码、函数名称 (readVehiclePart) 和端点 (peer0)。
  13. 后面是 call-query.png 的说明
    插图 call-query.png 的说明
  14. 开发人员工具选项卡上,打开示例窗格,找到汽车经销商示例,然后单击调用
  15. 在“调用链代码”窗口中,输入以下值以将轮胎的所有权转移给新用户,然后单击执行:
    • 语言:Golang
    • 渠道:default
    • 操作:Transfer vehicle part
    • 序列号:tr357
    • 所有者:anniechu
  16. 渠道选项卡上,找到并单击 default 渠道。
  17. 分类账窗格中,找到最近事务处理的块编号。
  18. 单击块,单击事务处理 ID 旁边的箭头图标可显示有关事务处理的更多信息,并确认在“事务处理”表中您可在“状态”列中看到 Success

    注:

    应列出正确的链代码、函数名称 (transferVehiclePart) 和端点 (peer0)。
  19. 后面是 call-transfer.png 的说明
    插图 call-transfer.png 的说明

您可以删除链代码(如果不再需要)。有关详细信息,请参阅删除链代码

更多学习资源

docs.oracle.com/learn 上浏览其他实验室,或者在 Oracle Learning YouTube 渠道上访问更多免费学习内容。此外,访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心