Page 243 - 《软件学报》2025年第7期
P. 243
3164 软件学报 2025 年第 36 卷第 7 期
本节将采用一个基于区块链的供应链管理例子来介绍各个测试要素.
供应链管理覆盖了产品从原材料阶段到最终交付给消费者的全过程. 在这个过程中, 区块链和智能合约的应
用显著提升了供应链管理的透明度, 增强了安全性, 降低了成本, 增强了多方互信. 沃尔玛与 IBM 联合推出的“从
农场到餐桌”的食品溯源和真实性验证方案, 很好地展示了区块链技术在食品供应链中的实际应用. 供应链管理涉
及供应商、制造商、分销商、零售商、仓储和物流等各个参与方, 主要的操作包括采购管理、生产管理、库存管
理和订单处理等关键步骤.
4.1 应用模型
应用模型是指对特定区块链业务场景的描述. 应用模型是数据模型、负载、指标和执行规则的基础, 旨在模
拟现实世界中的应用, 以便评估区块链系统在类似条件下的性能. 以供应链场景为例, 应用模型包含供应商、客户、
订单、产品、库存和发货等实体, 以及订单处理、库存管理、产品配送、退货处理等业务逻辑, 可模拟从原材料
采购到产品制造, 再到产品零售的整个业务流程.
4.2 数据模型
区块链基准的数据模型是用于描述和组织区块链系统中数据的结构和关系的一种模型. 如图 4 所示, 数据模
型包括模式和数据集, 其中数据模式涵盖了区块链系统中的各种实体 (例如, 区块、交易、智能合约等) 的相互关
系, 定义了数据的存储和组织方式, 规定了如何通过交易和智能合约来访问和修改这些数据. 数据集是指用于基准
测试的数据集合, 它设定了基准测试的初始条件. 统一的数据集便于不同的区块链之间进行公平的评估. 本节将针
对区块链基准中的数据模式和数据集的设计进行分析.
数据模型
数据模式 数据集
区块内容 状态数据库 区块数据 状态数据
图 4 数据模型的组成
4.2.1 数据模式
区块链数据主要分为区块数据和状态数据, 区块数据包括了区块头的元数据和交易序列数据, 数据无法被篡
改. 状态数据记录了区块链上的世界状态, 状态数据可以被创建、更新和删除. 区块数据通常以文件形式存储, 而
状态数据则被持久化到数据库中. 因此区块链测试基准中的数据模型主要包括两部分: 区块内容的设置和状态数
据库的设置.
(1) 区块内容: 根据第 2 节中的介绍, 区块是一组交易的集合, 包含了区块头和交易列表. 不同的区块字段可能
影响区块的大小和事务处理的复杂度, 从而影响区块链的性能, 因此基准中需要说明对这部分字段的设置. 大多数
的区块链中, 区块头字段是由区块链协议规定的, 遵循特定的标准. 因此基准中一般不需要考虑区块头的设置.
交易字段的内容一般包括发送者地址、接收者地址、交易金额、签名、时间戳等基本信息. 此外, 大多数的
区块链中定义了一个数据字段用于存储自定义数据. 例如, Hyperledger Fabric 的交易数据字段 (payload) 可以自定
义与业务相关的数据, 如调用的智能合约名、合约的方法名、传入的参数列表、交易类型、交易 ID、交易的时
间戳等.
另外, 每个区块中包含的交易数量对区块上链的速度有重大的影响, 因此区块链基准中需要对上链数据和区
块的包含交易数量做明确的要求. 以供应链应用场景为例, 上链的数据至少应包括如下信息. ① 区块元数据: 区块
版本、前一个区块的哈希值、Merkle 树根哈希、区块高度等, 用于确保区块链的完整性和一致性. ② 权限信息:
发送者身份和签名、背书人身份和签名, 用于验证交易的合法性和安全性. ③ 交易数据: 商品的订单信息、生产

