Page 115 - 《软件学报》2026年第1期
P. 115

112                                                        软件学报  2026  年第  37  卷第  1  期


                 易和区块的完整性; 3) 兼容性: Merkle 树能够兼容传统的区块链架构和共识机制. 与                   Merkle 树相比, MPT  和  DAG
                 两种数据结构的使用相对较少, 这可能与其技术成熟度、应用场景受限以及开发难度等因素有关. 然而, MPT                                 不
                 仅能够高效验证数据完整性, 还能提供对数据的快速查找和更新功能. DAG                       具有高并发处理能力和高可扩展性,
                 能够支持大规模的分布式数据处理. 随着区块链软件的不断发展及对于软件性能的逐渐提升, 这两种类型的数据
                 结构使用量可能会逐渐增加.

                                             25    Merkle                 24
                                                   MPT
                                             20    DAG
                                             数量  15
                                             10                            9
                                              5                            7
                                              0
                                               2014  2015  2016  2017  2018  2019  2020  2021  2022  2023
                                                           年份
                                            图 8 国产区块链软件数据层数据结构统计

                  3.1.2    数据库
                    数据库作为区块链技术架构中的基础层, 负责对系统中的所有交易和数据记录进行持久化存储和管理. 为了
                 满足不同的应用需求和系统设计, 当前区块链系统使用的数据库类型呈现多样化发展. 根据数据库的类型和特性,
                 我们调查的国产区块链软件所使用的数据库可分为                  3  种类型, 即键值型数据库      (key-value database)、关系型数据
                 库  (relational database) 以及文档型数据库  (document database). 具体信息如表  3  所示.

                                           表 3 不同区块链软件数据库使用情况及分类

                   类别      数据库                                   区块链软件
                                  NEO [58] , 波场链 [30] , 万纳链 [59] , BubiChain [60] , 趣链 [61] , 天河链 [62] , FISCO BCOS [53] , 迅雷链 [63] , ONTology [64] ,
                          LevelDB  磁云数字区块链M0    [65] , 百度链 [66] , RepChain [67] , Chain33 [68] , PlatON [33] , 梧桐链  [69] , 唯链  [26] , 树图链 [70] , 华
                                  为链 [71] , IRITA [72] , 长安链 [36] , 文昌链 [73] , 泰安链 [51] , 武汉链 [74] , 海峡链 [75] , 安顺链 [50]
                         RocksDB [76]  NEO, FISCO BCOS, 星云链 [77] , 京东链 [78] , 蚂蚁链, 星火链 [54] , 华为链, CKB [31] , 延安链 [79] , 之江链 [80]
                  键值型     Redis [81]                         京东链, 至信链, Aelf [82]
                         BadgerDB [83]                          Chain33, 长安链
                          TiKV [84]                          京东链, 星火链, 长安链
                         PebbleDB [85]                        万纳链, BNB Chain [29]
                          MySQL                       天河链, FISCO BCOS, 华为链, 长安链, 泰安链
                  关系型      Oracle                               Mixin [86] , 泰安链
                          TDSQL [87]                               至信链
                         MongoDB [88]                         万纳链, 天河链, Mixin
                  文档型
                         CouchDB [89]                            Z-Ledger [90]

                    关系型数据库建立在关系模型的基础上, 采用二维表格的方式存储数据, 并通过行和列的形式组织数据, 确
                 保数据的一致性和完整性         [91] . 在所调查的区块链软件中, 常见的关系型数据库包括              MySQL、Oracle 和  TDSQL.
                 其中, TDSQL (Tencent distributed SQL) 是腾讯推出的一款兼容   MySQL  的分布式关系型数据库, 具有自主可控和
                 高一致性的特点. 与关系型数据库不同, 非关系型数据库在数据存储方式和数据关系的管理上有显著差异. 例如,
                 键值型数据库使用简单的键值对存储数据, 每个键唯一地映射到一个值, 这使得数据查找速度快, 并且适合分布式
                 存储和处理    [92] . 在所调查的国产区块链软件中, 使用了           6  种具体的键值型数据库, 分别是          Redis、LevelDB、
                 RocksDB、BadgerDB、TiKV  和  PebbleDB. 文档型数据库作为另一种非关系型数据库, 以文档为核心数据模型, 这
                 些文档以键值对的形式存储, 并可包含复杂的数据结构, 如数组和子文档                      [93] . 在所调查的国产区块链软件中, 常见
   110   111   112   113   114   115   116   117   118   119   120