时间:2023-06-18|浏览:219
我们认为,Hyperledger Fabric 在技术上是一个由 N 个节点组成的分布式网络系统。通过把网络内的节点分解为执行交易或者背书及提交节点和交易排序的节点,利用这些被分解后的节点来优化区块链网络性能和安全性及可扩展性。但是,分解后的网络需要一个安全、可靠、可扩展的数据分发协议来保障数据的完整性和一致性。因此,需要使用 Gossip 这个数据分发协议来满足这个要求。
那么,是如何实现 Gossip 协议的呢?在 Fabric 中,各个 Peer 节点之间利用 Gossip 协议来完成区块的广播和数据状态同步的过程。通过 Gossip 消息是连续的在通道上的每个 Peer 节点都不断地接受来自多个节点已完成一致性的区块数据,每条传输的 Gossip 消息都有相应的签名,使得由拜占庭参与者发送的伪造消息很容易地被识别出来,并且可以防止将消息分发给不在同一通道中的其他节点。受到延迟、网络分区或者其他因素导致区块丢失的相关节点,最终将通过联系已经拥有这些缺失区块的节点,来实现与当前账本的状态数据进行同步。
在 Hyperledger Fabric 网络中,基于 Gossip 的数据传输协议是想在 Fabric 网络中来执行或者实现这样三个功能:一是通过不断识别可用的成员节点并最终监测节点离线状态的方式,对节点的发现和通道中的成员进行有效的管理;二是将分类账本数据传播到通道的所有节点。使得任何节点如有缺失的区块都可以通过从通道中的其它节点复制正确的数据来标识缺失的区块并实现自身同步;三是在通道中的所有节点上同步分类账状态。这是通过允许点对点状态传输来更新账本数据,以保证新连接的节点以最快的速度实现数据的同步。正是基于 Gossip 的广播,由节点接受来自通道内其它节点的消息,再将这些消息转发给随机选择的并且再同一通道内若干个邻居节点,这种循环会不断重复,使通道中所有的成员节点的账本和状态信息不断保持与当前的最新状态同步。至于新区块的传播,通道上的 LeaderPeer 节点从 Ordering 服务中提取数据,并向随机选择的邻居节点发起 Gossip 广播,随机选择的邻居节点数量可以通过配置文件进行配置声明,节点也可以使用拉取机制,而不是等待消息的转递。比如客户端的应用程序可以将交易提案请求提交给背书节点(EndorsePeer),背书节点处理并背书签名后返回相应,然后提交给 Ordering 服务进行排序,排序服务达成共识后生成区块,通过 deliver 广播给各个组织中通过选举方式选择的LeaderPeer 节点随机选择 N 个节点将接受到的区块进行分发,并且为了保持数据同步,每个节点会在后台周期性的与其它随机的 N 个节点的数据进行比较,如此就能保持区块数据状态同步了。以上就是区块链技术在商业场景应用中,如何实现数据同步的解析。
用戶喜愛的交易所
已有账号登陆后会弹出下载