Hyperledger Fabric 初学者教程:综合指南
已发表: 2021-02-24有许多可用的Hyperledger 框架和工具。 最成功的之一是 Hyperledger Fabric。 自 2016 年发布以来,Hyperledger Fabric 已成为开发企业应用程序的流行框架。 在这个面向初学者的 Hyperledger Fabric 教程中,我们将引导您了解您需要了解的所有内容,包括它是什么、结构是什么,以及如何在其上运行您的第一个应用程序。 事不宜迟,让我们从Hyperledger Fabric 教程开始。
目录
什么是超级账本结构?
Hyperledger Fabric 是一个企业级的基于区块链的框架。 它是一个开源框架,为开发应用程序和业务解决方案提供许可 DLT(分布式账本技术)。 Hyperledger Fabric的一些核心功能包括:
- 高度模块化的架构
- 即插即用共识
- 支持 Solidity 和 EVM
- 支持 JSON 查询、基于键的查询和其他可查询数据
- 多语言智能合约支持
了解了 Hyperledger Fabric 的基础知识及其核心功能,让我们进入本Hyperledger Fabric 初学者教程的下一部分。
从世界顶级大学在线学习软件课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
什么是 Hyperledger Fabric 系统架构?
在开始我们的核心Hyperledger Fabric 教程之前,有必要了解底层架构。 对结构有深入的了解将帮助您了解框架的运作方式。
- 事务:有两种类型的事务:部署和调用。 部署事务用于创建链码,链码是由区块链运行的程序。 另一方面,调用事务用于在先前部署的链码的上下文中执行事务。
- 数据结构:与任何区块链框架一样,Hyperledger Fabric 中使用的数据结构是键值对。 链码通过 put 和 get 操作来操作数据。
- Ledger :它是对链的所有成功和不成功更改的序列。
- 节点:它们是通信代理,或者换句话说,是网络的实体。
- 客户:最终用户或代表他们行事的人。
- Peer :他们处理链的状态并确保一切顺利运行。
初学者开发他们的第一个应用程序的 Hyperledger Fabric 教程
现在我们知道了基本架构,是时候开发我们的第一个 Hyperledger Fabric 应用程序了。

建立并启动第一个网络
此步骤包括安装先决条件和示例组件以开始开发我们的应用程序。
建立网络
您需要做的第一件事是构建和启动网络。 如果没有正在运行的网络,您的应用程序将毫无用处。 查看 Hyperledger Fabric 的先决条件指南和二进制文件、Docker 映像和示例安装指南。
安装完所有内容后,使用以下命令移动到带有示例网络的存储库。
cd 织物样本/第一网络
接下来,使用 byfn.sh 脚本运行网络。 运行这个网络将促进网络通信并启动容器、对等点、链码等基本要素,这将有助于其他过程。 运行示例网络后,就该生成工件了。
生成工件
使用以下代码生成工件,然后在要求确认时按“Y”以开始填写必要的详细信息。
.byfn.sh 生成
为网络供电
生成工件后,您需要为网络供电。 它将启动所有组件,包括链码和容器,以允许新的对等点加入网络。 使用以下代码为网络供电:
./byfn.sh 向上
Hyperledger Fabric 链码的默认语言是 Go。 但是,您可以分别使用以下命令切换到使用 Node.js 或 Java:
.byfn.sh up -l 节点
.byfn.sh up -l java
您还可以使用以下任一代码来选择使用多种编程语言:
./byfn.sh up -o etcdraft
./byfn.sh up -o 卡夫卡
启动网络
现在我们将启动网络。 但在此之前,我们必须:
- 获取我们应用程序的子目录
- 制作 fabric-sample repo 的本地克隆
使用以下命令脚本启动网络:

./startFabric.sh javascript
启动网络后,您将拥有从订购者到对等方再到证书颁发机构的一切权利来开发您的应用程序。 由于我们正在使用应用程序的子目录,因此将自动启动智能合约。
安装您的第一个应用程序
使用以下代码安装安装和启动应用程序所需的依赖项。
npm 安装
与证书颁发机构连接
一旦网络启动并运行,让我们首先与可以允许我们将用户添加到链中的当局进行沟通。 为此,我们需要接受证书签名请求 (CSR)。 使用以下命令联系证书颁发机构并创建公共、私有和 x.509 证书。
节点注册管理员.js
您的信息现在将保存在钱包中。 同样,要添加任何新用户,您需要经历相同的过程并使用以下代码:
节点 reisterUser.js
此代码将添加用户,详细信息将保存在钱包中。
查询账本
您可以使用读取查询通过区块链网络查询账本并获取结果。 应用程序不会执行任何写入查询,因为分类帐是只读的。
使用以下代码从分类帐中检索所有数据:
节点查询.js
接下来,我们需要建立一个连接来传送数据。 建立连接后,创建一个网关以允许应用程序连接到网络。 以下代码行将帮助您完成所有这些工作。
const { FileSystemWallet, Gateway } = require('fabric-network');
常量网关 = 新网关();
等待网关.connect(ccp,{钱包,身份:'user1'});
常量合约 = network.getContract('subdirectory_name');
上述代码中的 CPP 用于访问和验证用户信息。 代码的最后一行是连接到特定通道。 这是必不可少的,因为整个区块链网络在多个渠道上运行。
了解合同
前往 chaincode/subdirectory_name/javascript/lib 子目录以访问应用程序的智能合约。 在上述目录中,subdirectory_name 将是您的应用程序子目录的名称。 在编辑器中打开您在此处获得的 application_name.js 文件。 在此文件中,您将获得智能合约以及在 Contract 类中定义的所有交易。 假设您的应用程序是关于汽车的,交易细节将如下所示:
async queryCar(ctx, carNumber) {…}
阅读:为什么区块链是未来
更新分类帐
本Hyperledger Fabric 初学者教程的最后一部分是更新分类帐。 考虑相同的汽车示例,让我们看看如何在日志中添加新车。 使用以下代码行将新车辆添加到分类帐中。
await contract.submitTransaction('createCar', 'CAR15', 'Owner', 'Brand', 'CarModel', 'Color');

使用上述命令将创建一辆新车以及提到的属性值。 要将此新交易发送到分类帐,请编写以下代码:
节点调用.js
这将成功更新分类帐。
结论
这使我们的Hyperledger Fabric 教程结束。 区块链技术和 Hyperledger Fabric 框架有可能彻底改变全球多个行业。 本教程简要介绍了 Hyperledger Fabric 框架的工作原理以及如何在其上运行您的第一个事务和应用程序。 如果您想深入了解并学习如何使用该框架开发实际的业务应用程序,您可以申请 upGrad 和 IIIT 班加罗尔的区块链技术高级证书课程。
该课程 250 多个小时的区块链技术和框架学习材料,如以太坊、Hyperledger Fabric、分布式应用程序开发(智能合约开发、后端开发、API)。 如果您想从事区块链开发的职业,请立即申请。