Page 233 - 《软件学报》2025年第7期
P. 233
3154 软件学报 2025 年第 36 卷第 7 期
因此, 区块链测试基准需要根据应用需求对数据集的规模和分布进行适当的配置. 其次, 从负载角度来看, 数据库
测试用例往往通过数据库事务, 比如 SQL 语句来定义操作, 而区块链系统常常采用智能合约. 最后, 由于区块链系
统通常在弱信任或无信任的环境中运行, 安全性和容错性是区块链测试基准必须考虑的指标. 因此, 区块链测试基
准还应定义攻击模式, 因为安全性和容错性的评估需要针对具体的攻击, 例如评估在 DDoS 或女巫攻击下系统性
能的影响程度.
目前, 针对区块链测试基准的综述分析工作还相对较少. Touloupou 等人 [52] 从支持区块链类型、指标、测试
工具等方面对区块链测试基准进行了比较分析, 并提出了一个区块链基准测试工具. Fan 等人 [18] 从支持的区块链
类型、工作负载、指标等方面对 BlockBench、Caliper 和 DAGBENCH 进行了比较. Chacko 等人 [53] 提出了测试基
准应考虑的 4 个要素: 系统配置、参数调整、工作负载和指标. 他们利用这 4 个要素对 BlockBench、Caliper、
Diablo、Gromit 和 BCTMark 进行了案例研究, 评估了其局限性. 其中系统配置和参数调整属于本文所提框架中的
执行规则. 这 3 项研究均未讨论测试基准中的应用模型, 事实上很多现有的区块链测试基准要么采用简单的比特
币转账交易场景, 要么直接沿用数据库测试基准的应用模型 (如 SmallBank 和 YCSD), 没有充分考虑区块链应用
的特殊性. 此外, 这 3 项工作也未关注测试基准中数据模型的设置. 测试工具是测试基准的具体实现, 本研究重点
关注测试基准的内容, 不对测试工具进行分析.
表 1 对本文工作和现有的区块链测试基准综述工作进行了对比. 表中的“✓”代表包含相应维度的分析, “-”
代表不包含 (下同). 可以看到, 本文工作增加了应用模型、数据模型和执行规则这 3 个维度的讨论. 此外, 本文工
作还将针对区块链应用的特殊性, 对现有的指标进行了详细的梳理和分析.
表 1 区块链基准综述研究
综述 区块链类型 应用模型 数据模型 负载 指标 执行规则
[18] ✓ - - ✓ ✓ -
[52] ✓ - - - ✓ -
[53] ✓ - - ✓ ✓ ✓
本文 ✓ ✓ ✓ ✓ ✓ ✓
本文的主要贡献如下.
● 提出了一个区块链测试基准参考框架 UFBCB. 该框架结合了数据库的测试基准理论和区块链系统的特性,
明确了区块链测试基准所需考虑的关键要素及其相互之间的关联性.
● 设计了一个区块链度量指标体系. 通过对现有区块链评价指标的全面梳理, 我们从多个维度和层次对这些
指标的定义及其计算公式进行了分类和总结, 构建了一个覆盖性能和安全性的全面的度量指标体系.
● 分析评估现有的区块链测试基准. 根据我们提出的区块链测试基准参考框架 UFBCB, 对现行的区块链测试
基准进行了深入的对比分析. 比较了它们的主要特性、优缺点以及适用场景, 为未来的区块链测试基准的设计提
供了参考和指导.
本文第 2 节介绍背景知识, 包括区块链技术和测试基准的基础概念, 并对常用的数据库测试基准进行分析.
第 3 节总结并分类目前用于评估区块链系统的各种指标. 第 4 节提出一个包含 5 个关键要素的区块链测试基准参
考框架, 并对每一个要素进行深入的讨论. 第 5 节基于这些基本要素, 对现有的基准进行详细的比较和分析. 第 6
节对本研究进行总结和回顾.
2 背景知识
本节主要介绍区块链的基本知识, 并详细分析常见的数据库测试基准, 为深入探讨区块链测试基准奠定基础.
2.1 区块链
区块链本义是由“区块”组成的链, 每个区块保存了前一区块的哈希值, 用以验证其内容的正确性和完整性. 逻
辑上多个区块就构成了一个单向链表. 由于经常被用来记录加密数字货币系统中的转账交易, 区块链也常被称为

