Hyperledger Fabric 节点分类以及配置

节点分类

在 HF 中,有背书节点,提交节点,锚节点和领导节点。一个节点可以同时是一个提交节点,背书节点,领导节点和锚节点!出于实践的考虑,总会有一个领导节点,至少一个背书节点和至少一个提交节点。
排序节点是特殊的,它不属于哪一个通道,游离于通道之外,更具体说是排序服务( orderer service)。

Endorsing Peer

根据相应的认可策略指定的节点(每个节点都有可能是,也只有它们安装了 application chaincode ),负责执行链码事务并将提案响应返回到客户端应用程序。提案响应包括链码执行响应消息,结果(读集和写集)和事件,以及签名。

Committing Peer

通道中的所有节点都是提交节点,验证交易的有效性,然后将这些块提交(写入/追加)到其通道账本,并更新自己的世界状态。

Anchor Peer

锚节点用于跨组织点对点通信。节点与锚节点联系,能获得锚节点所知道的所有节点的信息。一旦来自每个组织的至少一个节点联系到锚节点,则锚节点将了解该通道中的每个节点。
由于组织之间的通信依赖于 Gossip 才能起作用,因此在通道配置中必须至少定义一个锚节点。官方强烈建议每个组织提供自己的一个或多个锚节点,以实现高可用性和防止单点错误。
设置锚节点:

 - &org1
    Name: org1
    ID: org1MSP
    MSPDir: ./data/orgs/org1/msp
    AnchorPeers:
      - Host: org1-peer
      - Port: 7051 

  # generate anchor peer transaction
  configtxgen -profile OrgsChannel -outputAnchorPeersUpdate ./crypto-config/org1Anchors.tx -channelID publicchannel -asOrg org1
  if [ "$?" -ne 0 ]; then
  echo "Failed to generate anchor peer update for maersksea..."
  exit 1org1     fi

Leading Peer

每个组织可以在其加入的 channel 中拥有多个节点。这些节点中的一个或多个应充当该 channel 的 leading peer,以便代表组织与网络的排序服务进行通信。排序服务将区块发给对应 channel 的 leading peers,然后由他们将其分发给同一组织内的其他节点。这样会减轻排序服务的压力
设置主节点:

// 手动定义一个或多个
export CORE_PEER_GOSSIP_USELEADERELECTION=false
export CORE_PEER_GOSSIP_ORGLEADER=true
// 动态选取一个
export CORE_PEER_GOSSIP_USELEADERELECTION=true
export CORE_PEER_GOSSIP_ORGLEADER=false

Orderer Peer(O_S)

排序节点(或者说排序服务)负责整个网络的交易进行排序,并分发给订阅自己的主节点。

  • 排序由一个成员完成,则该成员必须得到其他所有人的信任。
  • 网络中所有成员信任的第三方。
  • 网络中涉及的所有各方都运行一个订购者,他们进行沟通和协调。

猜你喜欢

转载自blog.csdn.net/TBBetter/article/details/105816870