一种基于动态变宽算法的区块链存储优化方法

文档序号:29222742发布日期:2022-03-12 12:44阅读:184来源:国知局
一种基于动态变宽算法的区块链存储优化方法

1.本发明属于计算机系统分布式存储技术、区块链技术、网络通讯技术领域,尤其涉及一种基于动态变宽算法的区块链存储优化方法。


背景技术:

2.区块链是一项去中心化的分布式账本存储技术,在物流、司法、政务、金融等领域发挥着重要的作用。随着应用场景的多样化,链上交易数据和频次呈现逐渐增加的趋势,对链上交易确认延迟和吞吐量有了更高的要求,而其中的主要瓶颈在于区块链的共识算法。
3.目前较为流行的共识算法主要有基于工作量证明的 pow算法和基于拜占庭容错问题的pbft算法。其中pow算法是比特币采用的共识算法,由于其独特的算力证明机制需要浪费大量的算力资源,因此较为低效;基于拜占庭容错的pbft算法无需大量算力资源,在保证可用性和安全性的前提下,提供了至多 (n-1)/3 的容错性的同时,保持了较高效率的共识。
4.具体地,pbft共识算法规定在区块链系统中有一个节点被选定为主节点,其他节点称为子节点。系统内的所有节点相互通信,最终通过对数据达成共识。虽然 pbft 将原始拜占庭容错算法的复杂度由指数级降低到多项式级,但是由于每次pbft共识都需要全网所有节点参与交互,通信的复杂度依旧较高。随着节点个数的增加,采用pbft共识算法的区块链网络交易处理性能会急剧下降。
5.类似地,有向无环图可替代区块链作为分布式账本的存储结构,通过并行化完成存储过程的方式,提高分布式账本的交易处理性能。有向无环图是一种从任意节点出发无法经过若干条边回到该点的有向图。与链式结构不同的是,有向无环图中的一个节点到另一个节点会有一条或多条可达路径,同时意味着节点可能有多个不同的前驱和后继。使用这种存储结构代替分布式账本传统的链式结构,在同一时间就可以从不同的节点进行拓展,能够极大提高账本维护的效率。
6.目前基于有向无环图的分布式账本存储能够在提供优秀的出块效率的前提下,将有向无环图的拓扑结构维持在可控的动态范围内。但由于抛弃了链式的存储结构,也带来了一些难以克服的缺点:为了提高安全性,基于有向无环图的分布式账本存储包含了集中功能,例如协调器或预选的验证器,这导致整个网络更容易被操纵而受到安全性挑战;有向无环图在拓展的过程中虽然能保持一定的宽度范围,但是难以收敛成为单链,所以终局性难以保证。有向无环图并不能代替区块链,也无法直接解决使用 pbft共识算法的区块链网络中的性能低下问题。


技术实现要素:

7.本发明目的在于提供一种基于动态变宽算法的区块链存储优化方法,以解决上述技术问题。
8.为解决上述技术问题,本发明的一种基于动态变宽算法的区块链存储优化方法的
具体技术方案如下:一种基于动态变宽算法的区块链性能优化方法,所述区块链存储结构使用动态变宽算法,即区块链存储结构宽度根据网络交易密度动态变化;所述存储结构是一种持续生成的有向无环图;所述区块链存储结构宽度是所述有向无环图的无出度节点数量,也可称为当前区块链网络分片数量;所述区块链网络分片,是区块链节点自发点对点组网形成的分片;所述交易密度是一个与单位时间内区块链网络交易数量正相关的比例系数;所述节点为区块链网络中发起、传递和验证交易的节点,节点通过所述动态变宽算法进行交易确认从而达成共识。
9.进一步地,所述动态变宽算法的参与方是 n个区块链节点,n≥3;所述节点具备任意两点之间的网络信息交互能力和通用计算能力;所述网络信息交互能力使所有区块链节点可通过网络实现发起和传递交易;所述通用计算能力使得所有区块链节点可进行非对称加解密计算,进而验证交易的真实性;所述交易真实性即节点可通过非对称加解密计算验证交易数字签名;所述区块链节点通过以下步骤完成基于动态变宽算法的交易共识:步骤一:发起交易:节点通过发起一笔交易,以期望获取对该笔交易的共识结果;步骤二:接受消息:节点通过网络信息交互能力接受到交易后,根据不同交易类型进行后续处理;步骤三:节点组队:区块链网络中的节点收集并验证成功的新交易数目超过规定的组队阈值时,该节点将发起组队请求以进行组队并产生新区块的共识;步骤四:节点共识:成功组队节点生成新区块以确认新交易;步骤五:全局共识:节点在每次收到新块时,会重置其超时计时器,当节点的计时器到达出块时间上限时,它将试图按照轮次顺序连接规定的全局领队节点,试图进行全局共识;如果连接超时,则按照轮次顺序联系下一个全局领队节点并广播;所述全局领队节点是指在进行全局共识的领队节点,该节点在全局出块前收集和验证新交易,随后发起全局组队请求以进行全局组队并生成新区块。
10.进一步地,步骤一包括如下具体步骤:节点通过广播进行交易的发起,在完成交易广播至区块链网络中的其他节点后进入等待状态。
11.进一步地,步骤二包括如下具体步骤:节点对交易消息进行验证,并将通过验证的交易投入交易池,将不通过验证的交易舍弃,所述验证流程应根据具体业务场景进行调整。
12.进一步地,步骤三包括如下具体步骤:所述节点联系所有新交易的发起者,询问是否同意进行组队,未组队的节点将返回同意组队的消息,已组队的节点将返回不同意组队的消息,当节点收到的赞同组队消息达到规定的出块阈值时,所述节点与同意组队的节点形成一个分片,进行节点共识步骤。
13.进一步地,步骤四包括如下具体步骤:新区块包括区块头和区块体两部分,区块头包含所有成功组队节点本地区块链的上一区块哈希值,区块体包括所有新交易,此阶段参与组队的所有节点同步所有被包含的但本地未知的区块,直到回溯到上一个全局共识;队伍内对区块的共识采用业务要求的通用共识算法。
14.进一步地,步骤五包括如下具体步骤:全局组队请求是由全局领队节点联系其他所有节点,询问是否同意进行组队,未组队的节点将返回同意组队消息,已组队的节点将返回拒绝组队消息,当此节点收到其它所有节点同意组队消息时,进行全局的节点共识步骤。
15.进一步地,步骤五的节点共识步骤与步骤四一致,区别仅在于参与节点为全局节点。
16.本发明的一种基于动态变宽算法的区块链存储优化方法具有以下优点:本发明将区块链分为多个子片,使得区块链具备可变的宽度属性,可在交易密集时进行宽度发散共识,并在交易稀疏时进行宽度收敛共识,从而通过共识机制并行化提高区块链交易处理的峰值性能。
附图说明
17.图1 基于动态变宽算法区块链存储优化方法的状态转换图;图2 基于动态变宽算法区块链存储优化方法的存储结构示意图。
具体实施方式
18.为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种基于动态变宽算法的区块链存储优化方法做进一步详细的描述。
19.本发明的一种基于动态变宽算法的区块链性能优化方法,所述区块链存储结构使用动态变宽算法,即区块链存储结构宽度根据网络交易密度动态变化;所述存储结构是一种持续生成的有向无环图;所述区块链存储结构宽度是所述有向无环图的无出度节点数量,也可称为当前区块链网络的分片数量;所述区块链网络分片,是区块链节点自发点对点组网形成的分片;所述交易密度是一个与单位时间内区块链网络交易数量正相关的比例系数; 所述节点为区块链网络中发起、传递和验证交易的节点,节点通过本动态变宽算法进行交易确认从而达成共识。
20.所述动态变宽算法,具体包括以下步骤:一种基于动态变宽算法的区块链性能优化方法,该方法的参与方是 n(n≥3) 个区块链节点。所述节点具备任意两点之间的网络信息交互能力和通用计算能力。具体地,网络信息交互能力使所有区块链节点可通过网络实现发起和传递交易;通用计算能力使得所有区块链节点可进行非对称加解密计算,进而验证交易的真实性。所述交易真实性即节点可通过非对称加解密计算验证交易数字签名。
21.具体地,尽管任意两点之间具备网络信息交互能力,区块链节点仍应当是互相独立的。因此,区块链节点的步骤状态并不是同步的。特别地,不同节点可能同时位于不同的步骤和状态,具体可见图1状态转换图所示。区块链节点通过以下步骤完成基于动态变宽算法的交易共识:步骤一:发起交易。节点通过发起一笔交易,以期望获取对该笔交易的共识结果。具体地,节点通过广播进行交易的发起,在完成交易广播至区块链网络中的其他节点后进入等待状态。
22.步骤二:接受消息。节点通过网络信息交互能力接受到交易后,根据不同交易类型
进行后续处理。具体地,节点对交易消息进行验证,并将通过验证的交易投入交易池,将不通过验证的交易舍弃,所述验证流程应根据具体业务场景进行调整。
23.步骤三:节点组队。区块链网络中的节点收集并验证成功的新交易数目超过规定的组队阈值时,该节点将发起组队请求以进行组队并产生新区块的共识。此节点联系所有新交易的发起者,询问是否同意进行组队。未组队的节点将返回同意组队的消息,已组队的节点将返回不同意组队的消息。当节点收到的赞同组队消息达到规定的出块阈值时,该节点与同意组队的节点形成一个分片,进行节点共识步骤。
24.步骤四:节点共识。成功组队节点生成新区块以确认新交易。新区块包括区块头和区块体两部分,区块头包含所有成功组队节点本地区块链的上一区块哈希值,区块体包括所有新交易。此阶段参与组队的所有节点会同步所有被包含的但本地未知的区块,直到回溯到上一个全局共识。特别地,此处队伍内对区块的共识应采用业务要求的通用共识算法。
25.步骤五:全局共识。节点在每次收到新块时,会重置其超时计时器。当节点的计时器到达出块时间上限时,它将试图按照轮次顺序连接规定的全局领队节点,试图进行全局共识。如果连接超时,则按照轮次顺序联系下一个全局领队节点并广播。所述全局领队节点是指在进行全局共识的领队节点,该节点在全局出块前收集和验证新交易,随后发起全局组队请求以进行全局组队并生成新区块。具体地,全局组队请求是由全局领队节点联系其他所有节点,询问是否同意进行组队。未组队的节点将返回同意组队消息,已组队的节点将返回拒绝组队消息。当此节点收到其它所有节点同意组队消息时,进行全局的节点共识步骤。特别地,此处节点共识步骤与步骤四一致,区别仅在于参与节点为全局节点。如图2所示,为基于动态变宽算法区块链存储优化方法的存储结构示意图。
26.可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本技术的权利要求范围内的实施例都属于本发明所保护的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1