Hyperledger Fabric 核心概念

科技资讯 投稿 40600 0 评论

Hyperledger Fabric 核心概念

一、说明

区块链网络主要有三种类型:公共区块链、联盟区块链,以及私有区块链;我们熟知的比特币、以太坊这些数字货币其实就是属于公共区块链平台;

本文将梳理区块链技术平台  的核心概念与关键功能。

二、特点

Fabric与其他区块链平台对比有以下几个特点:

  • 身份管理:fabric和其他区块链系统的不同之处在于它是私有的,有准入资格授权的,并非一个公开的允许不明身份参与者进入网络的系统;它提供了一个成员身份服务,用于管理网络上的所有参与者和权限。

  • 链码功能:智能合约在Fabric 中称之为链码,用于对账本的访问,例如写入交易信息,查询数据等等。

三、系统功能

  • 身份管理功能是通过PKI体系和CA模块来实现成员、权限还有证书的管理。

  • 分布式账本就是区块链网络的核心功能,记录着所有的交易信息。

  • 排序服务,类似一个裁判的角色,因为不同的交易顺序对最终的交易结果是有很大的影响的,所以这个排序服务主要是为了让所有的节点达成统一的共识,最终实现数据的一致性。

  • 网络通信方面,节点与节点之间的点对点通信是基于grpc协议,然后再通过gossip算法来实现去中心化的广播,意思就是不需要中心节点,通过任意一个节点以一传十,十传百的方式来把消息散播到全网。

  • 背书验证指的是背书策略,背书策略有很多种,例如我指定策略为大多数节点同意,意思就是一笔交易必需超过半数的节点都认证通过了,才能完成,这样就能有效的防御一些恶意的交易。

  • 链码服务是一个独立的应用程序,运行在隔离的Docker容器中,在链码部署的时候会自动生成链码的Docker镜像。

四、组件逻辑关系

  1. 图中的浅蓝色方块  代表整个区块链网络;

  2. 网络底部的  为  相当于是一个子链,一个区块链网络可以创建多个通道,通道与通道之间是数据隔离的,可以理解为是一个多租户系统;

  3. 一个通道上面可以部署多个  点为图中蓝色方块  和,区块链网络主要由  点组成;

  4. 每个  点上都有一份  的全量副本为红色的,然后  是部署在每个节点上的为黄色,一个节点可以部署多个 ;

  5. 最后区块链网络外面的白色方块A指的是访问区块链的,应用是通过通道来与节点上的账本进行交易的。

五、账本

账本是 Hyperledger Fabric 中的一个重要概念,它存储了有关业务对象的重要事实信息,其中既包括对象属性的当前值,也包括产生这些当前值的交易的历史。

如下图所示,Hyperledger Fabric 中的账本由“世界状态“和”区块链“这两部分组成:

区块链:以文件形式实现的,记录交易日志明细,相当于是一个交易的台账表。

六、智能合约

在  以后引入了新的生命周期来管理合约:

  1. 首先第一步开发合约:需要依赖原生的合约 sdk,支持包括 Java、js 和 Golang 三种开发语言。

  2. 开完合约后,管理员可以使用 package 子命令来打包合约,并生成打包文件。打包命令默认程序是 golang 语言,可以使用 -l 参数来指定其他语言。

  3. 一次打包可以多次安装,然后接着使用 install 命令在指定的 peer 节点上安装合约。

  4. 安装成功后,接着使用 approveformyorg 命令代表所在机构审批合约,并且指定背书策略。

  5. 最后使用 commit 命令向指定的通道提交合约定义,执行完这一步智能合约就部署成功,正式生效了。

  6. 接下来我们就可以编写应用程序来与区块链网络进行交易了,Fabric 封装了一套网关 SDK 给应用程序使用,通过一系列的简单 API 就实现和区块链网络进行交互。

Hyperledger Fabric 2.x 自定义智能合约》

七、交易流程

  1. 首先区块链应用发起一笔交易;

  2. 然后  对交易进行签名验证,返回验证结果;

  3. 客户端将背书结果封装发给 Peer 节点,然后再提交给 Order 节点进行数据同步;

  4. Order 节点按顺序把交易信息同步给其他的 Peer 节点进行验证和提交;

  5. 最后账本更新,完成整个交易。

扫码关注有惊喜!

编程笔记 » Hyperledger Fabric 核心概念

赞同 (39) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽