【原创】优化网络带宽占用以提高区块链TPS


#1

随着网络的发展,家用宽带的带宽也一直在增加,一线城市家用带宽一般都在100M到200M之间。但实际使用的时候,下行带宽与上行带宽是极度不平衡的,家用带宽的下行速率即使能达到200Mbps,甚至500Mbps,上行速率最大也仅为4Mbps(数据来源联通官网)。在区块链的P2P网络中,交易的广播,块的广播都是占用上行带宽。这里估算一下,平均一个普通交易占用400字节,在只转发给一个节点的情况下,1s内最大只能转发1W个交易。在多节点转发中,会存在大量的数据冗余传输,势必会降低单位时间内的交易量。因此,如何优化网络带宽来提高TPS是必须要考虑的一个问题。
以下几点或许可行的方案,希望大家一起讨论
1、增加上行带宽。
虽然家用带宽上行速率较小,但可以申请专线来提高上行速率。缺点是费用较高,也不可能所有节点都升级。
2、降低数据包的大小
将数据包进行压缩以降低对带宽的占用,目前网络传输中比较常用的一种手段
3、减少数据的节点转发数
对要转发的节点设置一定的要求,而不是转发给连接的所有节点,缺点是部分节点的数据延时可能会很大。
HPB代码中就有针对节点类型的判断,从而决定是否转发。
4、通过转储服务器进行数据分发
建立转储服务器(1个或多个),转储服务器可以采用专线来提高上行速率。
各个节点在转发数据的时候,优先将交易,块发送到转储服务器上,同时仅将transhash,blockhash转发给P2P网络中的各个节点。其他节点收到hash后,通过hash向转储服务器请求完整的数据包。采用专线的转储服务器将能够支持大数据量的下载,这样大大减轻了数据包在网络中的冗余传输。缺点是增加了服务器的维护成本。

如果能将以上方案互相结合,那就更好了。欢迎大家讨论。