Page 247 - 《软件学报》2025年第7期
P. 247
3168 软件学报 2025 年第 36 卷第 7 期
能数据和资源使用情况.
(1) 日志收集: 区块链的日志记录了系统的各种操作和事件, 包括交易处理时间、资源消耗和错误信息等. 通
过对区块链日志进行分析, 可以获取系统的性能数据. 例如, 通过分析某段时间内上链的区块数以及区块内的交易
数, 可以计算出吞吐率等指标.
(2) 区块查询: 区块查询是一种通过与区块链节点进行交互, 获取统计数据, 然后进行深度分析和计算以得出
关键性能指标的方法. 比特币和以太坊等主要的区块链平台都提供了 JSON-RPC 接口, 允许开发者发送 RPC 请求
来查询区块链数据和交易数量等. 利用这些数据, 可以计算出系统的指标. 例如, 在比特币中, 可以使用
GetblockRPC 调用来获取某个区块的详细信息, 其中包含了交易数量. 通过计算特定时间段内所有区块的交易数
量除以时间长度, 就可以获得系统的吞吐率.
这两种方式都可以用于实际测试中, 以获取区块链系统的性能数据和指标. 区块查询可能会对系统的性能产
生一定的影响, 因此基准设计时需要综合考虑这些因素.
4.5 执行规则
执行规则规定了如何进行测试, 以确保正确地获取相应的测试指标, 同时保证测试的准确性、重复性和可比
性. 在区块链中, 执行规则包括区块链测试配置和测试流程. 如图 8 所示.
执行规则
测试配置 测试流程
系统配置 攻击配置 启动 执行 监控 结束
图 8 执行规则的组成
4.5.1 测试配置
测试配置包括了系统配置和攻击配置.
(1) 系统配置. 系统配置是指针对被测区块链系统进行的环境部署配置过程. 系统配置包括了硬件配置和软件
配置. 硬件配置是指区块链运行的硬件环境, 包括架构 (X86/ARM)、处理器速度、CPU 数量、内存大小和硬盘的
容量以及配置等. 软件配置主要包括区块设置、网络设置等. 区块设置主要包括共识协议、区块大小、区块生成
间隔等参数配置; 网络配置主要包括网络的拓扑结构以及节点的设置、数量、连接等. 不同的配置对区块链的性
能影响较大 [89] , 基准应详细描述系统各种配置, 以保证实验的可重复性和公平性. 有些基准 [45] 通过 YAML 配置文
件进行系统配置, 其中包含全局配置、节点配置、网络拓扑配置和部署配置这 4 个部分. 配置文件的结构和内容
应根据具体的测试场景进行定义和修改.
(2) 攻击配置. 由于区块链系统必须支持拜占庭容错, 区块链的测试基准还应包括攻击配置, 以模拟真实环境
中存在的安全威胁, 全面评估区块链系统的性能、安全性和稳定性. 攻击配置是指在区块链系统中模拟真实故障
和攻击情况, 旨在评估系统在面对故障和攻击时的抵御能力. 常见的攻击配置主要有节点故障、网络分区和恶意
攻击. 节点故障是指在事务负载运行期间, 通过关闭一个或多个节点, 模拟节点宕机或崩溃的情况, 观察系统的响
应和数据同步情况. 网络分区是指在事务负载运行期间, 通过网络命令将网络分割成多个部分, 模拟网络分区, 观
察区块链分叉情况. 恶意攻击配置是指在事务负载运行期间, 通过模拟自私挖矿、日蚀、分叉、女巫、DDoS 攻
击等恶意行为, 观察系统的吞吐率变化和延迟变化. 通过模拟这些故障, 可以评估区块链系统在面对故障和攻击时
的抵御能力和稳定性.
4.5.2 测试流程
测试流程定义了明确的测试流程和步骤, 确保测试的一致性和可重复性, 主要包括测试的启动、执行、监控

