一种基于区块链的时间混合队列分片系统与方法技术方案

技术编号:32349112 阅读:45 留言:0更新日期:2022-02-20 02:12
本发明专利技术公开了一种基于区块链的时间混合队列分片系统,包括:区块链,具有多个区块,区块生成周期内生成的一个区块中包含一个强领导者节点和若干个弱领导节点;初步分片模块,用于将多个节点初步分为多组不同的预分片;计算模块,用于计算将所有节点划分为预定数量的预分片的分配时间以及多个预分片之间的通讯时间总和;以及时间混合队列分片模块,用于判断多个预分片之间的通讯时间总和是否满足最小,如果满足,则当前预分片为最终时间混合队列分片,否则在第一一阈值的时间内将所有节点重新划分为预定数量的新的预分片并重新判定多个新的预分片之间的通讯时间总和是否满足最小。还提供了分片方法、电子设备以及计算机可读存储介质。可读存储介质。可读存储介质。

【技术实现步骤摘要】
一种基于区块链的时间混合队列分片系统与方法


[0001]本专利技术属于区块链
,尤其涉及一种基于区块链的时间混合队列分片系统与方法。

技术介绍

[0002]区块链是一个分布式的共享数据库,具有不可篡改、全程留痕、可以追溯、集体维护的特点。区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题,这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础,从而产生丰富的应用场景。
[0003]随着区块链技术的发展,区块链技术在金融、溯源、供应链、存证、电子政务等诸多场景有一批应用落地,相关技术如分布式存储、智能合约、加密算法等关键技术不断取得新进展。然而,区块链技术的性能和可扩展性仍然是限制区块链技术大规模应用的关键,例如,比特币区块链系统目前每秒只能处理约7笔交易,显然现有比特币区块链系统的吞吐量无法承载全球市场的交易量,主流的支付平台Visa的每秒交易量能实现2000笔/秒,峰值达到56000笔/秒的交易处理速度。如何提升进一步提升区块链系统的性能和可扩展性成为亟需解决的技术问题。
[0004]分片技术最早是在传统的数据库领域里面提出的,主要用于大型商业数据库的优化。其概念就是将大型数据库中的数据划分成很多数据分片(shard),再将这些数据分片分别存放在不同的服务器中,以减小每个服务器的数据访问压力,从而提高整个数据库系统的性能。简单来说,分而治之是分片技术的核心思想。
[0005]把分片技术运用到区块链网络中的思想是将拥有许多节点的区块链网络划分成若干个子网络,每个子网络中包含一部分节点,也就是一个“分片”(shard)。同时网络中的交易也会被划分到不同的“分片”中去处理,这样每个节点只需要处理一小部分传入的交易,不同的节点可以并行处理交易,即可增加交易处理和验证的并发度,从而提升整个网络的吞吐量。
[0006]分片技术根据不同的分片机制可以划分为三种:网络分片(network sharding),交易分片(transaction sharding),状态分片(state sharding)。
[0007]1)网络分片网络分片是最基础的一种分片方式,就是将整个区块链网络划分成多个子网络,也就是一个分片。网络中的所有分片并行处理网络中不同的交易。这里主要涉及到的问题是哪些节点应该被分配到哪些分片当中。
[0008]2)交易分片交易分片主要涉及的问题是哪些交易应该按照特定的属性被分配到哪些碎片当中。一笔交易可能由多个输入和多个输出构成,我们没有办法按照地址进行交易分片来有效地避免双花问题。比较直观的交易分片方式是按照交易的hash值最后几位进行分片。
[0009]3)状态分片状态分片的关键是将整个存储区分开,让不同的分片存储不同的部分,每个节点
只负责托管自己的分片数据,而不是存储完整的区块链状态。状态分片可以减少状态的冗余存储,使得整个区块链网络具有存储的可扩展性。在账户型系统中,状态分片是按照账户的地址进行分片的,并且一个特定的分片只会保留一部分状态,而不像是交易分片那样每个节点都保存整个网络中的所有状态。
[0010]总的来说,分片技术虽然是目前区块链用来解决效率问题与可扩展性问题的主流技术之一,然而其应用存在如下技术问题:(1)因为该技术源于传统互联网数据库,致使这个方案无法直接应用在去中心化的区块链上,需要解决一致性、安全性问题,落地并成熟应用相对比较困难。
[0011](2)传统的分片技术往往单一的采用网络分片,交易分片,状态分片等分片模式,不同分片之间往往存在数据交互困难,数据一致性交叉等问题,而且随着节点和分片数量的增多,系统的性能下降,分片的可扩展性严重依赖于上层主节点的性能。

技术实现思路

[0012]本专利技术的目的是提供一种基于区块链的时间混合队列分片系统与方法,通过两层级领导节点结构,由强领导节点根据通讯时间队列对节点进行分片,实现分片内部局部最优的时间通讯效率,提升节点之间传递消息的速度。强领导节点负责搜集交易并提议新的区块,弱领导节点负责接收强领导节点的消息并且转发到分片中,在保证数据一致性的同时,充分利用的强领导节点和弱领导节点的带宽与CPU计算性能,提升了系统的可扩展性。
[0013]本专利技术一方面提供了一种基于区块链的时间混合队列分片系统,包括:区块链,具有多个区块,所述区块生成周期内生成的一个区块中包含一个强领导者节点和若干个弱领导节点;初步分片模块,用于将所述多个节点初步分为多组不同的预分片,所述预分片为指定所述强领导者节点后将所述区块链的除所述强领导者节点以外的所有节点进行划分获得,每组所述预分片包含多个叶子节点和一个所述弱领导节点,不同组的所述预分片所包含的节点没有交集,每组预分片内的节点数量至少大于或等于所有节点的数量与组数量之比;计算模块,用于计算将所有节点划分为预定数量的预分片的分配时间以及多个所述预分片之间的通讯时间总和,其中对于预定数量的预分片,所述分配时间小于第一阈值,且所有预分片的通讯时间总和最小;以及时间混合队列分片模块,用于判断多个所述预分片之间的通讯时间总和是否满足最小,如果满足,则当前预分片为最终时间混合队列分片,否则在所述第一一阈值的时间内将所有节点重新划分为预定数量的新的预分片并重新判定多个所述新的预分片之间的通讯时间总和是否满足最小。
[0014]优选的,还包括数据共识模块,用于进行所述预分片之间的数据共识。
[0015]优选的,所述强领导者节点与所述弱领导者节点直接通讯从而实现与不同所述预分片的交互,所述强领导节点搜集并验证来自所述弱领导节点的消息的部分门限签名,并搜集所述弱领导者节点发送的分片内交易信息用以合成区块。
[0016]优选的,所述预分片内的所述弱领导者节点与所述叶子节点通讯,搜集所述叶子节点的交易,并将所述强领导节点发送的消息转发给所述叶子节点。
[0017]本专利技术第二方面提供了一种基于区块链的时间混合队列分片方法,包括:步骤1,初始化分片队列,包括:设置所述区块链内尚未分配的节点集合S
N
,其中所述节点集合S
N
包含所有尚未分配的节点,分片队列Q为空;步骤2,基于所述所有尚未分配的节点确定所述区块的一个强领导节点、遍历通讯时间矩阵和若干个弱领导节点,包括:设置所述强领导者节点为N
p
后,遍历通讯时间矩阵,选取通讯时间d
(p,q)
最短的k个节点作为弱领导节点 < N1,N2,

,N
k >,其中所述通讯时间矩阵内存储各个节点之间的往返通讯时间;步骤3,基于所述弱领导节点以及所述通讯时间确定所述分片队列Q,包括:将所述k个节点从所述尚未分配的节点集合S
N
中移除,并将所述k个节点按照通讯时间d
(p,q)
升序,依次加入所述分片队列Q中,其中所述分片队列Q中的元素q
n
=<path
n
,distance
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的时间混合队列分片系统,包括:区块链,具有多个区块,所述区块生成周期内生成的一个区块中包含一个强领导者节点和若干个弱领导节点;初步分片模块,用于将所述多个节点初步分为多组不同的预分片,所述预分片为指定所述强领导者节点后将所述区块链的除所述强领导者节点以外的所有节点进行划分获得,每组所述预分片包含多个叶子节点和一个所述弱领导节点,不同组的所述预分片所包含的节点没有交集,每组预分片内的节点数量至少大于或等于所有节点的数量与组数量之比;计算模块,用于计算将所有节点划分为预定数量的预分片的分配时间以及多个所述预分片之间的通讯时间总和,其中对于所述预定数量的预分片,所述分配时间小于第一阈值,且所有预分片的通讯时间总和最小;以及时间混合队列分片模块,用于判断多个所述预分片之间的通讯时间总和是否满足最小,如果满足,则当前预分片为最终时间混合队列分片,否则在所述第一阈值的时间内将所有节点重新划分为预定数量的新的预分片并重新判定多个所述新的预分片之间的通讯时间总和是否满足最小。2.根据权利要求1所述的一种基于区块链的时间混合队列分片系统,其特征在于,还包括数据共识模块,用于进行所述预分片之间的数据共识。3.根据权利要求1所述的一种基于区块链的时间混合队列分片系统,其特征在于,所述强领导者节点与所述弱领导者节点直接通讯从而实现与不同所述预分片的交互,所述强领导节点搜集并验证来自所述弱领导节点的消息的部分门限签名,并搜集所述弱领导者节点发送的分片内交易信息用以合成区块。4.根据权利要求3所述的一种基于区块链的时间混合队列分片系统,其特征在于,所述预分片内的所述弱领导者节点与所述叶子节点通讯,搜集所述叶子节点的交易,并将所述强领导节点发送的消息转发给所述叶子节点。5.一种基于区块链的时间混合队列分片系统的分片方法,应用于根据权利要求1

4任一所述的一种基于区块链的时间混合队列分片系统,其特征在于,包括:步骤1,初始化分片队列,包括:设置所述区块链内尚未分配的节点集合S
N
,其中所述节点集合S
N
包含所有尚未分配的节点,分片队列Q为空;步骤2,基于所述所有尚未分配的节点确定所述区块的一个强领导节点、遍历通讯时间矩阵和若干个弱领导节点,包括:设置所述强领导者节点为N
p
后,遍历通讯时间矩阵,选取通讯时间d
(p,q)
最短的k个节点作为弱领导节点 < N1,N2,

,N
k >,其中所述通讯时间矩阵内存储各个节点之间的往返通讯时间;步骤3,基于所述弱领导节点以及所述通讯时间确定所述分片队列Q,包括:将所述k个节点从所述尚未分配的节点集合S
N
中移除,并将所述k个节点按照通讯时间d
(p,q)
升序,依次加入所述分片队列Q中,其中所述分片队列Q中的元素q
n
=<path
n
,distance
n
>分别记录节点路径与通讯时间;若初始情况下与所述强领导节点N
p
通讯时间最短的k个节点按照通讯时间升序排列为<N1,N2,

,N
k
>,则初始情况下所述分片队列Q可以表示为:Q={q1=<N1,d
(1,p)
>,q2=<N2,d
(2,p)
>,

, q
k
=<N
k
,d
(k,p)
>,q
n
=<path
n
,distance
n
>};步骤4,所述分片队列Q非空时,所述强领导节点N
p
依次确定队首依次出队元素的节点路径path
n
,并根据path
n
中包含的节点数量和所述节点的种类,形成基于区块链的时间混合队
列分片。6.根据权利要求5所述的分片方法,其特征在于,所述步骤4包...

【专利技术属性】
技术研发人员:任旖航
申请(专利权)人:天津眧合数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1