文章目录
Hyperledger Fabric概述
Hyperledger Fabric是由IBM公司主导开发的一个面向企业级客户的开源项目。与比特币和以太坊这类公有链不同,Hyperledger Fabric网络中的节点必须经过授权认证后才能加入,从而避免了POW资源开销,大幅提高了交易处理效率,满足企业级应用对处理性能的诉求。同时,为了满足灵活多变的应用场景,Hyperledger Fabric采用了高度模块化的系统设计理念,将权限认证模块(MSP)、共识服务模块(Ordering Service)、背书模块(Endorsing peers)、区块提交模块(committing peers)等进行分离部署,使开发者可以根据具体的业务场景替换模块,实现了模块的插件式管理(plug-in/plug-out)。所以,Hyperledger Fabric是一个私有链/联盟链的开发框架,而且系统的运行不需要token支持。
基本概念
- Ledger:账本,节点维护的区块链和状态数据库
- World state:世界状态,经过数次交易后最新的键值对,世界状态是一个数据库,存储的是账本当前值。作用是能够快速获取账本最新值而不必根据交易日志从头开始计算。世界状态中还有一个属性——版本号,版本号从0开始,每当状态更新时版本号就递增。状态更新时会首先检查版本号,以确保当前状态的版本与背书时的版本一致(避免并发更新)。
- Channel: 通道,私有的子网络,通道中的节点共同维护账本,实现数据的隔离和保密。 每个channel对应一个账本,由加入该channel的peer维护,一个peer可以加入多个channel,维护多个账本。
- Org:Orginazation,管理一系列成员的组织。一个channel内可以有多个组织。
- Chaincode:链码(智能合约),运行在节点内的程序,提供业务逻辑接口,对账本进行查询或更新
- Endorse:背书,指一个节点执行了一个交易并对结果进行签名后返回响应的过程。
- Ordering Service:排序服务,将交易排序后放入区块中,并广播给网络各节点
- PKI:Public Key Infrastructure,一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范
- MSP:Membership Service Provider,成员管理服务,基于PKI实现,为网络成员生成证书,并管理身份
Fabric v0.6和v1.x架构差异
节点:在Fabric v1.x中把节点分为peer节点(维护state和ledger),Order节点(负责共识或者排序账本中的交易)和背书节点(负责执行交易和链码)而在Fabric v0.6中则没有这些概念,只有一个peer节点,peer节点同时完成上述所有的功能。
这样设计的优势
- 链码(Chaincode)执行信任的可伸缩性,将用户自己开发的链码和系统提供的Order服务拆分,用户开发的链码和系统提供的Order服务不再是一一对应的关系,Order也可以适当容忍错误的出现,增强了系统的鲁棒性。
- 可扩展性,拆分链码和Order的串行执行,在原有架构中,当链码执行非