面向区块链分片系统的热点外部账户拆分处理方法和装置

摘要: 本技术属于区块链,更具体地,涉及一种面向区块链分片系统的热点外部账户拆分处理方法和装置。背景技术:1、区块链分片系统通常通过将全局账户状态划分到多个交易分片中进...
面向区块链分片系统的热点外部账户拆分处理方法和装置

本技术属于区块链,更具体地,涉及一种面向区块链分片系统的热点外部账户拆分处理方法和装置。

背景技术:

1、区块链分片系统通常通过将全局账户状态划分到多个交易分片中进行维护,以提高系统并行处理能力和整体吞吐能力。在状态分片系统中,不同交易分片之间通常处于逻辑隔离状态,当一笔交易的发送方账户和接收方账户位于不同交易分片时,需要通过跨分片通信、状态证明验证以及跨片确认机制完成交易处理。因此,在真实链上负载下,跨分片交易频发和分片负载失衡容易成为限制分片系统性能提升的重要因素。

2、进一步地,链上账户活跃度通常呈现明显的长尾分布,少量热点账户可能关联大量交易负载。热点账户中又包括外部账户和合约账户。外部账户通常由私钥控制并主动发起交易,其账户状态相对简单,主要包括余额、交易计数等信息;合约账户则通常包括合约代码和复杂存储状态。对于高频发起交易且交易对象分布较广的热点外部账户,若仍采用单账户单分片归属方式,则该热点外部账户相关交易容易集中路由至单一交易分片,或者频繁触发跨分片交易,从而导致局部过热和跨分片交易比例升高。

3、现有分片策略通常要求单个账户状态仅归属于唯一交易分片,难以充分利用热点外部账户状态结构简单、可拆分性较强的特点。若直接将热点外部账户部署到多个交易分片,又会引入余额状态隔离、代理状态一致性、交易重复执行、防重放以及资产重分配等问题。因此,如何在保证账户余额一致性和交易执行一致性的前提下,实现热点外部账户的多分片代理状态维护,从而降低热点外部账户相关跨分片交易比例从而分散局部热点压力,成为区块链分片技术中需要解决的技术问题。

技术实现思路

1、针对现有技术的以上缺陷或改进需求,本技术提供了一种面向区块链分片系统的热点外部账户拆分处理方法和装置,用于解决现有技术无法在保证账户余额一致性和交易唯一执行性的前提下降低分散局部热点压力的技术问题。

2、为实现上述目的,按照本技术的一个方面,提供了一种面向区块链分片系统的热点外部账户拆分处理方法,包括:

3、s1:确定当前热点处理周期对应的热点外部账户;

4、s2:构建所述热点外部账户对应的目标驻留分片集合;

5、s3:在所述目标驻留分片集合中的各目标驻留分片中分别建立所述热点外部账户的代理状态,将所述热点外部账户的总余额拆分为各代理状态对应的局部余额;为所述热点外部账户维护全局请求计数,并为各所述代理状态分别维护对应目标驻留分片内的局部执行计数;

6、s4:针对所述热点外部账户涉及的目标交易,根据预设确定性路由规则确定唯一目标执行分片,并在所述目标执行分片中执行所述目标交易;

7、s5:在所述热点处理周期的运行过程中,检测各代理状态是否满足资产重分配条件;若满足则基于各代理状态对应的局部余额,执行所述热点外部账户对应的代理状态之间的资产重分配;

8、s6:在当前热点处理周期结束后且下一热点处理周期的账户拓扑生效之前,检测是否需要对所述热点外部账户进行账户合并;若需要则依据所述全局请求计数和所述局部执行计数进行账户合并,再返回s1,执行s1-s6实现下一热点处理周期的热点外部账户拆分处理;反之,则维持所述热点外部账户的拆分状态并返回s4,执行s4-s6实现下一热点处理周期的交易执行、资源重分配和账户整合。

9、进一步地,所述s1包括:

10、汇总所述当前热点处理周期对应的交易采样窗口内的活跃账户;对所述活跃账户进行类型判定,以区分外部账户和合约账户;剔除所述外部账户中总余额低于预设余额阈值的账户,将剩余外部账户确定为待选账户;

11、分别对各待选账户对应的交易数量、累计执行成本、跨分片贡献和交互广度进行归一化处理;再利用公式对归一化后的交易数量、累计执行成本、跨分片贡献和交互广度进行加权融合,得到各待选账户对应的第一评分;、、和分别为、、和各自对应的非负权重,且各权重之和为1;

12、将所述第一评分大于第一阈值的外部账户作为所述热点外部账户。

13、进一步地,所述s2包括:

14、对于每一热点外部账户,统计其在交易采样窗口内与各交易分片中的对等账户数量以及交易强度;分别对各交易分片对应的对等账户数量和交易强度进行归一化处理;

15、利用公式对归一化后的对等账户数量和交易强度进行加权融合,得到各交易分片相对于所述热点外部账户的第二评分,其中,和为和对应的非负权重,且二者之和为1;

16、将第二评分大于或等于第二阈值的交易分片纳入所述热点外部账户对应的目标驻留分片集合。

17、进一步地,所述根据预设确定性路由规则确定唯一目标执行分片,包括:

18、当交易双方中一方为所述热点外部账户且另一方为普通账户时,将所述目标交易路由至所述普通账户所在的交易分片执行;

19、当交易双方均为已拆分的热点外部账户时,确定交易双方对应的目标驻留分片集合的交集,得到候选执行分片集合;

20、若所述候选执行分片集合非空,则根据当前生效的账户拓扑版本号、交易双方的账户标识以及发送方请求序号计算确定性哈希值,并根据所述确定性哈希值从所述候选执行分片集合中选择一个交易分片作为目标执行分片;

21、若所述候选执行分片集合为空,则通过预设跨分片交易处理机制执行所述目标交易。

22、进一步地,所述资产重分配条件包括局部余额不足和资产分布失衡;所述资产重分配包括周期性资产平衡和即时资产迁移;

23、所述周期性资产平衡,用于在当前热点处理周期边界对各代理状态对应交易分片的资产分布情况进行评估,当评估结果表示标识资产分布失衡时,对各代理状态之间的资产进行重新分配;

24、所述即时资产迁移,用于在部分代理状态所在交易分片出现局部余额不足时,将所述热点外部账户的部分资产从源代理状态迁移至目标代理状态。

25、进一步地,所述资产重分配,包括:

26、根据各代理状态对应交易分片的历史交易需求,确定各代理状态对应的目标局部余额;根据各代理状态的当前局部余额与目标局部余额之间的差值,分别确定局部余额缺口和可转出余额;

27、当至少一个代理状态存在局部余额缺口,或者根据当前局部余额与目标局部余额计算得到的资产分布不平衡度大于或等于预设不平衡阈值时,确定满足可转出余额条件的源代理状态和存在局部余额缺口的目标代理状态;

28、根据所述源代理状态的可转出余额和所述目标代理状态的局部余额缺口确定资产迁移量,并生成包括热点外部账户标识、源交易分片标识、目标交易分片标识、资产迁移量和状态版本号的资产重分配指令;

29、根据所述资产重分配指令,将对应资产从源代理状态迁移至目标代理状态。

30、进一步地,所述执行账户合并包括:

31、根据所述热点外部账户与各交易分片的历史交互强度、各代理状态的局部余额以及状态迁移开销,从所述目标驻留分片集合中确定目标承载交易分片;

32、暂停各代理状态接收新的待执行交易,并等待已受理交易执行完成;

33、对各代理状态对应的局部余额进行汇总,得到所述热点外部账户的总余额;

34、在所述目标承载交易分片中写入包括所述总余额和合并后执行计数的单一账户状态;

35、将除所述目标承载交易分片之外的其他交易分片中的代理状态标记为失效状态或者删除,并更新所述分片存在向量;以使所述热点外部账户由多分片代理状态恢复为由所述目标承载交易分片维护的单一可执行账户状态。

36、按照本技术的另一方面,提供了一种面向区块链分片系统的热点外部账户拆分处理装置,包括:

37、账户确定模块,用于确定当前热点处理周期对应的热点外部账户;

38、集合构建模块,用于构建所述热点外部账户对应的目标驻留分片集合;

39、状态建立模块,用于在所述目标驻留分片集合中的各目标驻留分片中分别建立所述热点外部账户的代理状态,将所述热点外部账户的总余额拆分为各代理状态对应的局部余额;为所述热点外部账户维护全局请求计数,并为各所述代理状态分别维护对应目标驻留分片内的局部执行计数;

40、交易执行模块,用于针对所述热点外部账户涉及的目标交易,根据预设确定性路由规则确定唯一目标执行分片,并在所述目标执行分片中执行所述目标交易;

41、重分配模块,用于在所述热点处理周期的运行过程中,检测各代理状态是否满足资产重分配条件;若满足则基于各代理状态对应的局部余额,执行所述热点外部账户对应的代理状态之间的资产重分配;

42、账户整合模块,用于在当前热点处理周期结束后且下一热点处理周期的账户拓扑生效之前,检测是否需要对所述热点外部账户进行账户合并;若需要则依据所述全局请求计数和所述局部执行计数进行账户合并,再返回账户确定模块实现下一热点处理周期的热点外部账户拆分处理;反之,则维持所述热点外部账户的拆分状态并返回交易执行模块,从而实现下一热点处理周期的交易执行、资源重分配和账户整合。

43、按照本技术的另一方面,提供了一种区块链分片系统,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述的热点外部账户拆分处理方法的步骤。

44、按照本技术的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现所述的热点外部账户拆分处理方法的步骤。

45、总体而言,通过本技术所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

46、(1)本发明提供一种面向区块链分片系统的热点外部账户拆分处理方法,仅针对满足热点条件且适合拆分的热点外部账户建立多分片代理状态;能够在控制系统维护开销的同时,将热点外部账户相关的部分跨分片交易转化为片内交易,从而降低跨分片交易比例。通过将热点外部账户的代理状态分布到多个交易分片中,使热点外部账户相关负载被分散处理,缓解单一交易分片因热点账户集中访问而产生的局部过热问题;结合全局请求计数、局部执行计数、确定性路由和资产重分配机制,在保证账户余额一致性和交易唯一执行性的前提下,降低热点外部账户相关交易的跨分片执行比例,从而降低分散局部热点压力。

47、(2)本方案对归一化后的交易数量、累计执行成本、跨分片贡献和交互广度进行加权融合,得到各待选账户对应的第一评分;将所述第一评分大于第一阈值的外部账户作为所述热点外部账户。如此设计,考虑到账户活跃度、执行资源消耗、跨分片交易影响以及交互范围对分片系统负载的共同作用,能够避免仅依据单一交易数量误判热点账户,提升热点外部账户识别的准确性;同时仅对满足热点条件的外部账户执行拆分处理,能够减少不必要的代理状态维护开销。

48、(3)本方案对归一化后的对等账户数量和交易强度进行加权融合,得到各交易分片相对于所述热点外部账户的第二评分,将第二评分大于或等于第二阈值的交易分片纳入所述热点外部账户对应的目标驻留分片集合。如此设计,考虑到热点外部账户与不同交易分片之间的历史交互差异,能够将代理状态优先部署到交互需求更高的交易分片中,使热点外部账户相关交易更可能在目标驻留分片内完成,从而减少跨分片交易比例,并避免在低交互分片中建立无效代理状态。

49、(4)本方案在交易双方均为已拆分的热点外部账户时,先确定交易双方目标驻留分片集合的交集,得到候选执行分片集合;当候选执行分片集合非空时,再根据当前生效的账户拓扑版本号、交易双方账户标识以及发送方请求序号计算确定性哈希值,并据此从候选执行分片集合中选择唯一目标执行分片。如此设计,考虑到多个代理状态并存时同一交易可能被多个交易分片重复接收的问题,能够保证各节点在相同输入下计算得到一致的目标执行分片,从而实现交易唯一执行,并降低重复执行和状态不一致风险。

50、(5)本方案所述资产重分配条件包括局部余额不足和资产分布失衡;所述资产重分配包括周期性资产平衡和即时资产迁移。如此设计,考虑到热点外部账户的总余额被拆分到多个代理状态后,不同交易分片上的交易需求可能随时间变化,能够通过周期性资产平衡对整体资产分布进行调整,并通过即时资产迁移响应局部余额不足问题,从而在保持总余额守恒的前提下,提高各代理状态的局部余额可用性和交易连续性。

51、(6)本方案生成包括热点外部账户标识、源交易分片标识、目标交易分片标识、资产迁移量和状态版本号的资产重分配指令,进而据此将对应资产从源代理状态迁移至目标代理状态;如此设计,考虑到多分片代理状态下资产迁移需要明确迁移对象、迁移方向、迁移金额和状态版本,能够使源交易分片和目标交易分片基于同一指令执行状态更新,降低重复迁移、错误迁移和版本不一致风险,从而提高资产重分配过程的可验证性和一致性。

52、(7)本方案根据所述热点外部账户与各交易分片的历史交互强度、各代理状态的局部余额以及状态迁移开销,从所述目标驻留分片集合中确定目标承载交易分片;在所述目标承载交易分片中写入包括所述总余额和合并后执行计数的单一账户状态;如此设计,考虑到热点外部账户热度下降后继续维护多个代理状态会增加系统开销,能够在保证各代理状态局部余额汇总一致的前提下,将热点外部账户由多分片代理状态恢复为单一可执行账户状态,从而降低代理状态维护成本,并形成热点账户拆分、运行、重分配和合并退出的完整生命周期。