汽车拍卖网络  

一个使用 Hyperledger Fabric Node SDK 和 IBM Blockchain Starter Plan 的 Hello World 示例

| By Horea Porutiu

Description

在本 Code Pattern 中,您将了解一个现有的 Hyperledger Composer 应用程序,并将其转换为使用 Hyperledger Fabric Node SDK 和 IBM Blockchain Starter Plan 的应用程序。获取 Composer 应用程序的代码,这个应用程序包含三个主要部分:拍卖网会员、要拍卖的汽车以及会员可以竞价的车辆清单。在创建 IBM Blockchain 云服务 Starter Plan 后,使用来自云连接概要文件的凭证将您的 Node 应用程序连接到 Starter Plan 的证书颁发机构 (CA)。在 CA 为您提供凭证后,每个事务(链代码调用)都将使用用户的凭证进行签名,以便网上的其他对等节点能够轻松地进行验证。

在区块链云服务内,将您的链代码安装到对等节点上并将其实例化。这一步会为您的拍卖网填入三个会员、一辆车和一个可以报价的车辆清单。您的工作是报价并销售这辆车。此操作可以通过调用链代码来轻松完成,链代码会检查错误并确保出价最高者胜出。然后账本会被更新,显示该车的新车主是出价最高者,该车的出售者会获得购买者的最高出价。当然,所有这些事务都以区块的形式保存在 IBM Blockchain 云服务中。

概览

在本 Code Pattern 中,您将创建一个区块链网络来模拟汽车拍卖。

证书颁发机构简介

开始设计汽车拍卖逻辑之前,首先需要向来自 IBM Blockchain Starter Plan 的证书颁发机构登记您的应用程序。为此,您需要为您的应用程序提供 IBM Blockchain Starter Plan 上的 CA 的 API 端点,以便您的应用程序能够与该网络进行交互。然后,CA 会为您提供证书,以便向该网络证明您的真实性,并允许您在该网络上进行交易(调用链代码)。

备注:对 Hyperledger Fabric 网络的每次调用都需要使用一个私钥和一个正确签署的 X.509 证书进行签名,以便完成验证。您网络中的每个角色(对等节点、订购者、客户端应用程序、管理员)都有一个封装在 X.509 证书中的数字身份。您需要使用一个管理员用户和一个新用户(我们可以称之为 “user1”)的证书。

链代码简介

生成密钥和证书后,您需要将链代码安装到对等节点上。安装链代码后,将其实例化,这将调用链代码构造函数并在账本上创建区块。此操作可以在 chaincode/carauction.js 文件的 “initLedger” 函数中看到。该函数会创建一辆车、一些会员和一个车辆清单(或一个可让会员竞价的清单)。然后,会员可以为该车报价,这实际上就是在幕后调用链代码。

备注:调用链代码时,您其实是在区块链网络上执行了一个事务。这一步非常重要。链代码是在该网络上执行事务的方式。您报价时,链代码会检查两种类型的错误:

  1. 车主对自己的车进行竞价。
  2. 竞价者的帐户中没有足够的钱用于竞价。

如果两项检查都通过,则会在账本上记录一个报价。拍卖结束后,您将调用 “closeBidding” 事务,如 chaincode/carauction.js 文件中所示。这会将汽车提供给出价最高者,并将资金从购买者转移到出售者,从而使购买者获得汽车的所有权。

要确保您的拍卖正确完成,您可以在最后查询账本,确保汽车拥有正确的车主,而且出售者的帐户中存入了正确的金额。

最后,您可以检查 IBM Blockchain Starter Plan 上的对等节点的日志,也可以查看各个区块的细节来了解事务是如何记录的。

完成本 Code Pattern 后,您将掌握如何:

  • 与 IBM Blockchain Starter Plan 交互。
  • 使用 Hyperledger Fabric Node SDK 构建一个区块链网络。
  • 检查并读取与 IBM Blockchain Starter Plan 相连的应用程序的日志。

  1. 用户下载 IBM Blockchain Starter Plan 连接概要文件,并在 Node 应用程序中添加 CA 的 URL/密钥。
  2. 用户向 CA 注册管理员并注册一个用户。
  3. 用户在对等节点上安装、实例化并调用汽车拍卖链代码。
  4. 更新账本,将区块添加到 Starter Plan 服务,并将响应发送给 Node 应用程序。

Instructions

  1. 克隆存储库。
  2. 登记应用程序。
  3. 注册用户。
  4. 调用链代码。
  5. 运行应用程序。
  6. 查询账本。

相关博客

开源技术 * IBM 微讲堂 – 详解 Hyperledger Fabric v1.4 LTS

本期课程围绕 Hyperledger Fabric v1.4 LTS 版本,邀请一线开发人员,从使用场景、应用开发、架构解析和自动化部署等方面,结合在线演示,为大家带来一个全面详尽的讲解。

继续阅读 开源技术 * IBM 微讲堂 – 详解 Hyperledger Fabric v1.4 LTS

相关链接

英文原文

本 Code Pattern 翻译自《Car auction network: A Hello World example with Hyperledger Fabric Node SDK and IBM Blockchain Starter Plan》(2018-11-13)。

将一个样本应用部署到 IBM Blockchain Platform Starter Plan

逐步了解如何在 IBM Blockchain Platform 上创建一个网络,安装智能合约(链码),并运行一个样本应用来调用该智能合约。您还将了解如何填充共享账本,以及如何从本地客户端应用执行调用来查询和更新账本,与它进行通信。

面向 Java 开发人员的区块链链代码

区块链正在改变互联网上的业务交易方式。在本教程中,您将安装一个区块链网络,并运行一个使用 Java 语言编写的链代码智能合约。

使用 Python 从零开始开发区块链应用程序

本教程将向具有任何编程技能水平的 Python 开发人员介绍区块链。通过从零开始实现一个公有区块链并构建一个简单应用程序来利用它,您将了解区块链到底是什么。Python 是一种容易理解的编程语言,所以我在本教程中选择了它。