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

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


                 块链测试基准都包含了性能指标, 超过一半的基准包含了资源效率指标, 只有少量基准包含扩展性和安全性指标.
                 下面逐一介绍.


                                                  表 9 区块链基准指标对比

                                  基准             性能         资源效率          扩展性          安全性
                               BlockBench [39]    ✓            -            ✓           ✓
                                         [40]
                            Hyperledger Caliper   ✓            ✓            -           -
                                    [98]
                                 C2B2             ✓            ✓            -           -
                               Klenik等人 [50]      ✓            -            -           -
                             Touloupou等人 [99]     ✓            ✓            -           -
                                      [48]
                               BlockMeter         ✓            ✓            -           -
                                     [88]
                                 BBSF             ✓            -            ✓           ✓
                                     [42]
                                Diablo            ✓            -            -           -
                                       [46]
                              DAGBENCH            ✓            ✓            ✓           -
                                     [43]
                                Gromit            ✓            ✓            -           -
                                      [45]
                               BCTMark            -            ✓            -           -
                                     [44,87]
                               BCadvisor          ✓            ✓            -           ✓
                                      [47]
                               xBCBench           ✓            ✓            -           -

                    (1) 性能指标. 几乎所有基准都包含性能指标, 只有             BCTMark [45] 中缺少了对性能指标的详细描述, 仅描述了对
                                          [47]
                 资源消耗指标的收集. xBCBench        中除了定义了事务的吞吐率和延迟以外, 还定义了读取延迟和读取吞吐率两个
                 指标, 用来衡量读取操作的性能, 这两个指标也可以通过第                 3  节定义的公式    (1) 和公式  (3) 计算.
                    (2) 资源效率指标. 超过一半的测试基准包含了资源效率指标, 其中, BCadvisor                [44] 是一个面向资源消耗的区块
                 链测试基准, 它定义了一个名为          TsRoB  的流程, 用于对区块链每层的资源效率进行评估. 对于共识层和网络层,
                 BCadvisor 定义了功率、CPU、内存、硬盘和网络的资源效率公式, 还考虑了客户端                      RPC  请求的消耗, 通过引入
                 权重因子, 将   RPC  请求和区块链交易两类任务结合在一起. BCTMark             在指标设计上考虑了公有链和许可链的差
                 异, 其评测了以太坊的功耗情况, 但未对           Hyperledger Fabric 进行相同的实验.
                    (3) 扩展性. 目前只有    BlockBench [39] 、BBSF [88] 和  DAGBENCH [46] 中对区块链的扩展性指标进行了定义. 其中,
                 BBSF  和  DAGBENCH  通过在不同节点数量下运行测试基准并进行曲线拟合来推断区块链在扩展过程中的表现.
                 BlockBench  除了观察节点的变化外, 还观察不同并发工作负载数量下吞吐量和延迟的变化来推断区块链的扩展
                 性能.
                    (4) 安全性. 在当前的基准中, BlockBench    [39] 、BBSF [88] 都定义了安全性指标. BlockBench  中将安全性指标量化
                 为主分支中包含的总区块数与用户确认的总区块数的比值, 比值越低, 系统抵抗双重支付和自私挖矿的安全性越
                 高. BBSF  中通过模拟故障节点和恶意节点的行为, 测量它们对系统性能的影响, 安全性指标由不同数量的故障节
                 点下系统的性能比率组成, 该指标揭示了区块链在面对不同攻击时的性能受影响程度. BCadvisor                             [44,87] 考虑了
                 DDoS  攻击和  Sybil 攻击, 设计了一组防御性能       (DP) 的指标, 使用攻击时吞吐率与系统的最大吞吐率的比值来衡
                 量区块链受到攻击时服务的可用性.

                 5.4.2    指标计算
                    目前大多数区块链测试基准使用区块查询的方法来获取区块链的性能数据. 然而, 在实时监控的情况下, 这种
                 数据获取方式会给验证节点本身带来了很大的开销, 影响测试结果的准确性. 此外, 区块查询方法不能获取区块链
                 系统全部指标, 存在一定局限性.
                    (1) 区块查询. 在当前的测试基准中, 大多数性能指标的获取是通过与区块链进行交互, 收集数据, 然后进行深
                 入的分析和计算来实现的. 不同的测试基准中实现方式有些差异. 例如, 有些测试基准, 如                          Diablo、BlockBench、
   248   249   250   251   252   253   254   255   256   257   258