peer模块在Fabric系统中的作用

图5-1中列出了peer模块和orderer模块在Fabric系统中的作用,从图中我们会发现,在一个组织内会出现4个Peer服务器节点,这4个Peer服务器节点并不是4个Peer程序进程,而是表示一个组织中的4个角色。这一个逻辑概念并不代表每个具体的Peer程序进程,但是一个完整的组织必须具备这4个角色,即使组织内只有一个Peer程序进程,依然具备这样4个角色,只是这4个角色由一个Peer服务器节点兼任。当然有些节点也可以存在多个,比如Commit节点和Endorse节点是可以存在多个的。但是Leader节点和Anchor节点只能存在一个。下面将分别介绍这四个角色。

Fabric系统中peer模块和orderer模块的架构图

1、提交节点(Committer Peer)

Committer节点主要负责维护区块链的账本结构,该节点会定期从Orderer节点获取包含交易的区块,在对这些区块链进行合法发行校验之后,会把这些区块链加入到区块链中。Committer节点无法通过配置文件配置,当前客户端或者命令行发起交易请求的时候需要指定相关的Committer节点。

2.背书节点(Endorse Peer)

Endorse节点主要负责对交易进行校验。当Endorse节点接收到客户端发送的交易请求之后会对交易的合法性进行校验,校验成功之后会将结果反馈给客户端。Endorse节点也是无法通过配置文件指定的,而是由发起交易请求的客户端指定的。Endorse节点在组织中可以有多个。

3.Leader节点(Leader Peer)

Leader节点是负责代表组织从Orderer节点中获取区块信息。Leader节点在整个组织中只有一个。Endorse节点的产生方式是通过peer模块的配置文件core.yaml进行配置的。在配置文件有两种方式制定Leader节点,分别是:自主选举和强制制定。Leader节点相关的配置信息如下所示:

blob.png

自主选举配置如下:

blob.png

选择自动选举的模式,系统会根据gossip协议自动在组织中选择某一个Peer节点为Leader节点。

强制制定的配置模式如下:

blob.png

选择强制制定的模式,当前Peer节点会自动被设定为Leader节点。在强制指定方式设定Leader节点的模式中,一个组织内只能有一个固定节点作为Leader节点存在。

在实际的项目中,我们建议采用自主选举的模式。因为在该模式下,如果被选举的Leader节点发生故障,系统会自动选取另外一个节点作为Leader节点。

4.锚节点(Anchor Peer)

锚节点主要负责代表组织和其他组织进行信息交换。每个组织都有一个锚节点,锚对于组织来说非常重要,如果锚节点出现问题,那么组织和其他组织会失去联系。锚节点也是通过配置的方式指定。锚节点的配置信息在configtxgen模块的配置文件configtx.yaml中配置的。configtx.yaml文件中关于锚节点的配置信息如下:

blob.png

·Host属性:Host属性表示本组织锚节点的访问地址,可以是IP地址或者域名,建议采用域名。

·Port属性:Port属性表示本组织锚节点的访问端口。

任何组织都必须保证本组织内锚节点服务器处于可访问的状态。

868区块链学习网为您整理《peer模块在Fabric系统中的作用》仅供参考。