一、Fabric中的节点

1.节点术语

【1】Orderers:

提供共识服务的网络节点,例如,使用Kafka或PBFT

【2】Peers:

      维护账本的网络节点,通常在Hyperledger Fabric中担任背书或者记账角色。

【3】Comitter:

      检查交易的合法性,最终将交易提交到区块链中。

2.Orderers & Peers & Comitter节点关系

Orderers & Peers & Comitter 三者之间关系如下图所示:

                Fabric中交易的处理过程

在整个交易过程中,各个组件的主要功能如下:

【1】客户端(APP):

客户端应用使用SDK来跟Fabric网络打交道。

首先,客户端从CA获取合法的身份证书来加入网络内的应用通道。

然后,将交易的提案发送给配置文件里指定的背书节点(Endorser节点)

【2】Endorser节点:

完成对交易提案的背书(目前主要是签名)处理。

检查是否合法,通过则模拟运行交易,对交易导致的状态变化进行背书并返回结果给客户端

【3】Orderer节点:

仅负责排序。

为网络中所有合法交易进行全局排序,并将一批排序后的交易组合生成区块结构。

Orderer一般不需要跟账本和交易内容直接打交道。

【4】Committer节点

负责维护区块链和账本结构。

该节点会定期地从Orderer获取排序后的批量交易区块结构,对这些交易进行落盘前的最终检查。

检查通过后执行合法的交易,将结果写入账本,同时构造新的区块。

注意!同一个物理节点可以仅作为Committer角色运行,也可以同时担任Endorser和Committer这两种角色。

【5】CA:

负责网络中所有证书的管理(分发、撤销等),实现标准的PKI(公共密钥基础)架构。

二、Fabric中的通道

上面只是在一个交易中,从节点的角度,来看交易的处理过程。然而,究竟有多少节点参与背书?多少节点来进行共识排序呢?在Fabric中,引入了通道的概念。

一般情况下,一条区块链网路的子链是按照“1个通道+ 1个账本+ N个成员 ”的基本组成。一个通道具有一个独立的账本。

通道是两个或多个特定网络成员之间的通信的私有“子网”,用于进行需要数据保密的交易。在Fabric中,建立一个通道相当于建立了一个个子链。

创建通道是为了限制信息传播的范围,是和某一个账本关联的。每个交易都是和唯一的通道关联的。这会明确地定义哪些实体(组织及其成员)会关注这个交易。

1.通道术语

【1】通道:

Order 服务提供Peer节点供订阅的主题,每个主题是一个通道。

peer可以在订阅多个通道,并且只能访问订阅通道上的交易。关于“订阅-发布主题”,在后面会详细介绍。

【2】账本:

账本保存Orders提交经节点确认的交易记录。

【3】成员:

访问和使用账本的网络节点。

【4】链:

基本上,一个链由1个通道+ 1个账本+ N个成员组成。非链的成员无法访问该链上的交易。链的成员可以由应用程序动态指定。

从关键词“1个通道+ 1个账本+ N个成员”可以知道,要在Fabric区块链网络中,搭建一个子链,需要创建通道,利用通道将成员加入进来,由N个成员维护一个账本,从而实现一个区块链。

注意:

共识服务接收所有链的所有交易,因此保密性仅与peer而不是Orderers相关。

当共识服务由被许可网络中的可信方和监管机构组成时,这样是合理的,也就是说,这些交易作为业务需求仅对他们可见。

另一方面,如果应用程序不希望Orderers知道交易的内容,它必须利用其他技术来隐藏敏感数据,例如哈希散列或加密。

共识服务作为一个信任方存在,如果是由拜占庭容错(BFT)共识协议实现(例如PBFT),可以防止不可信的Orderers破坏账本的一致性和阻碍系统可用性。

然而,现在还没有一种协议可以在有不可信的Orderers存在的情况下,提供多通道设计的同时提供数据保密性。

三、Fabric的拓扑结构

Fabric网络-子链的拓扑关系图

上图解释如下所示:

【1】三条线,蓝色实线,红色实线,和橙色虚线,分别代表三个通道。

【2】所有的通道,都连接了Ordering Service说明,共识服务接收所有链的所有交易。这一点,也说明了HyperLedger Fabric不是完全的去中心化,而是多中心化。

【3】peer1.1等节点,接入了多个通道,说明一个peer节点也可以参与到多个channel中。每个Channel之间是相互隔离,且是并行运行的。这一特性大大提高了系统的吞吐量。

从上图可以知道:

【1】一个链由1个通道+ 1个账本+ N个成员组成。

【2】共识是由Ordering Service提供的。

【3】应用程序指定Peer节点的子集中架设通道。这些peer组成提交到该通道交易的相关者集合,而且只有这些peer可以接收包含相关交易的区块,与其他交易完全隔离。

四、Fabric子链示意图

下图展示了多通道消息订阅与共识服务,账本之间的关系:

如上图所示:

peer 1,2和N订阅红色通道,并共同维护红色账本;

peer 1和N订阅蓝色通道并维护蓝色账本;

类似地,peer 2和peer N在黑色通道上并维护黑色账本。

在这个例子中,peer N在订阅了所有通道,我们看到每个通道都有一个相关的账本。

一般来说,我们称不涉及所有peer的账本为子账本,而涉及所有peer的账本另一种是系统账本,即全账本。

四、组织

组织Organization,代表区块链网络中的企业、机构等实体,一个组织应包含:

  • CA
  • Peer

那么这三者的关联关系,举例即为:

  • A公司创建Fabric联盟网络,生成A组织,A组织包含各类节点;
  • B公司创建Fabric联盟网络,生成B组织,B组织包含各类节点;

此时,A组织为B组织需要进行业务交互,如:供应链金融,即需要创建通道(供应链金融),该业务的数据将通过该通道的独立的账本进行存储。

https://zhuanlan.zhihu.com/p/142151874

总结

在这里,我们理解了Fabric中的一个重要的概念,通道。以及一种重要的关系,通道和Peer节点的关系。

Hyperledger Fabric架构使用具有保证的发布-订阅模式消息传递通道(如Kafka中的主题分区),这种发布-订阅模式将共识服务与交易日志(账本)进行了有效的分离

共识服务由称为Orderers的网络节点提供,并且账本由Peer节点管理

从节点的角度来看,每个Peer节点连接到共识服务的一个或多个通道,就像发布-订阅通信系统中的客户端一样。

在通道上广播的交易按共识的顺序排列(例如PBFT、kafka),订阅通道的Peer节点接收到加密的区块。

每个peer节点验证区块并将其提交到账本,然后向应用程序提供其他使用账本的服务。

从通道的节点来看,通道在众多的节点中,选择N个节点,加入到通道中,共同维护账本。

以实现“1个通道+ 1个账本+ N个成员”为基本要素的子链!

https://www.cnblogs.com/kaixinyufeng/p/9290682.html

HyperLedger Fabric 节点(Orderer、Peer、Commiter)与channel关系相关推荐

  1. [求助]hyperledger fabric在创建peer通道时出现this policy requires 1 of the 'Writers' sub-policies to be……

    毕业设计打算做区块链有关的内容,目前买了本机械工业出版社出版的<区块链开发实战 hyperledger Fabric关键技术与案例分析>这本书来学习,可能由于版本问题,在使用书上的配置文件 ...

  2. Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署

    6.1.平台特定使用的二进制文件配置 该方案与Hyperledger Fabric 1.0 从零开始(五)--运行测试e2e类似,根据企业需要,可以控制各节点的域名,及联盟链的统一域名.可以指定单独节 ...

  3. Hyperledger Fabric 词汇表

    Anchor Peer 在channel中每一个组织都有一个AnchorPeer,用于在不同的组织之间通过Gossip协议进行数据分发和同步. Block(块) 与channel上的前一个块加密链接的 ...

  4. Hyperledger Fabric服务器配置及修改Docker容器卷宗存储根目录/位置

    Hyperledger Fabric节点服务器对存储空间的消耗还是比较大的,在我实际生产体验的过程中,每一条请求数据大概仅2K左右,但实际占用空间远不止这点,每个节点都会对Block及链进行保存维护, ...

  5. Hyperledger Fabric 二进制安装部署 Peer 节点

    Hyperledger Fabric 二进制安装部署 Peer 节点 规划网络拓扑 3 个 orderer 节点; 组织 org1 , org1 下有两个 peer 节点, peer0 和 peer1 ...

  6. Hyperledger Fabric 1.3 官方文档翻译(三)关键概念 (Key Concepts) - 3.7 对等节点 (Peers)

    文章目录 对等节点(Peers) 术语(A word on terminology) 账本与链代码(Ledgers and Chaincode) 多账本(Multiple Ledgers) 多链代码( ...

  7. Hyperledger Fabric无排序组织以Raft共识算法启动多个Orderer服务、多组织共同运行维护Orderer服务

    前言 在Hyperledger Fabric无系统通道启动及通道的创建和删除中,我们已经完成了以无系统通道的方式启动 Hyperledger Fabric 网络,并将链码安装到指定通道.但目前为止,实 ...

  8. Hyperledger Fabric 2.x 单机部署多节点网络

    本博客主要记录搭建一个3个排序节点.4个组织的每个组织各2个节点的fabric区块链网络 单机部署多节点网络 1.相关环境的安装与配置 2.生成相关的证书文件 3.生成相关的通道配置文件 4.生成do ...

  9. 多个主机节点上的Hyperledger Fabric

    Hyperledger Fabric是由Linux Foundation托管的业务区块链项目.它是一个"分布式总账解决方案平台,以模块化架构为基础,提供高度机密性,弹性好,灵活性和可扩展性. ...

  10. HyperLedger Fabric - 超级账本(6)转换配置添加组织到channel

    configtxlator转换配置/添加Org组织到channel 设置环境 进入到fabric-samples/first-network目录中, 执行.byfn.sh -m down关闭网络,清理 ...

最新文章

  1. java matchcollection_Java集合之collection
  2. mysql双数据源动态切换_Spring boot+Mybatis多数据源动态切换
  3. C语言面试题之华为篇2(答案全)
  4. Linux 命令之 du -- 显示每个文件和目录的磁盘使用空间/所占用的磁盘空间大小/所使用的磁盘空间大小/查看文件和目录的大小
  5. JAVA的字符串拼接与性能
  6. Equal-size partition problem
  7. PHP根据配置的规则,计算用户的等级
  8. vi/vim键盘图表
  9. 关于存储容量的单位(以及英文写法)
  10. 视觉检测系统设计过程中遇到的问题
  11. java:利用数组实现将古诗词纵向输出
  12. Multi-Loss Weighting with Coefficient of Variations 多任务学习
  13. 如何保障银行日志安全合规审计
  14. java.sql.SQLException: Incorrect string value: ‘\xE6\xB5\x8B\xE8\xAF\x95...‘ for column ‘xxx‘
  15. Word中㎡的上标²变成了2该如何处理
  16. Http 同步和异步的区别
  17. Voronoi图(四):抛物线的妙用
  18. 毕业月薪3万起!算法工程师九成硕博学历,腾讯成AI人才收割机
  19. 黑群晖6.x安装教程
  20. 工业设备振动无线智能监测方案

热门文章

  1. 19-3-1Python的PyCharm编辑器,以及格式化输出、while循环、运算符、编码初识
  2. mysql 存储session
  3. shell命令技巧——文本去重并保持原有顺序
  4. 对 PL/SQL开发调试的想法
  5. Stencil Buffer(模板缓冲区)
  6. unity 2d文字跟随主角移动_太可了!这些领域可以把Unity玩的那么好,带你开启新世界...
  7. 拓端tecdat|Python风险价值计算投资组合VaR(Value at Risk )、期望损失ES(Expected Shortfall)
  8. 拓端tecdat|Python中用Prophet模型对天气时间序列进行预测与异常检测
  9. 拓端tecdat|在R语言中使用概率分布:dnorm,pnorm,qnorm和rnorm
  10. mysql5.5连不上主机_mysql5.5主从同步排错