Page 257 - 《软件学报》2025年第7期
P. 257
3178 软件学报 2025 年第 36 卷第 7 期
延迟、事务吞吐量和资源消耗, 会被以 JSON 格式记录在文件系统中, 并利用 NodeJS 和 Python 库进行标准化和
可视化分析
BBSF 中定义了一个标准的驱动程序, 以标准化的方式发起负载, 测量指标. 该驱动程序采用服务器/客户端的
模式, 服务器负载编译和部署合约, 客户端充当连接和使用区块链的用户. 工作流程为服务器将事务发送至客户
端, 客户端调用事务, 并记录时间戳. 服务器监控区块链, 并测试吞吐量和延迟.
Gromit 的工作流程分为实验设置、场景文件解析、实验执行和收集结果这 4 部分. 在实验设置部分, Gromit
会生成一个协调器进程, 该进程读取配置文件, 并进行区块链系统部署和环境的初始设置. 场景文件描述了基准的
负载操作, 由场景解析器进行解析. 实验执行部分, Gromit 模拟客户端发出事务的过程, 通过 API 与区块链节点交
互. 另外 Gromit 使用 Procfs 库监控 CPU、内存、磁盘和网络等资源的利用率. 在收集实验结果阶段, 协调器收集
区块链产生的数据进行分析和存储.
Caliper 的核心组件设定了系统的工作流程, 主要包括 5 个步骤. 首先, 根据网络配置文件部署区块链网络. 其
次, 初始化区块链系统, 如创建用户、加入通道等. 接着, 部署用于基准测试的智能合约. 然后, 根据基准配置文件
执行工作负载. 最后, 生成测试报告并进行清理工作.
5.5.4 执行规则总结
目前的现有测试基准都对执行规则的某些要素进行了描述, 但是在实现基准测试的可重复性方面, 现有的基
准仍然存在一些问题.
● 实验的不可重复性: BlockBench、Diablo、BBSF 和 Gromit 等基准缺少了环境部署管理能力, 无法通过简单
的脚本和配置文件实现环境的快速部署, 保证实验的可重复性.
● 实验的准确性: BCadvisor 使用 Docker 等模拟环境进行测试, 与与真实应用的配置存在差异, 可能导致测试
结果的准确性不够高.
● 安全性测试: BlockBench、BBSF、Diablo 和 BCadvisor 进行了安全性评估, C2B2 和 BCTMark 提供了网络
故障模拟的能力, 其他基准均没有涉及安全性测试.
● 测试流程: 目前测试基准的工作流程中缺少数据集导入步骤的描述, 这一步作为测试环境的预配置, 对于实
验结果的复现极为重要.
5.6 小 结
综上所述, 当前的区块链测试基准已呈现百花齐放局面, 但还存在一些普遍性问题. 首先, 缺乏对应用模型和
数据模型的设计, 难以准确地模拟真实应用场景和用户行为. 其次, 缺少面向真实应用的负载设计, 无法全面评估
区块链系统在实际使用中的性能表现. 第三, 现有的测试基准更多地关注性能指标, 而缺乏对扩展性和安全性等重
要指标的考虑. 第四, 尽管跨链、侧链和分片等技术在区块链领域中越来越重要, 但是现有的测试基准没有充分地
考虑这些新兴技术. 最后, 目前还没有针对国内典型区块链应用场景如电子政务、数据要素流通或司法的测试基
准, 这在一定程度上制约了国内区块链行业生态的发展.
6 总 结
测试基准的目的在于公正客观地评估不同系统的性能. 随着区块链技术的快速发展, 近年来也涌现出一大批
区块链测试基准, 但其包含的内容差异较大, 所采用的指标也参差不齐.
本文对现有区块链测试基准进行了充分的调研, 参考目前广泛使用的数据库测试基准, 结合区块链系统自身
特点, 建立了一个全面衡量区块链系统的指标体系, 涵盖了性能、资源效率、扩展性和安全性这 4 类指标. 提出了
一个规范化的区块链测试基准参考框架 UFBCB, 该框架包括应用模型、数据模型、负载、指标和执行规则 5 个
要素. 基于该框架, 对现有区块链测试基准进行了全面对比分析. 本文工作可对未来区块链测试基准的制订和实施
提供参考, 有助于推动区块链行业的规范和有序发展.
释放数据要素潜能、大力发展新质生产力已成为国家战略. 区块链技术作为构建可信安全数据基础设施的主

