Hyperledger Fabric优化了区块链网络性能,安全性,经过跨交易执行(承认和提交)对等点和交易排序节点划分工做负载来实现可伸缩性。这种网络操做的分离须要安全,可靠且可扩展的数据传播协议以确保数据的完整性和一致性。为了知足这些条件,Fabric实现了八卦数据传播协议。安全
对等点利用八卦以可扩展的方式广播分类账和通道数据,八卦消息是连续的,而且通道上的每一个对等点不断地从多个对等点接收当前和一致的分类账数据,每一个八卦的消息都已签名,从而容许拜占庭参与者轻松识别发送伪造消息,并防止将消息分发给不须要的目标。受延迟,网络分区或致使错过块的其余缘由影响的对等点最终将经过联系拥有这些丢失块的对等点同步到当前分类账状态。网络
基于八卦的数据传播协议在Fabric网络上执行三个主要功能:并发
基于八卦的广播操做是由对等点接收通道中其余对等点的消息,而后将这些消息转发给该通道上的多个随机选择的对等点,其中此数量是可配置常量。对等点也可使用拉取机制而不是等待消息的传递,这个循环重复,通道成员资格、分类账和状态信息的结果不断保持最新和同步。用于传播新块,通道上的领导对等点从排序服务中拉取数据,并向其本身组织中的对等点发起八卦传播。性能
领导选举机制用于为每一个组织选择一个对等点,该对等点将与排序服务保持链接并发起在其本身组织的对等点之间分发新到达的区块,利用领导选举为系统提供了有效利用排序服务带宽的能力,领导选举模块有两种可能的操做模式:区块链
使用静态领导选举容许在组织内手动定义一组领导对等点,能够将单个节点定义为领导或全部可用的对等点,应该考虑到这一点 - 使用太多的对等点链接到排序服务可能会致使带宽利用效率低下,要启用静态领导选举模式,请在core.yaml
部分中配置如下参数:优化
peer: # Gossip related configuration gossip: useLeaderElection: false orgLeader: true
或者,可使用环境变量配置和覆盖这些参数:code
export CORE_PEER_GOSSIP_USELEADERELECTION=false export CORE_PEER_GOSSIP_ORGLEADER=true
如下配置将使对等点处于待机模式,即对等点不会尝试成为领导:
export CORE_PEER_GOSSIP_USELEADERELECTION=false export CORE_PEER_GOSSIP_ORGLEADER=false
将CORE_PEER_GOSSIP_USELEADERELECTION
和CORE_PEER_GOSSIP_USELEADERELECTION
设置为true
值是不明确的,将致使错误。排序
在静态配置组织中,管理员负责在出现故障或崩溃时提供领导节点的高可用性。ip