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

彭泽顺 等: 面向跨地理区域联盟链的事务处理技术综述                                                       249


                 而言, 这些系统通常由发起分片保存原始交易 (如                Monoxide), 而其他分片保存涉及该分片的子交易 (如             relay
                 transaction). 由于子链保存的内容不相交, 存储开销较低. 但是, 这也会导致跨分片交易验证开销较高. 例如, 在分
                 片  B  验证区块时, 若存在分片     A  发起的跨分片     A, B  的交易 (原始交易保存在分片       A), 由于分片   B  仅保存了子交
                 易, 其需要向分片     A  请求原始交易验证, 查询开销较高. 在跨域场景下, 若跨分片交易数量较多或存储空间较少
                 (如  IoT  领域), 可以使用多子链的方式存储.
                    为了解决查询跨分片交易造成的高开销, CAPER              [28] 、SharPer [42] 等系统将账本存储为有向无环图 (DAG) 的形
                 式, 每个分片保存了所有涉及该分片的交易 (DAG              的子图), 跨分片交易能在所涉及的任意分片内均可查询, 查询
                 开销较低. 但是, 这样做也会导致跨分片交易在多个分片内保存有完整的副本, 增加了存储开销. 因此, 若跨域带宽
                 较为宝贵且跨分片查询请求较多, 可以考虑使用               DAG  的方式存储账本.
                    CAPER [28] 针对多应用协作设计, 每个应用负责保存该应用的本地交易和所有跨应用交易. 由于                        CAPER  的多
                 应用协作与跨分片提交协议相同, 本节接下来使用分片替代应用做说明. 在图                        13(a) 中, CAPER  将每个交易作为一
                 个区块, 4  个分片组成的     CAPER  区块链账本, t i, 表示跨分片事务, i 代表所属分片发起的事务顺序, j 代表跨分片的
                                                     j
                             f 23, 2  就是第  2、3  个分片发起的, 系统中第  2                                    t 15  为分
                 事务顺序, 例如                                       个跨分片事务, 需要由所有分片保存. 而交易
                 片  1  内第  5  个分片内交易, 仅由分片   1  保存. 交易间使用哈希指针连接, 用以确定交易间的执行顺序.

                             t 15   t 25   t 35  t 42  t 15       t 25      t 35      t 42
                                       t 34,3              t 34,3     t 34,3
                                                                            t 34,3        t 34,3
                                                       t 14       t 24
                             t 14   t 24   t 33
                                                                            t 33
                                                                  t 23,2
                                       t 23,2              t 23,2
                                                       t 13                               t 23,2
                                                                                t 23,2
                             t 13          t 32
                                    t 22
                                                                  t 22      t 32
                                                       t 12,1
                                t 12,1
                                                                      t 12,1    t 12,1
                                                                                          t 12,1
                                           t 31  t 41
                             t 11   t 21
                                                       t 11       t 21      t 31      t 41
                                    λ                   λ         λ          λ         λ
                                       (a)               (b)        (c)       (d)       (e)
                                                图 13 CAPER  的  DAG  账本结构

                    SharPer [42] 的账本结构和  CAPER  相似. 在  4  个数据分片组成的系统中, 每个集群也仅维护自己的账本视图, 每
                 个账本分片同样由片内事务和跨分片事务组成. 但是, 不像在                     CAPER  中跨分片交易需要在所有分片内存储,
                 SharPer 中的跨分片交易只需要在对应分片内保存, 涉及不同分片的交易可以并发执行. 例如, 在上述例子中,
                 SharPer 只需要分片  2、3  保存   t 23,2 , 其他分片无需存储  t 23,2 .
                  3.3   分片的放置
                    大多分片区块链 (如      Elastico、OmniLedger、RapidChain  等) 并未考虑分片数据的放置策略. 由于节点使用无
                 偏随机函数被划分到不同的分片, 当节点部署在多个数据中心时且每个数据中心内节点足够多时, 一个分片会在
                 所有数据中心内保存有副本. 此时, 分片内通信需要跨多个数据中心, 严重影响系统性能. 为了最小化分片内通信
                 的开销, 最理想的情况为让一个分片内的副本存储在相同数据中心. 因为数据中心内网络远高于数据中心间的网
                 络, 这样可以避免网络成为分片内通信的瓶颈.
                    基于上述思想, Saguaro   [96] 提出了一种树形结构用于边缘计算领域. 该结构分为              4  层, 最下层为边缘设备 (edge
                 device), 如传感器、车辆等. 在同一城市的边缘设备使用部署在相同城市的一组边缘服务器 (edge server) 管理, 这
                 组边缘服务器负责存储所管理的边缘设备数据. 类似地, 在每个省部署一组雾服务器 (fog server), 用于管理该省的
                 所有边缘服务器. 最后, 云服务器 (cloud server) 管理所有雾服务器. 这样, 区块链数据得以按照城市分片, 并且每个
                 分片放置在对应城市中, 用来最小化用户的访问时间和分片内共识时间. 同时, 为了在数据中心火灾等情况下分片
                 数据不丢失, 树中的非叶子节点延迟同步其叶节点的账本分片. 最后, Saguaro                  还支持动态迁移分片的记录 (即按照
   247   248   249   250   251   252   253   254   255   256   257