Hyperledger是被业界非常看到的联盟链的实现,包括IBM、Intel、R3、各个大型商业银行等都参与其中,带给我们关于区块链技术与软件工业、金融、保险、物流等领域碰撞结合的想象空间;在这个联盟中,有超过1/4的成员都来自中国,这更是我们对于它的一举一动都非常关注。很大程度上,Hyperledger和它背后的联盟体系就代表着区块链在产业环境中的未来。
作为最重要的子项目,在联盟推出Fabric 0.6版本后,最新的Fabirc 1.0 版本也即将问世,今天我们来走马观花地领略一下最新版本(1.0)的总体架构,对于这个承载产业梦想的新生事物有个基本的认识。
说明:本文章仅仅是个概览,具体的细节可以参考官网和github站点文档;本人也只是从这些地方将信息汇集了一下,权作为是”借花献佛“了。
Hyperledger的fabric当前的稳定版本是0.6版,在讲解1.0版本之前,我们先看看0.6版本的总体架构:
对应的0.6版本的运行时架构:
0.6版本的架构特点是:
针对上述问题,1.0版本做了很大的改进和重构:
这是最新的1.0运行时架构:
1.0 架构要点:
备注:最新的1.0版本中,上图中的Membership服务已经改名为fabric-ca
从Fabric的新架构设计的建议文档看,1.0版本的设计目标如下:
Hyperledger fabirc 1.0 版本的在0.6版本基础上,针对安全、保密、部署、维护、实际业务场景需求等方面进行了很多改进,特别是Peer节点的功能分离,给系统架构具备了支持多通道、可插拔的共识的能力,使得Fabric脱离了0.6版本带给人的青涩感(仅仅是个”验证与演示“版的,呵呵),已经接近于工业应用的需求;
我们现在看看 1.0版本的关键架构:
Fabric 1.0 的重要特征是支持多chain和多channel;
所谓的chain(链)实际上是包含Peer节点、账本、ordering通道的逻辑结构,它将参与者与数据(包含chaincode在)进行隔离,满足了不同业务场景下的”不同的人访问不同数据“的基本要求。
同时,一个peer节点也可以参与到多个chain中(通过接入多个channel);如下图所示
关于通道:通道是有共识服务(ordering)提供的一种通讯机制,类似于消息系统中的发布-订阅(PUB/SUB)中的topic;基于这种发布-订阅关系,将peer和orderer连接在一起,形成一个个具有保密性的通讯链路(虚拟),实现了业务隔离的要求;通道也与账本(ledger)-状态(worldstate)紧密相关;如下图所示:
共识服务与(P1、PN)、(P1、P2、P3)、(P2、P3)组成了三个相互独立的通道,加入到不同通道的Peer节点能够维护各个通道对应的账本和状态;也其实也对应现实世界中,不同业务场景下的参与方,例如银行、保险公司;物流企业、生产企业等实体结构;我们可以看到channel机制实际上是的Fabric建模实际业务流程的能力大大增强了,大家可以发挥想象力去找到可能的应用领域
新版本的架构变化导致新的交易流程的变化,我们简述如下:
总体流程如下图所示:
上述过程对应的执行序列图如下:
在新的架构中,Peer节点负责维护区块链的账本(ledger)和状态(State),本地的账本称为PeerLedger,其结构如下:
我们可以看到,整个区块结构分为文件系统存储的Block结构和数据库维护的State状态,其中state的存储结构是可以替换的,可选的实现包括各种KV数据库(LEVELDB,CouchDB等);
上边就是我们对Fabric 1.0版本的简要介绍,由于Fabric的复杂性,后续我也会针对1.0版本中的技术细节和实现机制进行专题说明,敬请关注;
同时,1.0 版本的代码和文档每天都在更新,请大家关注官网和github,这里是最好学习天地。
最后说民一下大家比较关心的版本计划:
下边是剧透的官方开发计划,只是“Proposed“,也许随时会有变化哦:
从官方公布的计划看,1.0版本应该可以在3月份完成release,让我们期待这个最新版本的诞生吧。