第五章 九析带你轻松完爆 hyperledger fabric - 网络节点介绍

本系列文章:
服务器


第一章:九析带你完爆 fabric - 快速搭建区块链网络

第二章:九析带你完爆 fabric - 快速搭建 GO 环境架构

第三章:九析带你完爆 fabric - 快速上手 first-network 样例ide

第四章:九析带你完爆 fabric - 系统逻辑架构篇学习

第五章:九析带你完爆 fabric - 网络节点介绍
区块链

目录spa

1 前言翻译

2 节点分类orm

    2.1 CA 节点blog

    2.2 客户端节点

    2.3 orderer 节点

    2.4 peer 节点

        2.4.1 Anchor 节点

        2.4.2 Endorsor 节点

        2.4.3 Committer 节点

        2.4.4 peer 节点声明

3 总结


1 前言

        fabric 区块链网络是由各类不一样类型的节点所组成,正是这些不一样类型的节点按照各自的做用和分工进行交互,才使得整个区块链得以正常运做。


2 节点分类

        本文按照节点学习难易程度进行排序,上面最简单,下面难度依次增长。

        区块链网络中的节点大体可分为四类:CA 节点、客户端节点、orderer 节点、peer 节点。

2.1 CA 节点

        CA 节点做用是颁发证书,它为网络中的节点通讯提供凭证(证书)。携带通过 CA 认证过的证书进行的交易才会被接受。CA 节点并不是是区块链网络中强制性节点,即:它是可选的(optional)。此外,在 fabric 区块链网络中,你既能够选择 fabric 自身提供的 CA 认证方式,也能够选择其余第三方认证方式。

        如下举一个生活中的例子才解释 CA 节点:某小区(区块链网络),物业公司(CA 颁发机构)会给各个住户提供小区钥匙(证书),只有拥有物业公司提供的钥匙才容许在小区内部各门之间走动(交易)。固然物业公司是业主能够选择的,你既能够选择万科,也能够选择绿城,或者有些老少区根本就没有物业(CA 可选择)

2.2 客户端节点

        客户端节点是区块链的实际使用者,所以区块链网络就能够有多个客户端节点同时存在。它们既能够跟 orderer 节点进行交互建立通道(channel),也能够跟 peer 节点进行交互模拟交易执行等。大部分的区块链操做都是经过客户端节点来发起的。

2.3 orderer 节点

        orderer 节点是排序节点。它的做用相似一个管道或者过滤器。它从各个客户端节点接收发送过来的交易,接着将这些交易按照必定的规则进行排序,而后将排好序的交易按照固定的时间间隔再打包成区块,最后发送给组织的 Anchor 节点(下面会讲,这里先记住便可)。orderer 节点的排序规则目前官方只提供两种方式:solo 和 kafka。

        solo 中文翻译是“独奏”,在区块链网络中表示只有一个 orderer 节点,因此它的排序规则就是按照 orderer 节点接受交易的前后顺序来排序,也就是生活中的先来后到原则。因为 solo 模式表示区块链网络中只有一个 orderer 节点,因此很容易致使单点故障,故生产环境中并不会使用此方式。

        kafka 即消息服务器。使用此排序方式的 orderer 节点,实际上是将整个排序工做交给 kafka 集群去实现。 orderer 做为 kafka 的生产者,将客户端节点发送过来的交易发送给 kafka,而后再做为 kafka 的消费者,接收从 kafka 发送回来的交易结果,根据从 kafka 接收到的消息顺序就是最终排序的结果。这种方式有必定的随机性,可是确实有点***子放屁的嫌疑。但目前生产环境大多采用这样排序方式。

2.4 peer 节点

        除了 CA、客户端、orderer 以外的其余节点以外就都是 peer 节点了,但 peer 节点又根据功能不一样分为 Anchor、Endorsor 和 Committer 节点。为了理解上的方便,咱们举一个技术公司的例子:

        orderer 节点至关于 CTO;客户端节点至关于产品经理;CA 节点至关于业务需求方;peer 节点则是一个统称,表明全体技术人员,可是根据分工不一样,peer 会有不一样的角色,好比 Anchor 节点(项目经理)、Endorsor 节点(研发人员)、Committer(实习生)。

2.4.1 Anchor 节点

        通常状况下,每一个技术公司都会分多个项目组,每一个项目组都会指定一个项目经理和多个开发人员。在 fabric 区块链网络中,项目组对应组织(Organization),项目经理对应 Anchor 节点(组织中的主节点或锚节点)。在组织中,只有 Anchor(项目经理)跟 Orderer 节点(CTO)惟一进行通讯,假如 Anchor 节点(项目经理)生病了(宕机),该组织内部的其余 peer 成员能够选举一个新节点做为 Anchor 节点。

2.4.2 Endorsor 节点

        Endorsor 节点是背书节点(担保节点),智能合约就运行在背书节点之上。客户端发送交易提案给背书节点,背书节点模拟执行以后对执行结果进行签名背书,再将模拟执行结果返回给客户端节点。若是你对这样的定义很难理解,咱们不妨接着上面的例子作一个类比。

CTO(orderer 节点)想统计每一个研发人员(Endorer)的绩效,研发人员(Endorsor)的绩效是完成了多少产品经理(客户端)需求。当客户端(产品经理)提出需求后,Endorsor 节点接受需求后执行,若是有多个 Endorsor 节点,那么这几个节点都会去执行客户端的需求,执行完毕后会通知客户端,那么到底这个需求是谁完成了呢?产品经理(客户端)不作评判,它只是实事求是地把每一个 endorsor 节点完成的状况告诉 CTO(orderer)节点,而后让 CTO 去判断到底是谁的绩效(这个过程即是 fabric 网络中的共识机制)。CTO 评判肯定 Endorsor 后,会把绩效同步给项目组(组织)的 Anchor(项目经理),Anchor 收到通知后,就会广播给组织内部的全部节点,全部节点收到消息后就会同步绩效结果(记帐)。

2.4.3 Committer 节点

        peer 节点除了 Anchor(项目经理)、Endorsor(研发人员)以外的其余类型节点就是 Committer 节点了。它就像实习生同样(不负责实际开发任务),只被动接收绩效记录(Comitter)。

2.4.4 Peer 节点声明

        peer 节点基本介绍完了,但还须要声明一下,peer 节点的角色并不具有排他性,也就是说一个 peer 节点,它既能够是 anchor,也能够同时是 endorsor,也能够同时是 committer。就像在一个项目组中就有一我的,它既是一个实习生,也同时是项目经理和实际开发同样。


3 总结

image.png

        上图就是整个 fabric 网络节点拓补结构图。能够结合本人上面的介绍对照加深理解。自此,fabric 区块链网络中的节点以及节点做用都介绍结束了。若是你以为九析的介绍对你有帮助的话,麻烦你给九析点个赞哦,谢谢!^_^

相关文章
相关标签/搜索