Fabric一些基础概念整理
引用自 https://www.cnblogs.com/xdyixia/p/11724905.html
https://zhuanlan.zhihu.com/p/142151874
前言
在区块链的家谱里,第一代区块链系统是以比特币为代表的公链,主要实现的是数字货币的功能;第二代区块链系统是以以太坊平台为代表的公链,创造性的实现了智能合约。而第三代区块链系统,则是HyperLedger-Fabric区块链平台,在智能合约的基础之上,引入了权限管理,被称为联盟链。
Fabric 项目的目标是实现一个通用的权限区块链(Permissioned Chain)的底层基础框架,为了适用于不同的场合,采用模块化架构提供可切换和可扩展的组件,包括共识算法、加密安全、数字资产、智能合约和身份鉴权等服务。
Fabric 克服了比特币等公有链项目的缺陷,如吞吐量低、交易公开无隐私性、无最终确定性以及共识算法低效等问题,使得用户能够方便地开发商业应用。
基础架构
在Fabric生态中,各级从业人员主要研究的领域可以一般按照下图来分工:
如上图所示:
- 业务层:面向业务应用开发人员。基于分布式账本,支持链码、交易等跟业务相关的功能模块,提供更高一层的应用开发支持;
- 共识机制和权限管理:面向联盟和组织的管理人员。基于网络层的连通,实现共识机制和权限管理,提供分布式账本的基础;
- 网络层:面向系统管理人员。实现P2P网络,提供底层构建区块链网络的基本能力,包括代表不同角色的节点和服务。
主要组件
客户端
客户端的作用是和Fabric系统交互,最常用的客户端是命令行客户端CLI。
节点
背书节点
背书节点(Endorser),承担背书任务的节点为区块链交易进行交易信息验证,对验证通过的交易声明此交易合法的过程和机制,背书节点必须通过有效证书的预期信息的有效签名来证明其合法性,最终返回提案相应给客户端。
提交节点
提交节点(Committer)的作用是验证数据并保存到账本。
排序节点
排序节点(Orderer)的任务是对各个节点发出的交易进行排序,在并发的情况下,各个节点的交易先后时序需要通过排序节点来确定并达成共识。排序节点按照一定的规则确定交易顺序之后,发给各个节点把交易信息存储到区块链账本中。排序节点支持互相隔离的多个通道,使的交易只发送给相关的节点。
Leader节点
Leader节点连接到Orderer节点,从Orderer节点的批量区块广播给其他节点。
锚节点
通道中每个组织(Org)都有一个锚节点(Anchor),用于同一通道中不同组织的Peer节点发现通道内的所有Peer节点。
CA节点
CA(Certificate Authority)节点的任务是给Fabric网络中的各个成员提供基于数字证书的身份信息,可以生成或取消成员的身份证书(certificate)。在成员身份明确的基础上,Fabric可以实现权限控制的管理。
通道
通道(Channel)作用是实现区块链网络中业务的隔离,一个联盟多个通道,每个通道可代表一项业务,并且对应一套账本,通道内的成员为业务参与方(即联盟内的组织),一个组织可以加入多个通道。通道可以分为系统通道和应用通道。排序节点通过系统通道来管理应用通道,用户的交易信息通过应用通道传递。
组织
组织(Org)代表区块链中的企业、机构实体,一个组织应该包括CA和Peer。
通俗点讲,组织就是QQ号,通道就是QQ群。