本文内容摘自 https://www.persistent.com/wp-content/uploads/2018/07/research-paper-performance-evaluation-of-the-quorum-blockchain-platform.pdf,作为最近项目要做的性能测试的一个基准参考。
0x01 交易吞吐量和交易延迟
交易吞吐量 是指区块链网络每秒所成功处理的交易数,也就是常说的 TPS。当一笔交易被成功打包进区块,并且该区块已经被成功纳入区块链的一部分时,我们就认为该笔交易已经被成功处理。
交易延迟 是指一笔交易从发送交易请求,到收到交易处理结果所经历的时间间隔。对于只读交易来说,交易延迟就是从节点收到处理结果的时间。对于写交易来说,交易延迟是指从交易发出,到交易被成功处理后节点收到确认事件的时间。
0x02 实验环境
我们在本地网络为 RAFT 共识配置了 3 个节点,为 IBFT 共识配置了 4 个节点。
每个节点的硬件配置都是 8 核 16 G,操作系统 Ubuntu。我们还准备了另外 3 个同样配置的节点来运行测试工具客户端,来向 Quorum 节点发送请求。
测试工具使用的是 Caliper,通过 Caliper 从三台机器上分别向 Quorum 节点发送测试交易请求。当某笔交易被确认已经被打包进区块时认为交易被成功处理,借助 Caliper 记录交易吞吐和交易延迟。
在构造交易负载时,每个测试客户端机器上发送的交易量从 50笔/秒逐步增加到 550笔/秒,网络上的总负载也就从 503 = 150笔/秒逐步增加到 5503 = 1650笔/秒。每发一轮交易,中间间隔 5 秒种,再发另外一轮。
测试是通过合约调用进行的,部署一个简单的合约将负载分为三类:
写负载:调用合约更新合约状态
空负载:调用合约直接返回数据
读负载:调用合约读取合约数据
混合负载:既有合约更新调用,又有合约读取调用
0x03 测试结果
出块时间对吞吐量和交易延迟的影响:
由上面这个表格可见,出块时间对吞吐量影响不大,影响比较大的是交易延迟。
网友评论