主页 > imtoken官网网址 > 区块链开源框架HyperLedger Fabric学习思路分享

区块链开源框架HyperLedger Fabric学习思路分享

imtoken官网网址 2023-05-31 05:22:38

本文作者杨毅是《HyperLedger Fabric 开发实践——快速掌握区块链技术》一书的作者。

区块链开源框架 HyperLedger Fabric 学习思路分享

HyperLedger Fabric 最初是由 Digital Asset 和 IBM 贡献并由 Linux 基金会托管的超级账本项目。它是一个非常流行和知名的区块链网络框架的实现。作为基于模块化架构开发应用程序或解决方案的基础,HyperLedger Fabric 支持共识和会员服务等即插即用组件。它旨在支持不同组件的可插拔实现,并适应整个经济生态系统的复杂性和高精度。HyperLedger Fabric 利用容器技术运行称为“链码”的智能合约,其中包含系统的应用程序逻辑。

HyperLedger Fabric 是一种更倾向于联盟链或私有链的区块链解决方案。区块链以其去中心化、开放性、自治性、信息不变性和匿名性等特点引起了广泛关注,目前正在兴起。除了大肆炒作的代币项目,在应用于产业联盟链或直接搭建私有链的项目时,使用 HyperLedger Fabric 作为底层平台无疑是最佳选择之一。

项目不需要刻意围绕区块链进行,不能因为目前区块链的火爆而强迫业务转型,否则可能对企业的发展和企业的升级没有起到积极的作用。项目。

对于联盟链,应该构建为独立于企业核心业务的外围应用。也就是说,企业加入某个区块链平台的目的是为了提高自身业务的稳健性和抗风险能力,不能仅仅因为加入了某个区块链平台,就有针对性地修改原有业务。

企业对区块链联盟平台的态度应该尽量自由,即上链有一定的好处,但仍可以根据自己的实际情况随时选择下链而不影响原来的业务。

必备知识点

这里的学习内容是指HyperLedger Fabric的学习过程中会遇到的一些应用比特币项目开源代码,通常包括以下几个部分。

Docker是一个开源的应用容器引擎,基于Go语言,在Apache2.0协议下开源。Docker 允许开发人员将应用程序和依赖项打包到一个轻量级、可移植的容器中,然后可以将其分发到任何流行的 Linux 机器上,也可以进行虚拟化。容器完全使用沙盒机制,相互之间不会有任何接口(类似于iPhone App),更重要的是容器的性能开销极低。

在学习 HyperLedger Fabric 的过程中,开发者需要掌握 Docker 的基本操作命令,以便更快上手,包括打包、解包、打标签、容器管理、镜像管理等。学习Docker Compose和YAML的编排方案,学习如何挂载文件路径,设置端口绑定,确定网络,掌握环境变量的使用。

Go 是一种并发、垃圾收集、快速编译的语言。它可以在单台计算机上秒级编译大型 Go 程序,结合了解释语言的易用性、动态类型语言的开发效率和静态类型的安全性。

HyperLedger Fabric 是一个基于 Go 的开源项目。学习 Go 不仅是为了深入阅读源码的需求,还因为智能合约编写方案需要实现 Go。对于 Go 的学习,至少可以参考 API 文档编写一套符合要求的智能合约。不过,对于有一些面向对象基础的开发者来说,这并不难。

gRPC 是一个高性能、通用的开源 RPC 框架,由 Google 为移动应用开发而设计,基于 HTTP/2 协议标准。它基于ProtoBuf(Protocol Buffers)序列化协议开发,支持多种开发语言。

在学习HyperLedger Fabric的过程中,对gRPC的认知并不深,但是SDK的相关项目需要用到。建议大家还是需要了解一下这类传输协议,类似于 Thrift、Dubbo 等。

CA是PKI系统中通信双方都信任的实体,被称为可信第三方(Trusted Third Party,TTP)。充当受信任的第三方是不可否认的。

在 HyperLedger Fabric 系统中,CA 被广泛应用于每个特定对象,例如 orderer、peer 和用户的最小单位。后端开发工程师应该明白,在 HyperLedger Fabric 中,CA 用于各种对象的注册、注销、注册和撤销。

Peer-to-Peer,对等网络,对等计算机网络,是一种分布式应用架构,在对等点(Peers)之间分配任务和工作负载。

P2P不是必须的,但也是入门区块链底层的必修课。对于希望未来有机会开发底层的工程师来说比特币项目开源代码,目前需要了解一点。

Kafka 是 LinkedIn 用 Scala 编写的分布式消息传递系统,用作 LinkedIn 的 Activity Stream 和操作数据处理管道(Pipeline)的基础。具有高水平的扩展性和高吞吐量。

在Fabric网络中,数据由peer节点提交给Orderer排序服务,Orderer相对于Kafka相当于上游模块,Orderer还提供数据排序和生成符合配置规范和要求的区块. 在使用上游模块进行数据计算、统计和分析时,可以使用 Kafka 等分布式消息系统来辅助业务流程。

Kafka 是一种共识模型,即平等信任(同步复制),所有 HyperLedger Fabric 网络加盟商都是可信方,因为消息总是均匀分布在各处。但是,在生产中使用时,要靠背书来确认权利。相对而言,Kafka应该是一种启动Fabric网络的模式或类型。

Zookeeper 是一个集群,广泛用于分布式系统中的分布式状态管理、分布式协调管理、分布式配置管理和分布式锁服务。

Kafka 服务器的增减会在 Zookeeper 节点上触发相应的事件。Kafka 系统将捕获这些事件并执行新一轮的负载均衡。客户端还将捕获这些事件以进行新一轮处理。

HyperLedger Fabric 最终需要在实际应用中实现。与 HyperLedger Fabric 的应用层相比,它将直接向其他客户端提供接口并操作区块链网络。目前基于 HyperLedger Fabric 的 SDK 解决方案有很多,但比较成熟的主要是 Java 和 Node.js。所以这两种语言应该是学习HyperLedger Fabric平台工程师的主要语言,建议熟练使用其中一种。

如果这两种语言都不是目前学习Hyperledger Fabric工程师的主要语言,可以考虑用gRPC支持的其他编程语言自己实现,或者使用Fabric-SDK-Container提供的解决方案。

学习路线

Hyperledger Fabric 上手其实并不难,但是很麻烦。很多知识点开发者不需要掌握,但一定要懂。当你只想启动一个基于 Hyperledger Fabric 平台的区块链项目,但不知道必须深入学习哪些知识点时,你需要一个简单明了的指南来帮助你做到这一点。

自从接触HyperLedger Fabric项目以来,经历了从0.6版本到1.1版本的几次迭代。由于早期中文资料稀缺,而从0.6版本到1.0的迭代跨度非常大,大部分早期部署和应用经验都失效了,所以我们只好从1. 再次。0 版本从头开始学习。当时中文资料极为有限,多为单译或纯概念解释。结果一直找不到下手的线索,只能不断地从官方文档中学习知识。

现在网上有大量的HyperLedger Fabric教学博客和视频资料,也有很多书籍可以帮助开发者学习。国内的HyperLedger Fabric项目实践氛围很好。区块链的大部分招聘都要求应聘者对 HyperLedger Fabric 有很好的了解。架构和具体应用有一定的经验。

结合自己的实践经验,从零开始写了Hyperledger Fabric1.0系列博文。后来在宋亚东老师的建议下,他又从头整理了所有的内容,并根据自己的实际学习和发展过程,组织了一条学习路线,如下图所示。开发者可以按照图中序号的顺序进行学习。

区块链开源框架 HyperLedger Fabric 学习思路分享

当然,每个人都有自己的学习计划和想法。上图中的路线并不适合所有人。有一定基础的读者可以跳过部分节点进行选择性阅读。因此,它适合寻找HyperLedger Fabric介绍的新手,也适合该领域的中高级开发者选择性学习。

区块链开源框架 HyperLedger Fabric 学习思路分享

本书名为《HyperLedger Fabric 开发实战——快速掌握区块链技术》,没有用一章的篇幅讲述区块链的编年史,也没有横向比较各大区块链平台的优劣,也不是纯翻译。注解。它更像是初学者学习 HyperLedger Fabric 的指南。书中有大量的代码介绍和解释,还提供了源码下载地址,减少手工编码和调试的麻烦。同时以HyperLedger Fabric案例为例,层层深入,从单机单节点到Solo多机部署再到Kafka集群部署,结合穿插的文档讲解加深理解. 特别是对于一些常见的错误,这本书一一提醒他们,并给出解决方案。希望本书能够帮助开发者少走弯路,尽快实现基于HyperLedger Fabric的区块链实践的实现。

最后介绍一下本书的结构:

第一章是基本的环境部署,包括内网和外网的不同方案,以及内核处理。

第 2 章是关于 HyperLedger Fabric 和环境部署。首先用文档描述Fabric的介绍和主要功能点,然后分析源码部署和图像处理的问题。

第 3 章带读者逐步了解官方的 e2e_cli 案例,然后对案例进行分析。

第 4 章开始,手动部署单机多节点网络。

第五章按照上一章的步骤,手动部署一个Solo多机网络环境。

第 6 章更进一步,构建了一个基于 Kafka 的集群网络。

第 7 章侧重于文档,重点介绍如何编写智能合约以及如何使用它们。

第 8 章详细介绍了 CouchDB 的使用,并推荐使用 CouchDB。

第9章讲解了Fabric发布1.0版本后的外部客户端调用方法、客户端使用SDK及相关源码。

第 10 章以一个简单的案例作为练习,在数据链上使用智能合约,为数据提取提供了另一种思路。