6.2.1 架构演进
       Fabric架构经历了0.6版本到1.0版本的演进,架构上进行了重大改进,从0.6版本的结构简单演进到可扩展、多通道的设计,在架构上有了质的飞跃;从1.0版本以后,架构未做重大调整,到目前为止,最新发布为1.2版本。
       Fabric 0.6版本架构主要是应用、成员管理和Peer的三角形关系,业务逻辑全部集中在Peer节点上,结构过于简单,只能用于一些商业场景的验证。
       Fabric 1.0版本在0.6版本的基础上做了重大改进和重构,把承载过多业务的Peer节点进行拆分,将区块链的数据维护和共识服务器进行分离,共识服务从Peer节点中完全分离出来,独立为Orderer节点专门提供共识服务;membership从架构中分离出来形成Fabric-ca单独组件;在架构中加入了多通道(channel)结构,实现更为灵活的业务适应性,支持更强的配置功能和策略管理功能,进一步增强系统的灵活性和适应性。

图:架构演进

6.2.2 总体架构
       总体架构核心部分由成员管理(Membership services)、共识服务(Consensus services)和智能合约(Chain-code Services)三部分, 加上安全和加密服务(Security and Crypto Services)贯穿于其他各个组件,应用端通过接口(APIs、Events、SDKs)调用身份(IDENTITY)、账本(LEDGER)、交易(TRANSACTIONS)、智能合约等信息,架构图如下:

图:整体架构

  • 成员管理(Membership services):提供成员服务功能,包括注册、登记、申请证书等功能;考虑到商业应用对安全、隐私、监管、审计和性能的要求,节点、成员只有获得证书才能加入到区块链网络中,在1.0版本以后单独由可插拔的Fabric CA组件来处理。
  • 共识服务(Consensus services):负责分布式账本的计算和存储(Distrbuted Ledger)、节点间的共识服务(Ordering Service)、背书验证管理(Endorsement Validation)以及节点间的网络传输协议(Network Protocol)功能的实现,是区块链的核⼼心组成部分,为区块链的主体功能提供了底层支撑。
  • 智能合约(Chain-code Services):智能合约(SMART CONTRACT)称为链码(chaincode), 是基于标准的一段代码,实现具体业务逻辑。链码和底层账本是解偶的,链码的更新不影响到原有的数据。链码目前可以使用GO、Java、Node.js语言来编写,通过Docker容器来运行chaincode,安装和实例化后通过gRPC与同一通道内的Peer节点进行连接。
  • 安全和加密服务(Security and Crypto Services):节点或成员必须被许可才能进入网络,通过证书、加密和签名等手段保证安全,通过多通道隔离功能,保证只有参与交易的节点能访问到数据,其他的节点看不到,真正实现了逻辑与数据的分离。
  • 接口(APIs, Events, SDKs):提供API方式给第三方应用调用,方便二次开发,目前已提供Node.js和Java SDK两种语言接口;可以通过SDK或CLI方式进行安装、测试链码,还可以查询交易状态和数据等功能,同时通过Events监听区块链网络中发现的事件,方便第三应用系统调用和处理。

HyperLedger Fabric 1.4 架构(6.2)的更多相关文章

  1. Hyperledger Fabric网络节点架构

    Fabric区块链网络的组成  区块链网络结构图 区块链网络组成 组成区块链网络相关的节点 节点是区块链的通信主体,和区块链网络相关的节点有多种类型:客户端(应用).Peer节点.排序服务(Orde ...

  2. 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点

    一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...

  3. 003-主流区块链技术特点及Hyperledger Fabric V1.0版本特点

    一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...

  4. Hyperledger Fabric架构详解

    区块链开源实现HYPERLEDGER FABRIC架构详解 区块链开源实现HYPERLEDGER FABRIC架构详解 2018年5月26日 陶辉 Comments 10 Comments hyper ...

  5. Hyperledger Fabric(1)基础架构

    前言 在区块链的家谱里,第一代区块链系统是以比特币为代表的公链,主要实现的是数字货币的功能:第二代区块链系统是以以太坊平台为代表的公链,创造性的实现了智能合约.而第三代区块链系统,则是HyperLed ...

  6. 区块链开源实现hyperledger fabric架构详解

    hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM.Intel.各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量.本文中我们依次讨论:区块链 ...

  7. Hyperledger Fabric 架构梳理

    区块链的数据结构 State数据结构 由peer维护,key/value store Ledger  记录了所有成功和不成功的状态更新交易.Ledger被ordering service构造,是一个全 ...

  8. Hyperledger Fabric 1.0 从零开始(一)——吐槽

    在HyperLedger/Fabric发布0.6的时候,公司就已经安排了一个团队研究这一块,后来也请IBM的专家组过来培训了一批人,不幸的是,这批人后来全走了,然后没过多久1.0就发布了.自从2017 ...

  9. Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用

    Hyperledger Fabric 1.0 从零开始(十)--智能合约 Hyperledger Fabric 1.0 从零开始(十一)--CouchDB 上述两章,最近网上各路大神文章云集,方案多多 ...

随机推荐

  1. 再学UML-UML用例建模解析(二)

    (1) 关联关系 关联关系是指执行者与用例之间的关系,又称为通信关系,如果某个执行者可以对某个用例进行操作,它们之间就具有关联关系,如下图所示,“经理”有一个功能为“查看库存报表”,因此可以在执行者“ ...

  2. win7 64位 安装java jdk1.8 ,修改配置环境变量

    下载jdk1.8,下载地址:http://www.wmzhe.com/soft-30118.html 安装时有两个程序,都安装在同一个目录下. win7 64位 安装java jdk1.8 ,修改配置 ...

  3. RAC常用日志总结

    12C RAC:ocssd启动失败log目录:/u01/app/grid/diag/crs/host02/crs/trace/alert.log  

  4. 用 dbgrid 或 dbgrideh 如何让所显示数据自动滚动

    procedure TForm1.Timer1Timer(Sender: TObject);varm:tmessage;begin m.Msg:=WM_VSCROLL; m.WParamLo:=SB_ ...

  5. angularjs filter详解

    过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果. 主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等. ng内置了一些过滤器, ...

  6. windows 网络通讯模型Overlapped (转)(未看)

    https://blog.csdn.net/jofranks/article/details/7895316 https://blog.csdn.net/caoshiying/article/deta ...

  7. 一、OSI模型

    OSI/RM协议是由ISO(国际标准化组织)制定的,它有三个基本的功能:提供给开发者一个必须的.通用的概念以便开发完善.可以用来解释连接不同系统的框架.OSI将计算机网络体系结构(architectu ...

  8. hdu-4288 Coder---线段树+离线处理&离散化

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4288 题目大意: 维护一个有序数列{An},有三种操作: 1.添加一个元素. 2.删除一个元素. 3 ...

  9. Black Rock Shooter 题解

    题目描述 在人气动漫 Black Rock shooter 中,当加贺里对麻陶 说出了“滚回去“以后,与此同时,在另一个心灵世界里, BRS 也遭到了敌人的攻击.此时,一共有 n 个攻击排成一行 朝着 ...

  10. 【转】Java虚拟机类型卸载和类型更新解析

    [摘要]         前面系统讨论过java类型加载(loading)的问题,在这篇文章中简要分析一下java类型卸载(unloading)的问题,并简要分析一下如何解决如何运行时加载newly ...