Fabric区块链网络的组成


区块链网络结构图

区块链网络组成

组成区块链网络相关的节点

节点是区块链的通信主体,和区块链网络相关的节点有多种类型:客户端(应用)、Peer节点、排序服务(Orderer)节点、CA节点

客户端(应用程序)节点

客户端必须连接到某一个Peer节点或者排序服务节点才可以与区块链网络通信。

Peer节点

Peer节点主要负责通过执行链码(chaincode)实现对账本的读写操作

所有的Peer节点都是记账节点(Committer),负责维护状态数据和账本的副本

部分Peer节点根据背书策略的设定会执行交易并对结果进行签名背书,充当了背书节点(Endorser)的角色。背书节点是动态的角色,每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的。只有在应用程序向节点发起交易背书请求的时候该Peer节点才是背书节点,否则它就是普通的记账节点。

一个组织(其实是成员)在一个通道上可以有多个Peer节点,这时候为了提高通信效率,需要选举出来一个主节点(Leader Peer)作为代表和排序服务节点通信,负责从排序服务节点处获取最新的区块并在组织内部同步。

节点可以同时是背书节点和记账节点,也可以同时是背书节点、主节点和记账节点。

排序服务节点(Orderer)

排序服务节点接收包含背书签名的交易,对未打包的交易进行排序生成区块,并广播给Peer节点

一个区块链网络中,只能有一组排序服务,这个排序服务是由多个排序节点组成的。

排序服务启动的时候需要一个整个网络的创世区块,该创世区块中包含了排序节点信息、联盟组织信息、共识算法类型、区块配置信息及访问控制策略。同时在排序服务启动时会创建系统通道,系统通道在网络中有且只有一个,系统通道对应存储了系统账本,其中的有网络排序服务的定义、联盟成员的定义,以及其他初始配置参数,系统通道主要作用就是创建其他通道。

CA节点

CA节点是可选的,它主要作为证书颁发机构,也可以用其他成熟的第三方CA颁发证书。

区块链网络与通道

一个区块链网络可以有多个通道,其中系统通道只能有一个。
一个通道对应一个账本,也对应一个链。不同通道的账本和智能合约、策略都是隔离的。

Hyperledger Fabric网络节点架构的更多相关文章

  1. hyperledger fabric各类节点及其故障分析 摘自https://www.cnblogs.com/preminem/p/8729781.html

    hyperledger fabric各类节点及其故障分析   1.Client节点 client代表由最终用户操作的实体,它必须连接到某一个peer节点或者orderer节点上与区块链网络通信.客户端 ...

  2. hyperledger fabric各类节点及其故障分析

    1.Client节点 client代表由最终用户操作的实体,它必须连接到某一个peer节点或者orderer节点上与区块链网络通信.客户端向endorser提交交易提案,当收集到足够背书后,向排序服务 ...

  3. 基于ubuntu16.04快速构建Hyperledger Fabric网络

    前言 最近在参加一个比赛,使用到了区块链的开源软件hyperledger,由于之前从未接触过区块链,以及和区块链开发相关的内容,所有在网上查阅了大量的资料,并且通过学习yeasy(杨宝华)开源的入门书 ...

  4. Fabric网络节点发现及成员管理

    一个新节点通过已知的节点加入到网络中,此时,它所知的网络节点信息是非常有限的,需要通过节点发现获知更多的节点,建立起足够的连接.另外,当一个新节点加入到网络时,原有网络节点也需要通过节点发现感知到新节 ...

  5. 在本地搭建hyperledger fabric 网络

    参考了官方文档,直接就可以了https://hyperledger-fabric.readthedocs.io/en/latest/build_network.html 很好用 ➜ ~ cd $GOP ...

  6. HyperLedger Fabric 1.4 架构(6.2)

    6.2.1 架构演进       Fabric架构经历了0.6版本到1.0版本的演进,架构上进行了重大改进,从0.6版本的结构简单演进到可扩展.多通道的设计,在架构上有了质的飞跃:从1.0版本以后,架 ...

  7. Hyperledger Fabric Orderer节点启动

    Orderer 节点启动通过 orderer 包下的 main() 方法实现,会进一步调用到 orderer/common/server 包中的 Main() 方法. 核心代码如下所示. // Mai ...

  8. [转帖]Hyperledger Fabric 学习一:简介

    Hyperledger Fabric 学习一:简介 https://www.jianshu.com/p/f971858b70f3?utm_campaign=maleskine&utm_cont ...

  9. hyperledger中文文档学习-4-构建第一个fabric网络

    接下来的操作都将在hyperledge环境安装构建的虚拟机的环境下进行 参考https://hyperledgercn.github.io/hyperledgerDocs/build_network_ ...

随机推荐

  1. gnome美化

    调整工具更新可以移动窗口控件gnome-tweak-tool # dnf install gnome-tweak-tool 命令行启动,并且要在普通用户下启动 $ gnome-tweak-tool 在 ...

  2. 在servlet中用spring @Autowire注入Bean

    在servlet中新增init方法: public void init(ServletConfig config) { super.init(config); SpringBeanAutowiring ...

  3. Jar版本:java.lang.UnsupportedClassVersionError: ******

    错误原因编译Java和运行Java所使用的Java的版本不一致导致:解决办法修改运行环境的Java版本或者修改编译环境的Java版本,让两者保持一致即可: java.lang.UnsupportedC ...

  4. November 03rd, 2017 Week 44th Friday

    The secret of success is to do the common things uncommonly well. 成功的秘诀就是把平凡的事情做得异常的好. Sometimes you ...

  5. 清理 Xcode 10

    1,清理 ~/Library/Developer/CoreSimulator/Devices说明:该目录存放当前的所有模拟器,每个标识符代表一台机器,清理掉避免存在旧版本的模拟器缓存 执行: 关闭模拟 ...

  6. initialProps被React-Navigation的navigation属性覆盖解决方案

    怎么开场对我来说一个是个很纠结的问题,Emmm这应该算个好开场. 最近在做一个RN的app端调试工具,在把它嵌入原生app中的时候遇到了一个问题,RN组件里面接受不到原生传过来的initialProp ...

  7. 使用docker搭建hadoop环境,并配置伪分布式模式

    docker 1.下载docker镜像 docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop:latest 注:此镜像为阿里云个人上传镜 ...

  8. rlwrap与历史命令

    # yum install rlwrap $ vi .bash_profile alias sqlplus='rlwrap sqlplus'alias rman='rlwrap rman' 或者 l ...

  9. PAT B1010 一元多项式求导 (25 分)

    设计函数求一元多项式的导数.(注:x​n​​(n为整数)的一阶导数为nx​n−1​​.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数).数字间以空格分隔. ...

  10. MVC 如何在action中获取当前网站的根路径

    如果基于MVC搭建的网站在IIS发布的是一个单独的端口,那么可以直接通过后面语句获得跟路径:Request.Url.GetLeftPart(UriPartial.Authority).ToString ...