区块链底层平台FISCO BCOS的网络压缩功能是怎样的

发布时间:2021-12-22 15:07:10 作者:柒染
来源:亿速云 阅读:293

区块链底层平台FISCO BCOS的网络压缩功能是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造。开源工作组成员包括博彦科技、华为、深证通、神州数码、四方精创、腾讯、微众银行、亦笔科技和越秀金科等金链盟成员机构。

外网环境下,区块链系统性能受限于网络带宽,为了尽量减少网络带宽对系统性能的影响,FISCO BCOS从relase-2.0.0-rc2开始支持网络压缩功能,该功能主要在发送端进行网络数据包压缩,在接收端将解包数据,并将解包后的数据传递给上层模块。

下面讲的就是FISCO BCOS的网络压缩功能,从FISCO BCOS的系统框架、核心实现、处理流程、测试结果等角度进行了解析。

Part 1、系统框架

网络压缩主要在P2P网络层实现,系统框架如下:

区块链底层平台FISCO BCOS的网络压缩功能是怎样的

网络压缩主要包括两个过程:

Part 2、核心实现

综合考虑性能、压缩效率等,我们选取了Snappy来实现数据包压缩和解压功能。

数据压缩标记位

FISCO BCOS的网络数据包结构如下图:

区块链底层平台FISCO BCOS的网络压缩功能是怎样的

网络数据包主要包括包头和数据两部分,包头占了16个字节,各个字段含义如下:

网络压缩模块仅压缩网络数据,不压缩数据包头。

考虑到压缩、解压小数据包无法节省数据空间,而且浪费性能,在数据压缩过程中,不压缩过小的数据包,仅压缩数据包大于c_compressThreshold的数据包.c_compressThreshold默认是1024(1KB)。我们扩展了Version的最高位,作为数据包压缩标志:

区块链底层平台FISCO BCOS的网络压缩功能是怎样的

Part 3、处理流程

下面以群组1的一个节点向群组内其他节点发送网络消息包packetA为例(比如发送交易、区块、共识消息包等),详细说明网络压缩模块的关键处理流程。

发送端处理流程:

接收端处理流程:

Part 4、配置与兼容

配置说明

兼容性说明

Part 5、测试结果

为测试网络压缩效果,分别在内网和外网环境下,以同样的压测程序和QPS压测开启网络压缩和没开启网络压缩的四节点区块链,测试结果如下。

通过测试结果可看出:

图一:带宽对比(关闭压缩和开启压缩情况下,压测并行solidity合约和串行Precompile合约)

区块链底层平台FISCO BCOS的网络压缩功能是怎样的

通过图一可看出,执行串行solidity合约,开启压缩可节省三分之一带宽;执行并行Precompile合约可节省三分 之二带宽。 

图二:TPS对比(内网和外网环境下,关闭压缩和开启压缩情况下TPS)

区块链底层平台FISCO BCOS的网络压缩功能是怎样的

通过图二可看出,内网环境下,开启压缩对区块链系统性能影响不大;外网环境下,因为在有限带宽限制下,开启 压缩可处理更多交易,区块链性能提升了约三分之一。

内网环境测试结果
串行solidity合约(PerformanceOk)压缩前Snappy压缩后
TPS1961.51939.4
入带宽10.88MBit/s6.93MBit/s
出带宽9.08MBit/s5.70MBit/s
并行Precompile合约(PerformanceDT)压缩前Snappy压缩后
TPS97259741
入带宽76.06MBit/s22.72MBit/s
出带宽80.48MBit/s24.17MBit/s
外网环境测试结果
压测场景压缩前Snappy压缩后
四节点,串行solidity合约(PerformanceOk)1125.81740
四节点, 串行solidity合约(PerformanceOkD)低于10001407

关于区块链底层平台FISCO BCOS的网络压缩功能是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. 深度 | 带领国产数据库走向世界,POLARDB底层逻辑是什么?
  2. Java 程序员必须了解的计算机底层知识

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

fisco bcos 区块链

上一篇:如何搭建vue3.0项目

下一篇:mysql中出现1053错误怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》