假设我们有一个有n个节点的网络,并且选出一个协调器向节点发送命令。让我们进一步假设协调器的带宽(上传速度)很糟糕,他想在0 (n)个假设时间内发送一个10 GB的大文件。
我现在优化性能的想法是使用擦除编码技术将大文件分成块,并向每个节点发送一个块,以便以后节点在o(n^2)假设时间内相互通信以检索整个块。因此,带宽在验证者之间共享,因此领导者不需要上传大量数据并限制他的带宽和共识的表现。这会带来更高的吞吐量性能吗?或者我在水里挖个洞?
使用擦除编码的另一个优点是,如果一些节点被认为是恶意/拜占庭节点,并且拒绝通信和发送它们的块,那么非故障节点仍然能够通过擦除编码的能力检索具有较小块的消息
与客户端协调,通过本地网络收听多播流。一旦你确定每个你需要接收10gb文件的人都在监听,将文件作为多播发送。
优点是IP多播可以通过本地网络通过一次传输将信息发送给一组感兴趣的侦听器。这是你问题的理想解决方案。
你需要处理某种形式的流控制,以赶上在传输过程中丢失的数据包。
有几个注意事项:
- 消费级网络设备可能不支持组播。
- 确保您的WiFi基础设施支持WiFi上的多播。例如,Cisco Meraki支持多播。
- 对于涉及多个交换机的网络,您需要启用组播路由。