Page 249 - 《软件学报》2025年第7期
P. 249

3170                                                       软件学报  2025  年第  36  卷第  7  期


                    除区块链测试基准之外, 还有很多工作通过实验分析或模拟对区块链性能进行测试评估. 实验分析是通过设
                 计和执行一系列的实验, 衡量不同参数下系统的性能. 文献                  [90−95], 针对有许可的区块链平台进行了实证性能评
                 估, 通过实验的方式对多个区块链平台进行性能测试. 但是, 实验环境的特定性和参数的复杂性导致实现的结果存
                 在不可重复性. 模拟是通过建立区块链模拟器, 模拟区块链的交易过程来衡量区块链的理论性能. BlockLite                            [96] 和
                 VIBES [97] 都是公开的区块链模拟器, 可以在单个节点模拟区块链的基本操作, 评估区块链的扩展性等. 模拟器通常
                 在理想的或者受控的环境中运行, 与区块链实际运行环境存在一定的差别, 无法完全反映区块链系统在实际环境
                 中的性能.
                    本文主要针对系统级的测试基准进行研究. 测试基准是对不同架构的系统进行统一评估的规范和工具, 具有
                 相关性、可重复性、公平性、可验证性和可用性                 [76] . 根据第  4  节介绍的区块链测试基准参考框架, 我们对目前的
                 区块链测试基准进行了对比分析, 结果如表              6  所示.


                                                    表 6 区块链基准对比

                         基准             支持类型        应用模型         数据模型        负载       指标       执行规则
                              [39]
                      BlockBench          PR           ✓           ✓          ✓        ✓         ✓
                                 [40]
                    Hyperledger Caliper   PR           -           -          -        ✓         ✓
                            [98]
                        C2B2              PR           -           -          -        ✓         ✓
                              [48]
                      BlockMeter          PR           -           -          ✓        ✓         ✓
                      Klenik等人 [50]       PR           ✓           ✓          ✓        ✓         ✓
                            [88]
                        BBSF              PR           ✓           ✓          ✓        ✓         ✓
                     Touloupou等人 [99]    PU/PR         -           -          ✓        ✓         ✓
                            [42]
                        Diablo           PU/PR         ✓           -          ✓        ✓         ✓
                               [46]
                      DAGBENCH           PU/PR         ✓           ✓          ✓        ✓         ✓
                             [43]
                        Gromit           PU/PR         ✓           -          ✓        ✓         ✓
                             [45]
                       BCTMark           PU/PR         -           -          ✓        ✓         ✓
                              [44]
                       BCadvisor         PU/PR         -           -          ✓        ✓         ✓
                              [47]
                       xBCBench          PU/PR         ✓           -          ✓        ✓         ✓

                    表  6 “支持类型”中, PU   表示该基准评测了公有链, PR        表示该基准评测了许可链. 可以看到, 超过半数的区块
                 链测试基准同时评测了公有链和许可链. 从评测内容来看, 大部分基准在测试公有链和许可链时采用了相同的指
                 标和执行规则, 只有      BCTMark  采用了不同的指标. 另外我们也注意到, 只测试许可链的基准, 如                   BlockBench  和
                 BBSF, 没有测量资源效率. Diablo    主要针对的也是许可链, 同样没有测资源效率. 可见公有链和许可链在评测指标
                 上应该有所区分. 此外, 公有链和许可链面临的安全威胁也有差异, 测试时也应该采用不同攻击配置, 目前只有
                 BCadvisor 对此有针对性设计. 我们将在第        5.4  和  5.5  节详细介绍.

                 5.1   应用模型
                    现有的区块链测试基准中, 针对应用模型的研究比较少. Diablo                [42] 开发了  5  个去中心化的应用程序, 涵盖了交
                 易所、视频分享、游戏、网站服务和移动应用等业务场景. 交易所在早晨                         9  点开市时会出现交易高峰, 因此其应
                 用场景呈现出峰值特征. 移动应用选择了             Uber 的计算距离场景, 通过计算欧几里得距离来匹配司机和乘客, 因此
                 该场景具有计算密集型的特征. 网站应用场景模拟的是                  1998  年足球世界杯期间对      FIFA  网站的访问情况, 因此该
                 场景具有高竞争性的特征. 视频分享和游戏应用场景则都具有高请求率的特征. 然而该研究并没有深入分析这些
                 业务场景是否真实反映了区块链应用的实际需求.
                    BBSF [100] 定义了  4  个区块链应用场景, 包括代币交易所、NFT         市场、NFT   铸造以及体育博彩网站. 该研究没
                 有深入分析每一个应用场景具体的特点.
                    此外, 大多数的基准并没有考虑应用模型的设计, 例如, DAGBENCH                  [46] 、Gromit [43] 和 xBCBench [47] 等测试基
   244   245   246   247   248   249   250   251   252   253   254