CN114064329B - 一种基于区块链的时间混合队列分片系统与方法 - Google Patents
一种基于区块链的时间混合队列分片系统与方法 Download PDFInfo
- Publication number
- CN114064329B CN114064329B CN202210024145.XA CN202210024145A CN114064329B CN 114064329 B CN114064329 B CN 114064329B CN 202210024145 A CN202210024145 A CN 202210024145A CN 114064329 B CN114064329 B CN 114064329B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- queue
- time
- fragments
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于区块链的时间混合队列分片系统,包括:区块链,具有多个区块,区块生成周期内生成的一个区块中包含一个强领导者节点和若干个弱领导节点;初步分片模块,用于将多个节点初步分为多组不同的预分片;计算模块,用于计算将所有节点划分为预定数量的预分片的分配时间以及多个预分片之间的通讯时间总和;以及时间混合队列分片模块,用于判断多个预分片之间的通讯时间总和是否满足最小,如果满足,则当前预分片为最终时间混合队列分片,否则在第一一阈值的时间内将所有节点重新划分为预定数量的新的预分片并重新判定多个新的预分片之间的通讯时间总和是否满足最小。还提供了分片方法、电子设备以及计算机可读存储介质。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种基于区块链的时间混合队列分片系统与方法。
背景技术
区块链是一个分布式的共享数据库,具有不可篡改、全程留痕、可以追溯、集体维护的特点。区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题,这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础,从而产生丰富的应用场景。
随着区块链技术的发展,区块链技术在金融、溯源、供应链、存证、电子政务等诸多场景有一批应用落地,相关技术如分布式存储、智能合约、加密算法等关键技术不断取得新进展。然而,区块链技术的性能和可扩展性仍然是限制区块链技术大规模应用的关键,例如,比特币区块链系统目前每秒只能处理约7笔交易,显然现有比特币区块链系统的吞吐量无法承载全球市场的交易量,主流的支付平台Visa的每秒交易量能实现2000笔/秒,峰值达到56000笔/秒的交易处理速度。如何提升进一步提升区块链系统的性能和可扩展性成为亟需解决的技术问题。
分片技术最早是在传统的数据库领域里面提出的,主要用于大型商业数据库的优化。其概念就是将大型数据库中的数据划分成很多数据分片(shard),再将这些数据分片分别存放在不同的服务器中,以减小每个服务器的数据访问压力,从而提高整个数据库系统的性能。简单来说,分而治之是分片技术的核心思想。
把分片技术运用到区块链网络中的思想是将拥有许多节点的区块链网络划分成若干个子网络,每个子网络中包含一部分节点,也就是一个“分片”(shard)。同时网络中的交易也会被划分到不同的“分片”中去处理,这样每个节点只需要处理一小部分传入的交易,不同的节点可以并行处理交易,即可增加交易处理和验证的并发度,从而提升整个网络的吞吐量。
分片技术根据不同的分片机制可以划分为三种:网络分片(network sharding),交易分片(transaction sharding),状态分片(state sharding)。
1)网络分片
网络分片是最基础的一种分片方式,就是将整个区块链网络划分成多个子网络,也就是一个分片。网络中的所有分片并行处理网络中不同的交易。这里主要涉及到的问题是哪些节点应该被分配到哪些分片当中。
2)交易分片
交易分片主要涉及的问题是哪些交易应该按照特定的属性被分配到哪些碎片当中。一笔交易可能由多个输入和多个输出构成,我们没有办法按照地址进行交易分片来有效地避免双花问题。比较直观的交易分片方式是按照交易的hash值最后几位进行分片。
3)状态分片
状态分片的关键是将整个存储区分开,让不同的分片存储不同的部分,每个节点只负责托管自己的分片数据,而不是存储完整的区块链状态。状态分片可以减少状态的冗余存储,使得整个区块链网络具有存储的可扩展性。在账户型系统中,状态分片是按照账户的地址进行分片的,并且一个特定的分片只会保留一部分状态,而不像是交易分片那样每个节点都保存整个网络中的所有状态。
总的来说,分片技术虽然是目前区块链用来解决效率问题与可扩展性问题的主流技术之一,然而其应用存在如下技术问题:
(1)因为该技术源于传统互联网数据库,致使这个方案无法直接应用在去中心化的区块链上,需要解决一致性、安全性问题,落地并成熟应用相对比较困难。
(2)传统的分片技术往往单一的采用网络分片,交易分片,状态分片等分片模式,不同分片之间往往存在数据交互困难,数据一致性交叉等问题,而且随着节点和分片数量的增多,系统的性能下降,分片的可扩展性严重依赖于上层主节点的性能。
发明内容
本发明的目的是提供一种基于区块链的时间混合队列分片系统与方法,通过两层级领导节点结构,由强领导节点根据通讯时间队列对节点进行分片,实现分片内部局部最优的时间通讯效率,提升节点之间传递消息的速度。强领导节点负责搜集交易并提议新的区块,弱领导节点负责接收强领导节点的消息并且转发到分片中,在保证数据一致性的同时,充分利用的强领导节点和弱领导节点的带宽与CPU计算性能,提升了系统的可扩展性。
本发明一方面提供了一种基于区块链的时间混合队列分片系统,包括:
区块链,具有多个区块,所述区块生成周期内生成的一个区块中包含一个强领导者节点和若干个弱领导节点;
初步分片模块,用于将所述多个节点初步分为多组不同的预分片,所述预分片为指定所述强领导者节点后将所述区块链的除所述强领导者节点以外的所有节点进行划分获得,每组所述预分片包含多个叶子节点和一个所述弱领导节点,不同组的所述预分片所包含的节点没有交集,每组预分片内的节点数量至少大于或等于所有节点的数量与组数量之比;
计算模块,用于计算将所有节点划分为预定数量的预分片的分配时间以及多个所述预分片之间的通讯时间总和,其中对于预定数量的预分片,所述分配时间小于第一阈值,且所有预分片的通讯时间总和最小;以及
时间混合队列分片模块,用于判断多个所述预分片之间的通讯时间总和是否满足最小,如果满足,则当前预分片为最终时间混合队列分片,否则在所述第一一阈值的时间内将所有节点重新划分为预定数量的新的预分片并重新判定多个所述新的预分片之间的通讯时间总和是否满足最小。
优选的,还包括数据共识模块,用于进行所述预分片之间的数据共识。
优选的,所述强领导者节点与所述弱领导者节点直接通讯从而实现与不同所述预分片的交互,所述强领导节点搜集并验证来自所述弱领导节点的消息的部分门限签名,并搜集所述弱领导者节点发送的分片内交易信息用以合成区块。
优选的,所述预分片内的所述弱领导者节点与所述叶子节点通讯,搜集所述叶子节点的交易,并将所述强领导节点发送的消息转发给所述叶子节点。
本发明第二方面提供了一种基于区块链的时间混合队列分片方法,包括:
步骤1,初始化分片队列,包括:设置所述区块链内尚未分配的节点集合SN,其中所述节点集合SN包含所有尚未分配的节点,分片队列Q为空;
步骤2,基于所述所有尚未分配的节点确定所述区块的一个强领导节点、遍历通讯时间矩阵和若干个弱领导节点,包括:设置所述强领导者节点为Np后,遍历通讯时间矩阵,选取通讯时间d(p,q)最短的k个节点作为弱领导节点 < N1,N2,…,Nk >,其中所述通讯时间矩阵内存储各个节点之间的往返通讯时间;
步骤3,基于所述弱领导节点以及所述通讯时间确定所述分片队列Q,包括:将所述k个节点从所述尚未分配的节点集合SN中移除,并将所述k个节点按照通讯时间d(p,q)升序,依次加入所述分片队列Q中,其中所述分片队列Q中的元素qn=<pathn,distancen>分别记录节点路径与通讯时间;若初始情况下与所述强领导节点Np通讯时间最短的k个节点按照通讯时间升序排列为<N1,N2,…,Nk>,则初始情况下所述分片队列Q可以表示为:
Q={q1=<N1,d(1,p)>,q2=<N2,d(2,p)>,…, qk=<Nk,d(k,p)>,qn=<pathn,distancen>};
步骤4,所述分片队列Q非空时,所述强领导节点Np依次确定队首依次出队元素的节点路径pathn,并根据pathn中包含的节点数量和所述节点的种类,形成基于区块链的时间混合队列分片。
优选的,所述步骤4包括三种情况:
(1)如果队首出队元素的节点路径pathn中仅包含一个节点Nk时,则pathn中仅包含候选的弱领导节点,并不是有效的叶子节点通讯路径;节点Nk选择与节点Nk节点通讯时间d(k,q)最短的节点Nq,判断节点Nq是否包含在节点集合SN中;如果满足,则节点Nq尚未被分配到某一分片中,此时,更新节点路径和通讯时间形成新的队列元素<Nk+Nq,d(p,k)+d(k,q)>,并按照通讯时间升序插入到所述分片队列Q中,形成基于区块链的时间混合队列分片;
(2)如果队首出队元素的节点路径pathn中包含两个节点,分别为节点Nk和节点Nq,其中节点Nk表示候选弱领导节点,节点Nq表示和节点Nk通讯时间距离最短的节点,且节点Nq包含在节点集合SN中,则混合通讯时间队列中,节点Nk与节点Nq的通讯时间最小,且节点Nq尚未被分配;将节点Nq从节点集合SN中移除,并将节点Nq分配到所述候选弱领导节点Nk负责的分片中,此时,判断Nk节点对应的分片中节点的数量,如果分片内节点个数不超过┌n/k┐,则所述分片内节点数量还没有达到最大值,节点Nk选取节点集合SN中距离自身的通讯时间d(k,m))最小的节点Nm,形成新的队列元素<Nk+Nm,d(i,k)+d(k,m)>重新加入到所述分片队列Q中,形成基于区块链的时间混合队列分片;
(3) 如果队首出队元素的节点路径pathn中包含两个节点,分别为节点Nk和节点Nq,其中节点Nk表示候选弱领导节点,节点Nq表示和Nk节点通讯时间距离最短的节点,但是节点Nq未包含在节点集合SN中,则节点Nq已经被分配到另一个分片中,将该元素从队列中删除;此时,判断节点Nk对应的分片中节点的数量,如果分片内节点个数不超过┌n/k┐,则该分片内节点数量还没有达到最大值;节点Nk选取节点集合SN中距离自身的通讯时间d(k,m)最小的节点Nm,形成新的队列元素<Nk+Nm,d(i,k)+d(k,m)>重新加入到所述分片队列Q中,形成基于区块链的时间混合队列分片。
本发明第三方面提供了一种基于区块链的时间混合队列分片系统的通讯方法,包括:
步骤1,广播连接检测请求,包括:每个节点Ni向系统中其他所有节点广播连接检测请求Detecti,并在数据库中记录节点Ni发送消息时自身的Unix时间戳t(i,j);其中所述连接检测请求Detecti表示为:
Detecti={Detecti,Sigi(vi,hi,randi)}
其中,Detect表示所述所述连接检测请求的消息类型,i表示节点序号,vi表示所述所述连接检测请求Detecti中包含节点Ni所在的视图、hi表示节点Ni所在的区块高度、randi表示节点Ni产生的随机数;
步骤2,接收连接检测请求并校验签名信息:节点Nj收到节点Ni发送的所述连接检测请求消息后,使用节点Ni的公钥PKi验证消息的签名信息是否正确,并判断消息中包含的视图vi和高度hi是否满足vi=vj,hi=hj,判断收到连接检测请求Detecti中包含的视图和区块高度是否与自身一致,其中节点Nj(j≠i)表示参与共识的节点;
步骤3,回复连接检测响应,包括:如果验证通过,节点Nj向节点Ni回复连接检测响应Responsej,所述回复连接检测响应Responsej内容如下:
Responsej={Response,Sigj(vj,hj,randi ’)}
其中,Response表示回复连接检测消息类型,j表示节点序号,randi ’表示节点Nj收到的来自Ni的随机数;vj表示Responsej消息中所包含节点Nj所在的视图;hj表示节点Nj所在的区块高度;
步骤4,记录时间戳信息并对所述回复连接检测响应的有效性进行验证,包括:节点Ni收到来自节点Nj回复的响应消息后,记录收到消息时自身的Unix时间戳t(i,j),并进行响应消息的有效性判定,所述有效性判定包括Responsej消息中的视图Vj,区块高度hj,随机数randi ’与节点Ni产生的随机数randi是否一致;
步骤5,记录通讯时间,包括:通过所述回复连接检测响应的有效性判定后,基于所述响应消息的通讯,计算节点Ni到其他节点Nj的往返通讯时间d(i,j)=t(j,i)-t(i,j),并将所述往返通讯时间保存在通讯时间矩阵中,所有节点Ni内保存该节点与所有其他节点的通讯时间矩阵CTMi;所述通讯时间矩阵CTMi包含当前节点Ni的视图vi和块高hi,随机数randi,以及节点Ni与其他n-1个节点<N1,…,Nn-1,Nn>的通讯时间d(i,j)=t(j,i)-t(i,j),其中t(i,j) 表示节点Ni向节点Nj发送消息的Unix时间戳, t(j,i) 表示节点Ni收到来自节点Nj响应消息的Unix时间戳优选的,节点向自身发送信息与收到信息的时间戳相等,节点与自身的通讯时间忽略不计。
本发明的第四方面提供一种电子设备,包括处理器和通信电路,所述处理器连接所述通信电路,所述处理器用于执行指令以实现如第二方面或第三方面所述的方法。
本发明的第五方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述多条指令可被处理器读取并执行如第二方面或第三方面所述的方法。
本发明提供的基于区块链的时间混合队列分片系统与方法、电子设备,具有如下有益效果:
通过两层级领导节点结构,由强领导节点根据通讯时间队列对节点进行分片,实现分片内部局部最优的时间通讯效率,提升节点之间传递消息的速度。强领导节点负责搜集交易并提议新的区块,弱领导节点负责接收强领导节点的消息并且转发到分片中,在保证数据一致性的同时,充分利用的强领导节点和弱领导节点的带宽与CPU计算性能,提升了系统的可扩展性。
附图说明
图1为根据本发明优选实施例的基于区块链的时间混合队列分片系统结构原理图。
图2为根据本发明优选实施例的电子设备构成图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例一
参见图1,本发明一方面提供了一种基于区块链的时间混合队列分片系统,基于节点之间的通讯时间进行分片,通过混合时间队列完成分片的划分,实现局部的最优通讯时间,包括:
区块链,具有多个区块,所述区块生成周期内生成的一个区块中包含一个强领导者节点和若干个弱领导节点;
初步分片模块,用于将所述多个节点初步分为多组不同的预分片,所述预分片为指定所述强领导者节点后将所述区块链的除所述强领导者节点以外的所有节点进行划分获得,每组所述预分片包含多个叶子节点和一个所述弱领导节点,不同组的所述预分片所包含的节点没有交集,每组预分片内的节点数量至少大于或等于所有节点的数量与组数量之比;
计算模块,用于计算将所有节点划分为预定数量的预分片的分配时间以及多个所述预分片之间的通讯时间总和,其中对于所述预定数量的预分片,所述分配时间小于第一阈值,且所有预分片的通讯时间总和最小;以及
时间混合队列分片模块,用于判断多个所述预分片之间的通讯时间总和是否满足最小,如果满足,则当前预分片为最终时间混合队列分片,否则在所述第一一阈值的时间内将所有节点重新划分为预定数量的新的预分片并重新判定多个所述新的预分片之间的通讯时间总和是否满足最小。
本实施例中,将所述区块链的一个区块中所包含的所有n个节点划分成k组不同的分片,所述k组不同的分片中每组分片包含若干个叶子结点和一个弱领导节点,不同组的所述分片所包含的节点没有交集,每组分片内至少有数量为m(m≥└n/k┘)的节点,在有限的时间内划分分配且使得所有分片的通讯时间总和最小。
参见图1,其中N1,N2,N3为强领导节点,N4,N5为弱领导节点,N6和N7为分片-1的叶子节点,N8、N9、N10为分片-2的叶子节点。
作为优选的实施方式,该分片系统的应用需要附加数据共识模块,以更好的实现分片之间的数据共识,将参与共识的节点分为领导者节点和叶子节点,领导者节点又包括强领导者节点和弱领导者节点。区块链中同一个区块生成周期内只包含唯一的一个强领导者节点和若干个弱领导节点,每组分片内仅有唯一弱领导节点和若干个叶子节点。
作为优选的实施方式,强领导者节点与弱领导者节点直接通讯从而实现与不同分片的交互,强领导节点还需要搜集并验证来自弱领导节点消息的部分门限签名,并搜集弱领导者节点发送的分片内交易信息用以合成区块。弱领导者节点与分片内叶子结点通讯,搜集分片内叶子节点的交易,并将强领导节点发送的消息转发给叶子结点。
实施例二
一种基于区块链的时间混合队列分片方法,包括:
步骤1,初始化分片队列,包括:设置所述区块链内尚未分配的节点集合SN,其中所述节点集合SN包含所有尚未分配的节点,分片队列Q为空;
步骤2,基于所述所有尚未分配的节点确定所述区块的一个强领导节点、遍历通讯时间矩阵和若干个弱领导节点,包括:设置所述强领导者节点为Np后,遍历通讯时间矩阵,选取通讯时间d(p,q)最短的k个节点作为弱领导节点 < N1,N2,…,Nk >,其中所述通讯时间矩阵内存储各个节点之间的往返通讯时间;
步骤3,基于所述弱领导节点以及所述通讯时间确定所述分片队列Q,包括:将所述k个节点从所述尚未分配的节点集合SN中移除,并将所述k个节点按照通讯时间d(p,q)升序,依次加入所述分片队列Q中,其中所述分片队列Q中的元素qn=<pathn,distancen>分别记录节点路径与通讯时间;若初始情况下与所述强领导节点Np通讯时间最短的k个节点按照通讯时间升序排列为<N1,N2,…,Nk>,则初始情况下所述分片队列Q可以表示为:
Q={q1=<N1,d(1,p)>,q2=<N2,d(2,p)>,…, qk=<Nk,d(k,p)>,qn=<pathn,distancen>};
步骤4,所述分片队列Q非空时,所述强领导节点Np依次确定队首依次出队元素的节点路径pathn,并根据pathn中包含的节点数量和所述节点的种类,形成基于区块链的时间混合队列分片。强领导节点依次判断队首元素的节点路径pathn,根据pathn中包含的节点数量和种类,分为三种情况:
(1)如果队首出队元素的节点路径pathn中仅包含一个节点Nk时,则pathn中仅包含候选的弱领导节点,并不是有效的叶子节点通讯路径;节点Nk选择与节点Nk节点通讯时间d(k,q)最短的节点Nq,判断节点Nq是否包含在节点集合SN中,即是否满足Nq∈SN;如果满足,则节点Nq尚未被分配到某一分片中,此时,更新节点路径和通讯时间形成新的队列元素<Nk+Nq,d(p,k)+d(k,q)>,并按照通讯时间升序插入到所述分片队列Q中,形成基于区块链的时间混合队列分片。
(2)如果队首出队元素的节点路径pathn中包含两个节点,分别为节点Nk和节点Nq,其中节点Nk表示候选弱领导节点,节点Nq表示和节点Nk通讯时间距离最短的节点,且节点Nq包含在节点集合SN中,则混合通讯时间队列中,节点Nk与节点Nq的通讯时间最小,且节点Nq尚未被分配;将节点Nq从节点集合SN中移除,并将节点Nq分配到所述候选弱领导节点Nk负责的分片中,此时,判断Nk节点对应的分片中节点的数量,如果分片内节点个数不超过┌n/k┐,则所述分片内节点数量还没有达到最大值,节点Nk选取节点集合SN中距离自身的通讯时间d(k,m))最小的节点Nm,形成新的队列元素<Nk+Nm,d(i,k)+d(k,m)>重新加入到所述分片队列Q中,形成基于区块链的时间混合队列分片。
(3) 如果队首出队元素的节点路径pathn中包含两个节点,分别为节点Nk和节点Nq,其中节点Nk表示候选弱领导节点,节点Nq表示和Nk节点通讯时间距离最短的节点,但是节点Nq未包含在节点集合SN中,则节点Nq已经被分配到另一个分片中,将该元素从队列中删除;此时,判断节点Nk对应的分片中节点的数量,如果分片内节点个数不超过┌n/k┐,则该分片内节点数量还没有达到最大值;节点Nk选取节点集合SN中距离自身的通讯时间d(k,m)最小的节点Nm,形成新的队列元素<Nk+Nm,d(i,k)+d(k,m)>重新加入到所述分片队列Q中,形成基于区块链的时间混合队列分片。
如图2所示,本实施例还提供了一种电子设备,包括处理器301和与处理器301连接的通信电路302,处理器301内存储有多条指令,指令可被处理器加载并执行,以使处理器301能够执行如实施例二的方法。
本实施例还提供了一种计算机可读存储介质,存储有多条指令,指令用于实现如实施例二的方法。
本实施例提供的系统、方法和电子设备,具有如下有益效果:
通过两层级领导节点结构,由强领导节点根据通讯时间队列对节点进行分片,实现分片内部局部最优的时间通讯效率,提升节点之间传递消息的速度。强领导节点负责搜集交易并提议新的区块,弱领导节点负责接收强领导节点的消息并且转发到分片中,在保证数据一致性的同时,充分利用的强领导节点和弱领导节点的带宽与CPU计算性能,提升了系统的可扩展性。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种基于区块链的时间混合队列分片系统,包括:
区块链,具有多个区块,所述区块生成周期内生成的一个区块中包含一个强领导者节点和若干个弱领导节点;
初步分片模块,用于将多个节点初步分为多组不同的预分片,所述预分片为指定所述强领导者节点后将所述区块链的除所述强领导者节点以外的所有节点进行划分获得,每组所述预分片包含多个叶子节点和一个所述弱领导节点,不同组的所述预分片所包含的节点没有交集,每组预分片内的节点数量至少大于或等于所有节点的数量与组数量之比;
计算模块,用于计算将所有节点划分为预定数量的预分片的分配时间以及多个所述预分片之间的通讯时间总和,其中对于所述预定数量的预分片,所述分配时间小于第一阈值,且所有预分片的通讯时间总和最小;以及
时间混合队列分片模块,用于判断多个所述预分片之间的通讯时间总和是否满足最小,如果满足,则当前预分片为最终时间混合队列分片,否则在所述第一阈值的时间内将所有节点重新划分为预定数量的新的预分片并重新判定多个所述新的预分片之间的通讯时间总和是否满足最小。
2.根据权利要求1所述的一种基于区块链的时间混合队列分片系统,其特征在于,还包括数据共识模块,用于进行所述预分片之间的数据共识。
3.根据权利要求1所述的一种基于区块链的时间混合队列分片系统,其特征在于,所述强领导者节点与所述弱领导者节点直接通讯从而实现与不同所述预分片的交互,所述强领导节点搜集并验证来自所述弱领导节点的消息的部分门限签名,并搜集所述弱领导者节点发送的分片内交易信息用以合成区块。
4.根据权利要求3所述的一种基于区块链的时间混合队列分片系统,其特征在于,所述预分片内的所述弱领导者节点与所述叶子节点通讯,搜集所述叶子节点的交易,并将所述强领导节点发送的消息转发给所述叶子节点。
5.一种基于区块链的时间混合队列分片系统的分片方法,应用于根据权利要求1-4任一所述的一种基于区块链的时间混合队列分片系统,其特征在于,包括:
步骤1,初始化分片队列,包括:设置所述区块链内尚未分配的节点集合SN,其中所述节点集合SN包含所有尚未分配的节点,分片队列Q为空;
步骤2,基于所述所有尚未分配的节点确定所述区块的一个强领导节点、遍历通讯时间矩阵和若干个弱领导节点,包括:设置所述强领导者节点为Np后,遍历通讯时间矩阵,选取通讯时间d(p,q)最短的k个节点作为弱领导节点 < N1,N2,…,Nk >,其中所述通讯时间矩阵内存储各个节点之间的往返通讯时间;
步骤3,基于所述弱领导节点以及所述通讯时间确定所述分片队列Q,包括:将所述k个节点从所述尚未分配的节点集合SN中移除,并将所述k个节点按照通讯时间d(p,q)升序,依次加入所述分片队列Q中,其中所述分片队列Q中的元素qn=<pathn,distancen>分别记录节点路径与通讯时间;若初始情况下与所述强领导节点Np通讯时间最短的k个节点按照通讯时间升序排列为<N1,N2,…,Nk>,则初始情况下所述分片队列Q可以表示为:
Q={q1=<N1,d(1,p)>,q2=<N2,d(2,p)>,…, qk=<Nk,d(k,p)>,qn=<pathn,distancen>};
步骤4,所述分片队列Q非空时,所述强领导节点Np依次确定队首依次出队元素的节点路径pathn,并根据pathn中包含的节点数量和所述节点的种类,形成基于区块链的时间混合队列分片。
6.根据权利要求5所述的分片方法,其特征在于,所述步骤4包括三种情况:
(1)如果队首出队元素的节点路径pathn中仅包含一个节点Nk时,则pathn中仅包含候选的弱领导节点,并不是有效的叶子节点通讯路径;节点Nk选择与节点Nk节点通讯时间d(k,q)最短的节点Nq,判断节点Nq是否包含在节点集合SN中;如果满足,则节点Nq尚未被分配到某一分片中,此时,更新节点路径和通讯时间形成新的队列元素<Nk+Nq,d(p,k)+d(k,q)>,并按照通讯时间升序插入到所述分片队列Q中,形成基于区块链的时间混合队列分片;
(2)如果队首出队元素的节点路径pathn中包含两个节点,分别为节点Nk和节点Nq,其中节点Nk表示候选弱领导节点,节点Nq表示和节点Nk通讯时间距离最短的节点,且节点Nq包含在节点集合SN中,则混合通讯时间队列中,节点Nk与节点Nq的通讯时间最小,且节点Nq尚未被分配;将节点Nq从节点集合SN中移除,并将节点Nq分配到所述候选弱领导节点Nk负责的分片中,此时,判断Nk节点对应的分片中节点的数量,如果分片内节点个数不超过┌n/k┐,则所述分片内节点数量还没有达到最大值,节点Nk选取节点集合SN中距离自身的通讯时间d(k,m))最小的节点Nm,形成新的队列元素<Nk+Nm,d(i,k)+d(k,m)>重新加入到所述分片队列Q中,形成基于区块链的时间混合队列分片;
(3) 如果队首出队元素的节点路径pathn中包含两个节点,分别为节点Nk和节点Nq,其中节点Nk表示候选弱领导节点,节点Nq表示和Nk节点通讯时间距离最短的节点,但是节点Nq未包含在节点集合SN中,则节点Nq已经被分配到另一个分片中,将该元素从队列中删除;此时,判断节点Nk对应的分片中节点的数量,如果分片内节点个数不超过┌n/k┐,则该分片内节点数量还没有达到最大值;节点Nk选取节点集合SN中距离自身的通讯时间d(k,m)最小的节点Nm,形成新的队列元素<Nk+Nm,d(i,k)+d(k,m)>重新加入到所述分片队列Q中,形成基于区块链的时间混合队列分片。
7.一种电子设备,其特征在于,包括处理器和通信电路,所述处理器连接所述通信电路,所述处理器用于执行指令以实现如权利要求5-6任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述多条指令可被处理器读取并执行如权利要求5-6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210024145.XA CN114064329B (zh) | 2022-01-11 | 2022-01-11 | 一种基于区块链的时间混合队列分片系统与方法 |
CN202210207461.0A CN114546687A (zh) | 2022-01-11 | 2022-01-11 | 一种用于基于区块链的时间混合队列分片系统的通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210024145.XA CN114064329B (zh) | 2022-01-11 | 2022-01-11 | 一种基于区块链的时间混合队列分片系统与方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210207461.0A Division CN114546687A (zh) | 2022-01-11 | 2022-01-11 | 一种用于基于区块链的时间混合队列分片系统的通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114064329A CN114064329A (zh) | 2022-02-18 |
CN114064329B true CN114064329B (zh) | 2022-03-29 |
Family
ID=80230676
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210207461.0A Pending CN114546687A (zh) | 2022-01-11 | 2022-01-11 | 一种用于基于区块链的时间混合队列分片系统的通讯方法 |
CN202210024145.XA Active CN114064329B (zh) | 2022-01-11 | 2022-01-11 | 一种基于区块链的时间混合队列分片系统与方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210207461.0A Pending CN114546687A (zh) | 2022-01-11 | 2022-01-11 | 一种用于基于区块链的时间混合队列分片系统的通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114546687A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835572A (zh) * | 2020-07-23 | 2020-10-27 | 上海优扬新媒信息技术有限公司 | 一种区块链网络的通信方法及装置 |
CN112260836A (zh) * | 2020-09-28 | 2021-01-22 | 电子科技大学 | 一种基于分片技术提升区块链吞吐量的方法 |
CN113395357A (zh) * | 2021-08-16 | 2021-09-14 | 支付宝(杭州)信息技术有限公司 | 区块链系统的分片方法及装置 |
CN113810507A (zh) * | 2021-11-18 | 2021-12-17 | 南京信息工程大学 | 一种基于ide的区块链可信节点划分方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9813516B2 (en) * | 2014-02-18 | 2017-11-07 | Salesforce.Com, Inc. | Transparent sharding of traffic across messaging brokers |
-
2022
- 2022-01-11 CN CN202210207461.0A patent/CN114546687A/zh active Pending
- 2022-01-11 CN CN202210024145.XA patent/CN114064329B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835572A (zh) * | 2020-07-23 | 2020-10-27 | 上海优扬新媒信息技术有限公司 | 一种区块链网络的通信方法及装置 |
CN112260836A (zh) * | 2020-09-28 | 2021-01-22 | 电子科技大学 | 一种基于分片技术提升区块链吞吐量的方法 |
CN113395357A (zh) * | 2021-08-16 | 2021-09-14 | 支付宝(杭州)信息技术有限公司 | 区块链系统的分片方法及装置 |
CN113810507A (zh) * | 2021-11-18 | 2021-12-17 | 南京信息工程大学 | 一种基于ide的区块链可信节点划分方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114546687A (zh) | 2022-05-27 |
CN114064329A (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7184959B2 (ja) | ネットワーク内の分散データベースのための方法及び装置 | |
US11232081B2 (en) | Methods and apparatus for a distributed database within a network | |
US11797502B2 (en) | Methods and apparatus for a distributed database within a network | |
EP4300323A1 (en) | Data processing method and apparatus for blockchain network, computer device, computer readable storage medium, and computer program product | |
CN111639080B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
AU2021358742A1 (en) | Methods and apparatus for a distributed database within a network | |
WO2020142907A1 (zh) | 基于有向无环图的区块创建、添加、账本建立方法和装置 | |
US20220237153A1 (en) | Synchronization processing method and related apparatus | |
WO2021227319A1 (zh) | 一种工程协作区块链数据结构及应用方法 | |
CN111414420A (zh) | 一种改进的pbft区块链共识方法 | |
CN113626875A (zh) | 一种区块链分片赋能的知识图谱文件存储方法 | |
CN114745140B (zh) | 基于聚合加密的城市规划领域区块链共识验证方法及系统 | |
US20220172180A1 (en) | Method for Storing Transaction that Represents Asset Transfer to Distributed Network and Program for Same | |
CN113973021A (zh) | 一种图式区块链的网络传输优化装置及方法 | |
CN114157550B (zh) | 一种基于无冲突事务合并的联盟区块链系统 | |
Berrang et al. | Albatross–an optimistic consensus algorithm | |
CN114064329B (zh) | 一种基于区块链的时间混合队列分片系统与方法 | |
CN116233145B (zh) | 一种基于分片策略的区块链异步共识方法及装置 | |
CN116566712A (zh) | 一种基于信任分数的物联网区块链共识方法 | |
Kim et al. | Byzantine fault tolerance based multi-block consensus algorithm for throughput scalability | |
Chen et al. | Power-of-Collaboration: A sustainable resilient ledger built democratically | |
Wu et al. | Multimaster node byzantine fault-tolerant consensus algorithm based on consistent hash algorithm | |
Peng et al. | Petrichor: An Efficient Consensus Protocol Leveraging DAG and Sharding for Asynchronous BFT | |
Yu et al. | Byzantine Fault Tolerant Consensus Algorithm Based on Credit Model and Verifiable Random Function | |
US20240211941A1 (en) | Blockchain provision system and method using non-competitive consensus algorithm and micro-chain architecture to ensure transaction processing speed, scalability, and security suitable for commercial services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |