Raft 协议 - Fabric( 五 )


最终得到的基准性能测试数据为每秒交易数为118.24,平均响应时间2.68s,区块生成速率为2.36块每秒 。
后续实验相较于基准性能测试,将每次改动一种参数,得到新的实验结果并进行比较分析 。
表2 基准性能实验参数
参数值
区块大小
50
背书策略
OR
代理节点
不是raft网络的节点
4.2 改变区块大小
对比基准测试,只更改区块大小 。分别测试区块大小为5、20、50(基准测试)、100、150、200、250、300、350、400、450、500时的性能,得到的测试结果如下图所示 。
图1 BLKPS随着区块大小的变化
图2 TPS与ART随着区块大小的变化
区块生成速率随区块大小的变化曲线如图1,平均响应时间和每秒交易数随区块大小的变化曲线如图2 。
现象分析:根据图中的曲线变化,随着区块大小的增加,
原因分析:
检验假设:
当区块大小达到未超时最大交易次数时,再增大区块大小也不会增加区块内的实际交易数量,性能趋于稳定 。但当区块大小小于未超时最大交易次数时,随着区块大小的增加,每秒交易数增加,平均响应时间减少,区块生成速率降低,同时也会受到负载并发数的影响 。若并发负载数不是区块大小的整数倍,最后一个区块内的实际交易数量将小于设置的区块大小,因此需要等待时间达到2s,才能产生区块 。
表3 区块大小为150时所生成区块的ART
区块序号ART( s )相较前一个区块的ART增长率
1
2.41
2
2.85
18.26%
3
3.32
16.49%
4
4.24
27.71%
4.3 改变背书策略
对比基准测试,只更改背书策略为AND 。比较背书策略为OR时(基准测试)与背书策略为AND时网络性能的不同,得到结果如表4 。
表4 应用不同背书策略时的性能
背书策略TPS( 个 / s )BLKPS( 块 / s )ART( s )
AND
105.85
2.12
3.21
OR
118.24
2.36
2.68
现象分析:
检验假设:
4.4 改变代理节点
对比基准测试,将代理节点更改为raft网络中的节点 。比较代理节点是raft网络中的节点时(基准测试)与代理节点是raft网络中的节点时网络性能的不同,得到结果如表5所示 。
表5 应用不同代理节点时的性能
代理节点TPS( 个 / s )BLKPS( 块 / s )ART( s )
节点
118.24
2.36
2.68
节点
109.49
2.19
3.12
现象分析:
检验假设:
5 结语
本文对的raft网络进行性能测试,主要以性能指标中的每秒交易数、区块生成速率和平均响应时间作为主要测试指标,分析基本性能 。然后针对区块大小、背书策略、代理节点三种性能因素设计实验,测试对比并进行了原因分析 。对于测试过程中出现的异常现象也给出了合理的分析解释 。
本研究结果发现,当区块内的最大交易数量已经超过未超时最大交易数时,区块链性能将趋于稳定 。当小于区块分割等待时间所能完成的最大交易数量时,网络性能受到区块大小与并发负载量的影响,区块大小越大,并发负载量是区块大小的整数倍时网络性能越好 。背书策略为AND时与背书策略为OR时比较,平均响应时间延长20%,区块生成速率缩短到原有的90%,每秒交易数降低约10% 。当代理节点为变量实验时代理节点是raft网络中的节点时时,平均响应时间延长了约16%,区块生成速率与每秒交易数均降低约7% 。
本研究对于单用户单信道的 raft网络性能的深入探究,有助于进一步开发高性能的区块链网络 。在后续区块链实际应用的开发以及推广中,其性能问题必然是有待进一步解决的重点难点 。希望本文中对于分布式区块链的性能影响因素研究可以为后续的优化提供一定的理论指导和参考 。