交易存储和区块执行方法、设备和存储介质技术

技术编号:32546501 阅读:11 留言:0更新日期:2022-03-05 11:45
本发明专利技术提供一种交易存储和区块执行方法、设备和存储介质,该方法包括:对区块链的各第一区块链节点执行如下操作:根据预配置的区块共识规则计算第一区块链节点应当参与共识的各第一区块高度;接收第一交易;根据与区块共识规则匹配的预配置的交易打包规则计算应当打包第一交易的第二区块高度;以及,将第一交易存储至第二区块高度的第一待打包队列;在第三区块高度与当前区块高度之差为第二数值时,将第三区块高度的第二待打包队列中的各第二交易发送至应当参与第三区块高度的共识的各第二区块链节点。本申请进一步提高吞吐量。本申请进一步提高吞吐量。本申请进一步提高吞吐量。

【技术实现步骤摘要】
交易存储和区块执行方法、设备和存储介质


[0001]本申请涉及区块链
,具体涉及一种交易存储和区块执行方法、设备和存储介质。

技术介绍

[0002]在申请人先前提出的专利申请(可参考CN2019106074995)中,通过交易的检查与区块的确认并行处理的方式,提高吞吐量。
[0003]在上述机制中,交易中包括的指定高度信息会使得tx1变得庞大,而一个区块的大小又是恒定的,上述机制将降低一个区块能存储的交易数量,从另一方面又降低了吞吐量。

技术实现思路

[0004]鉴于现有技术中的上述缺陷或不足,期望提供一种进一步提高吞吐量的交易存储和区块执行方法、设备和存储介质。
[0005]第一方面,本专利技术提供一种适用于前置机的交易存储和区块执行方法,上述方法包括:
[0006]对区块链的各第一区块链节点执行如下操作:根据预配置的区块共识规则计算第一区块链节点应当参与共识的各第一区块高度;其中,区块共识规则包括第一区块链节点的第一公开信息,各第一区块链节点同样执行此步骤;
[0007]接收第一交易;其中,第一交易由客户端生成;
[0008]根据与区块共识规则匹配的预配置的交易打包规则计算应当打包第一交易的第二区块高度;其中,交易打包规则包括第一交易的第二公开信息,第一区块高度与当前区块高度之差大于第一数值;以及,
[0009]将第一交易存储至第二区块高度的第一待打包队列;
[0010]在第三区块高度与当前区块高度之差为第二数值时,将第三区块高度的第二待打包队列中的各第二交易发送至应当参与第三区块高度的共识的各第二区块链节点,以供各第二区块链节点:
[0011]在拥有第三区块高度的第三区块的打包权时,根据各第二交易生成第三区块并广播给其它区块链节点,以供其它区块链节点:
[0012]在第三区块高度为应当参与共识的区块高度时,判断第三区块高度是否为生成第三区块的第二区块链节点应当参与共识的区块高度:
[0013]是,则执行各第二交易以执行第三区块;
[0014]其中,第二数值小于第一数值,接收第一交易至将第一交易存储至第二区块高度的第一待打包队列,与将第三区块高度的第二待打包队列中的各第二交易发送至应当参与第三区块高度的共识的各第二区块链节点步骤,并行执行。
[0015]第二方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各
实施例提供的交易存储和区块执行方法。
[0016]第三方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的交易存储和区块执行方法。
[0017]本专利技术诸多实施例提供的交易存储和区块执行方法、设备和存储介质通过对区块链的各第一区块链节点执行如下操作:根据预配置的区块共识规则计算第一区块链节点应当参与共识的各第一区块高度;接收第一交易;根据与区块共识规则匹配的预配置的交易打包规则计算应当打包第一交易的第二区块高度;以及,将第一交易存储至第二区块高度的第一待打包队列;在第三区块高度与当前区块高度之差为第二数值时,将第三区块高度的第二待打包队列中的各第二交易发送至应当参与第三区块高度的共识的各第二区块链节点的方法,进一步提高吞吐量。
附图说明
[0018]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0019]图1为本专利技术一实施例提供的一种交易存储和区块执行方法的流程图。
[0020]图2为本专利技术一实施例提供的一种设备的结构示意图。
具体实施方式
[0021]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。
[0022]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0023]图1为本专利技术一实施例提供的一种交易存储和区块执行方法的流程图。如图1所示,在本实施例中,本专利技术提供一种适用于前置机的交易存储和区块执行方法,上述方法包括:
[0024]S11:对区块链的各第一区块链节点执行如下操作:根据预配置的区块共识规则计算第一区块链节点应当参与共识的各第一区块高度;其中,区块共识规则包括第一区块链节点的第一公开信息,各第一区块链节点同样执行此步骤;
[0025]S12:接收第一交易;其中,第一交易由客户端生成;
[0026]S13:根据与区块共识规则匹配的预配置的交易打包规则计算应当打包第一交易的第二区块高度;其中,交易打包规则包括第一交易的第二公开信息,第一区块高度与当前区块高度之差大于第一数值;以及,
[0027]S14:将第一交易存储至第二区块高度的第一待打包队列;
[0028]S15:在第三区块高度与当前区块高度之差为第二数值时,将第三区块高度的第二待打包队列中的各第二交易发送至应当参与第三区块高度的共识的各第二区块链节点,以供各第二区块链节点:
[0029]在拥有第三区块高度的第三区块的打包权时,根据各第二交易生成第三区块并广播给其它区块链节点,以供其它区块链节点:
[0030]在第三区块高度为应当参与共识的区块高度时,判断第三区块高度是否为生成第三区块的第二区块链节点应当参与共识的区块高度:
[0031]是,则执行各第二交易以执行第三区块;
[0032]其中,第二数值小于第一数值,接收第一交易至将第一交易存储至第二区块高度的第一待打包队列,与将第三区块高度的第二待打包队列中的各第二交易发送至应当参与第三区块高度的共识的各第二区块链节点步骤,并行执行。
[0033]具体的,以第一公开信息为第一区块链节点的节点哈希,第二公开信息为第一交易的第一全哈希,S11包括“获取第一区块链节点的节点哈希的第一M位,根据第一M位计算第一N进制数;将第二N进制数与第一N进制数相同的各第四区块高度确定为各第一区块高度;其中,第二N进制数的计算方法为:(h mod N^M)===>>>(x2)2,(x2)2=(x1)2,h为第四区块高度,(x1)2为第一N进制数,(x2)2为第二N进制数”;以及,S13包括“获取第一全哈希的第二M位,根据第二M位计算第三N进制数;计算第五区块高度;其中,第五区块高度的计算方法为:min(h1)mod N^M===>>>(x3)2,min(h1)>当前区块高度+第一数值+1,min(h1)为第五区块高度,(x3)2为第三N进制数;以及,将第五区块高度确定为第二区块高度”;以及,判断第三区块高度是否为生成第三区块的第二区块链节点应当参与共识的区块高度本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种交易存储和区块执行方法,其特征在于,所述方法适用于前置机,所述方法包括:对区块链的各第一区块链节点执行如下操作:根据预配置的区块共识规则计算所述第一区块链节点应当参与共识的各第一区块高度;其中,所述区块共识规则包括所述第一区块链节点的第一公开信息,各所述第一区块链节点同样执行此步骤;接收第一交易;其中,所述第一交易由客户端生成;根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度;其中,所述交易打包规则包括所述第一交易的第二公开信息,所述第一区块高度与当前区块高度之差大于第一数值;以及,将所述第一交易存储至所述第二区块高度的第一待打包队列;在第三区块高度与当前区块高度之差为第二数值时,将所述第三区块高度的第二待打包队列中的各第二交易发送至应当参与所述第三区块高度的共识的各第二区块链节点,以供各第二区块链节点:在拥有所述第三区块高度的第三区块的打包权时,根据各所述第二交易生成所述第三区块并广播给其它区块链节点,以供其它区块链节点:在所述第三区块高度为应当参与共识的区块高度时,判断所述第三区块高度是否为生成所述第三区块的第二区块链节点应当参与共识的区块高度:是,则执行各所述第二交易以执行所述第三区块;其中,所述第二数值小于所述第一数值,所述接收第一交易至所述将所述第一交易存储至所述第二区块高度的第一待打包队列,与所述将所述第三区块高度的第二待打包队列中的各第二交易发送至应当参与所述第三区块高度的共识的各第二区块链节点步骤,并行执行。2.根据权利要求1所述的方法,其特征在于,所述第一公开信息为所述第一区块链节点的节点哈希,所述第二公开信息为所述第一交易的第一全哈希,所述根据预配置的区块共识规则计算所述第一区块链节点应当参与共识的各第一区块高度包括:获取所述第一区块链节点的节点哈希的第一M位,根据所述第一M位计算第一N进制数;将第二N进制数与所述第一N进制数相同的各第四区块高度确定为所述各第一区块高度;其中,所述第二N进制数的计算方法为:(hmod N^M)===>>>(x2)2,(x2)2=(x1)2,h为第四区块高度,(x1)2为第一N进制数,(x2)2为第二N进制数;所述根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度包括:获取所述第一全哈希的第二M位,根据所述第二M位计算第三N进制数;计算第五区块高度;其中,所述第五区块高度的计算方法为:min(h1)mod N^M===>>>(x3)2,min(h1)>当前区块高度+第一数值+1,min(h1)为第五区块高度,(x3)2为第三N进制数;以及,将所述第五区块高度确定为所述第二区块高度;所述判断所述第三区块高度是否为生成所述第三区块的第二区块链节点应当参与共识的区块高度包括:获取生成所述第三区块的第二区块链节点的节点哈希的第一M位的第一N进制数;
计算第五N进制数;其中,所述第五N进制数的计算方法为:(h2mod N^M)===>>>(x5)2,h2为第三区块高度,(x5)2为第五N进制数;判断生成所述第三区块的第二区块链节点的节点哈希的第一M位的第一N进制数与所述第五N进制数是否相同。3.根据权利要求1所述的方法,其特征在于,各所述第一交易为需要指定区块高度的第一类交易,各所述第一区块链节点的交易池中缓存有所述客户端生成的不需要指定区块高度的第二类交易;所述根据各所述第二交易生成所述第三区块并广播给其它区块链节点包括:根据各所述第二交易生成、交易池中的若干交易生成第三区块并广播给其它区块链节点。4.根据权利要求1所述的方法,其特征在于,所述执行各所述第二交易以执行所述第三区块包括:对各所述第二交易执行如下步骤:根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败。5.根据权利要求4所述的方法,其特征在于,各所述第二交易还用于供各所述第二区块链节点在收到各所述第二交易时,根据各所述第二交易预生成第一梅克尔根;所述对各所述第二交易执行如下步骤:根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败包括:判断所述第三区块的第二梅克尔根与所述第一梅克尔根是否相同:是,则省略所述对各所述第二交易执行如下步骤:根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败步骤。6.根据权利要求4所述的方法,其特征在于,各区块链节点的待打包队列配置有相同的交易排序方法,各所述第二交易还用于供各所述第二区块链节点在收到各所述第二交易时,根据各所述第二交易预生成第一梅克尔根;所述根据各所述第二交易生成所述第三区块并广播给其它区块链节点包括:根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区...

【专利技术属性】
技术研发人员:吴思进王春晖曹競李斌
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:

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

1