区块链学习笔记P2P篇之五:节点广播方案(未实现)

在区块链的实际应用中,要经常用到p2p广播,所以节点广播是必不可少的功能,目前想到的有以下几个方案

udp广播

基于udp的广播,其优点是实现简单,效率高,缺点是只有处于同一内网节点才能收到消息,局限性太大。

udp组播

基于udp的组播,其优点和广播相同,同时又不仅局限于内网,外网也可以使用组播。但外网使用组播需要网络设备的支持,只要有一集设备不支持则无法收到消息。更遗憾的是,目前绝大部分的网络设备都是不支持组播的。

节点轮询

遍历所有节点,依次对每个节点发送消息,优点是不受网络环境限制,真正的能做到所有节点的广播。缺点是效率,如果节点很少还勉强可以,节点太多光是所有节点都转一遍的时间都是无法接受的。

节点分组轮询

节点之间交叠分组,保证每个节点至少同时处于两个分组当中,当有消息需要广播时,只在自己的组内进行轮询广播,组内其他成员接收到广播消息后,再向自己的另一个组内进行轮询广播,达到一传十,十传百的效果。

结论

从以上各个方案的特点来看,节点分组轮询的方案最居可行性。

猜你喜欢

转载自blog.csdn.net/mumufan05/article/details/82015326