本申请涉及区块链领域,特别是涉及一种基于联盟链架构的动态分片处理方法、装置、联盟链架构、计算机设备及存储介质。
背景技术:
1、区块链技术通过多方参与来分散信任,激励或要求参与方采取正确的行动以维护分布式的账本,并有能力对参与方的不当行为进行审计。区块链技术广泛应用于web3应用、非同质化代币和去中心化金融等领域。
2、根据能够参与区块链系统的节点范围的不同,可以将区块链系统分为三类:(1)公有链,任何节点都可以参与;(2)联盟链,多个组织内的节点可以参与;(3)私有链,单个组织内的节点可以参与。公有链系统在国外比较流行,但由于缺乏有效的监管,不适合国内的应用场景。换言之,国内绝大多数的区块链系统都采用联盟链的形式进行部署。
3、现有技术中,由于区块链智能合约交易中的区块链账户没有固定的相关性趋势,根据区块链地址空间或其他信息进行静态分片往往会导致较高的跨分片交易率。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种基于联盟链架构的动态分片处理方法、装置、联盟链架构、计算机设备及存储介质。
2、第一方面,本发明实施例提出一种基于联盟链架构的动态分片处理方法,所述方法包括:
3、基于输入联盟链的历史交易数据,建模生成交易图;
4、对所述交易图中的点进行聚类分析,得到初始分类结果;
5、基于所述初始分类结果,对所述交易图中的点进行匹配,得到初始匹配结果;
6、以目标分片的数量为约束,以所有目标分片的理论吞吐量最大化为目标,对所述初始分配结果进行优化,输出所述交易图的分片策略。
7、在一实施例中,所述基于输入联盟链的历史交易数据,建模生成交易图包括:
8、将各交易关联的账户作为交易图的点;
9、在各交易关联的两个账户所对应的点之间添加边,并配置所述边的权重,生成所述交易图。
10、在一实施例中,所述对所述交易图中的点进行聚类分析,得到初始分类结果包括:
11、将所述交易图转换为稀疏矩阵表示形式,其中,两点间的权重表示所述交易图中两点间多条边的权重之和;
12、对所述交易图使用确定性社区发现算法进行预分析,得到所述交易图上每个点所属社区的标签;
13、将预分析得到的社区按工作量从大到小排序,将最大的k个社区加入到默认社区集合,剩余社区加入待优化集合。
14、在一实施例中,所述基于所述初始分类结果,对所述交易图中的点进行匹配,得到初始匹配结果包括:
15、遍历所述交易图上的边,将该边的权重加入到与第一权重和中;如果该边的第二点所属社区存在于默认社区集合,则将该边的权重加入到第二权重和中;如果该边属于自环边,则将该边的权重加入到第三权重和中;所述第一权重和为该边的第一点与所有点的权重和,所述第二权重和为该边的第一点分别与所述默认社区集合中的k个社区中所有点的权重和,所述第三权重和为该边的第一点的自环边权重和;
16、若该边的第一点所属社区不属于默认社区集合,则在该点与默认社区存在关联的情况下,将所述默认社区加入该点的候选社区集合中,若该点与默认社区不存在关联,则将候选社区集合设为默认社区集合;在该点所属候选社区集合中选取理论吞吐量增量最大的社区作为最优社区,并将该点分配到该最优社区,更新最优社区的工作量和极限吞吐量,并对该点的所有边更新第四权重和;所述第四权重和为该边的第二点与第一点所在最优社区中所有点的权重和;其中,所述理论吞吐量增量基于第一权重和、第二权重和、第三权重和所确定。
17、在一实施例中,所述以目标分片的数量为约束,以所有目标分片的理论吞吐量最大化为目标,对所述初始分配结果进行优化包括:
18、在一轮优化过程中,遍历所属候选社区集合非空的点,在该点所属候选社区集合中选取理论吞吐量增量最大的社区作为最优社区,在该点离开原社区所造成的理论吞吐量增量与该点加入所在最优社区所带来的理论吞吐量增量的吞吐量增量和大于0的情况下,将该点分配到该最优社区;
19、更新该点所在原社区及最优社区的工作量和极限吞吐量,并对该点的所有边更新第四权重和、第五权重和,所述第五权重和为该边的第二点与第一点所在原社区中所有点的权重和。
20、在一实施例中,所述以目标分片的数量为约束,以所有目标分片的理论吞吐量最大化为目标,对所述初始分配结果进行优化还包括:
21、在一轮优化结束后,若吞吐量增量和的累积量大于或等于优化精度,则继续下一轮的优化;反之,则结束优化。
22、第二方面,本发明实施例提出一种基于联盟链架构的动态分片处理装置,所述装置包括:
23、交易图生成模块,用于基于输入联盟链的历史交易数据,建模生成交易图;
24、聚类分析模块,用于对所述交易图中的点进行聚类分析,得到初始分类结果;
25、初始匹配模块,用于基于所述初始分类结果,对所述交易图中的点进行匹配,得到初始匹配结果;
26、优化模块,用于以目标分片的数量为约束,以所有目标分片的理论吞吐量最大化为目标,对所述初始分配结果进行优化,输出所述交易图的分片策略。
27、第三方面,本发明实施例提出一种联盟链架构,包括:
28、共识层,包括多个并行的共识组,各所述共识组包括多个worker节点和单个primary节点;
29、执行层,包括多个并行的执行节点,各所述执行节点用于执行共识层分发的交易;
30、存储层,包括多个数据库,各所述数据库用于存储历史交易数据,并提供各所述执行节点的读写访问接口
31、分片器,用于执行第一方面所述的方法。
32、第四方面,本发明实施例提出一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行第一方面所述的步骤。
33、第五方面,本发明实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的步骤。
34、相比于现有技术,上述方法、装置、系统和存储介质,通过基于输入联盟链的历史交易数据,建模生成交易图;对所述交易图中的点进行聚类分析,得到初始分类结果;基于所述初始分类结果,对所述交易图中的点进行匹配,得到初始匹配结果;以目标分片的数量为约束,以所有目标分片的理论吞吐量最大化为目标,对所述初始分配结果进行优化,输出所述交易图的分片策略。本发明对各目标分片的维护范围进行动态调整,以降低联盟链架构的跨分片交易率。
1.一种基于联盟链架构的动态分片处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于输入联盟链的历史交易数据,建模生成交易图包括:
3.根据权利要求1所述的方法,其特征在于,所述对所述交易图中的点进行聚类分析,得到初始分类结果包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述初始分类结果,对所述交易图中的点进行匹配,得到初始匹配结果包括:
5.根据权利要求1所述的方法,其特征在于,所述以目标分片的数量为约束,以所有目标分片的理论吞吐量最大化为目标,对所述初始分配结果进行优化包括:
6.根据权利要求1所述的方法,其特征在于,所述以目标分片的数量为约束,以所有目标分片的理论吞吐量最大化为目标,对所述初始分配结果进行优化还包括:
7.一种基于联盟链架构的动态分片处理装置,其特征在于,所述装置包括:
8.一种联盟链架构,其特征在于,包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求1至权利要求6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至权利要求6中任一项所述的方法的步骤。