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

技术编号:32546453 阅读:12 留言:0更新日期:2022-03-05 11:44
本发明专利技术提供一种交易存储和区块生成方法、设备和存储介质,该方法包括:获得第一交易;根据预配置的交易存储规则计算应当打包第一交易的第一区块高度;将第一交易存储至第一区块高度的第一待打包队列;响应于获得第二区块高度的第二区块的打包权,根据第二区块高度的第二待打包队列中的各第二交易生成第二区块并广播给其它区块链节点,获得第一交易至将第一交易存储至第一区块高度的第一待打包队列步骤,与根据第二区块高度的第二待打包队列中的各第二交易生成第二区块并广播给其它区块链节点步骤,并行执行。本申请可以进一步提高吞吐量。吐量。吐量。

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


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

技术介绍

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

技术实现思路

[0004]鉴于现有技术中的上述缺陷或不足,期望提供一种进一步提高吞吐量的交易存储和区块生成方法、设备和存储介质。
[0005]第一方面,本专利技术提供一种适用于区块链节点的交易存储和区块生成方法,上述方法包括:
[0006]获得第一交易;其中,第一交易由用户的客户端生成,或,由当前节点生成;
[0007]根据预配置的交易存储规则计算应当打包第一交易的第一区块高度;其中,交易存储规则包括第一交易的第一公开信息,第一区块高度与当前区块高度之差大于第一数值;
[0008]将第一交易存储至第一区块高度的第一待打包队列;
[0009]响应于获得第二区块高度的第二区块的打包权,根据第二区块高度的第二待打包队列中的各第二交易生成第二区块并广播给其它区块链节点,以供其它区块链节点:
[0010]对各第二交易执行如下步骤:根据预配置的交易打包规则判断第二交易是否应当在第二区块高度被打包:否,则执行第二交易失败;其中,交易打包规则包括第一公开信息;
[0011]其中,获得第一交易至将第一交易存储至第一区块高度的第一待打包队列步骤,与根据第二区块高度的第二待打包队列中的各第二交易生成第二区块并广播给其它区块链节点步骤,并行执行。
[0012]第二方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的交易存储和区块生成方法。
[0013]第三方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的交易存储和区块生成方法。
[0014]本专利技术诸多实施例提供的交易存储和区块生成方法、设备和存储介质通过获得第一交易;根据预配置的交易存储规则计算应当打包第一交易的第一区块高度;将第一交易存储至第一区块高度的第一待打包队列;响应于获得第二区块高度的第二区块的打包权,根据第二区块高度的第二待打包队列中的各第二交易生成第二区块并广播给其它区块链
节点,获得第一交易至将第一交易存储至第一区块高度的第一待打包队列步骤,与根据第二区块高度的第二待打包队列中的各第二交易生成第二区块并广播给其它区块链节点步骤,并行执行的方法,进一步提高吞吐量。
附图说明
[0015]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0016]图1为本专利技术一实施例提供的一种交易存储和区块生成方法的流程图。
[0017]图2为图1所示的一种优选实施方式的流程图。
[0018]图3为图1所示的另一种优选实施方式的流程图。
[0019]图4为本专利技术一实施例提供的一种设备的结构示意图。
具体实施方式
[0020]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。
[0021]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0022]图1为本专利技术一实施例提供的一种交易存储和区块生成方法的流程图。如图1所示,在本实施例中,本专利技术提供一种适用于区块链节点的交易存储和区块生成方法,上述方法包括:
[0023]S12:获得第一交易;其中,第一交易由用户的客户端生成,或,由当前节点生成;
[0024]S14:根据预配置的交易存储规则计算应当打包第一交易的第一区块高度;其中,交易存储规则包括第一交易的第一公开信息,第一区块高度与当前区块高度之差大于第一数值;
[0025]S16:将第一交易存储至第一区块高度的第一待打包队列;
[0026]S18:响应于获得第二区块高度的第二区块的打包权,根据第二区块高度的第二待打包队列中的各第二交易生成第二区块并广播给其它区块链节点,以供其它区块链节点:
[0027]对各第二交易执行如下步骤:根据预配置的交易打包规则判断第二交易是否应当在第二区块高度被打包:否,则执行第二交易失败;其中,交易打包规则包括第一公开信息;
[0028]其中,获得第一交易至将第一交易存储至第一区块高度的第一待打包队列步骤,与根据第二区块高度的第二待打包队列中的各第二交易生成第二区块并广播给其它区块链节点步骤,并行执行。
[0029]具体的,以第一公开信息为第一交易的第一全哈希,S14包括“获取第一全哈希的第一M位,根据第一M位计算第一N进制数;计算第三区块高度;其中,第三区块高度为当前区块高度与第一数值之和加一;计算第三区块高度与第二数值的第一余数;其中,第二数值为N的M次方;将第一余数换算为第二N进制数;在第一N进制数与第二N进制数相同时,将第三区块高度确定为第一区块高度;在第一N进制数与第二N进制数不同时,将第三区块高度加一以更新第三区块高度,并返回计算第三区块高度与第二数值的第一余数”,以及,根据预
配置的交易打包规则判断第二交易是否应当在第二区块高度被打包:否,则执行第二交易失败包括“获取第二交易的第二全哈希的第二M位,根据第二M位计算第三N进制数;计算第二区块高度与第二数值的第二余数;将第二余数换算为第四N进制数;在第三N进制数与第四N进制数不同时,执行第二交易失败”为例;
[0030]假设当前区块链有节点N1~N25,当前节点为N1,第一数值为5,M为前3,N为2;假设N1先后获得tx1和tx2;tx1的全哈希的前3位的二进制数为000,tx2的全哈希的前3位的二进制数为111;当前区块高度为100,第二区块高度为112;
[0031]对于tx1:
[0032]N1执行步骤S12,获得tx1;
[0033]N1执行步骤S14,获取tx1的第一二进制数,为000;N1计算第三区块高度,为106;N1计算106与8的余数,余数为2;N1将2换算为第二二进制数,为010;
[0034]000与010不同,则将第三区块高度更新为107,并返回计算第三区块高度与第二数值的第一余数步骤;
[0035]最终,N1找到区块高度112为应当打包tx1的区块高度;
[0036]N1执行步骤S16,将tx1存储至区块高度112的待打包队列;
[0037]对于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种交易存储和区块生成方法,其特征在于,适用于区块链节点,所述方法包括:获得第一交易;其中,所述第一交易由用户的客户端生成,或,由当前节点生成;根据预配置的交易存储规则计算应当打包所述第一交易的第一区块高度;其中,所述交易存储规则包括所述第一交易的第一公开信息,所述第一区块高度与当前区块高度之差大于第一数值;将所述第一交易存储至所述第一区块高度的第一待打包队列;响应于获得第二区块高度的第二区块的打包权,根据所述第二区块高度的第二待打包队列中的各第二交易生成所述第二区块并广播给其它区块链节点,以供其它区块链节点:对各所述第二交易执行如下步骤:根据预配置的交易打包规则判断所述第二交易是否应当在所述第二区块高度被打包:否,则执行所述第二交易失败;其中,所述交易打包规则包括所述第一公开信息;其中,所述获得第一交易至所述将所述第一交易存储至所述第一区块高度的第一待打包队列步骤,与所述根据所述第二区块高度的第二待打包队列中的各第二交易生成所述第二区块并广播给其它区块链节点步骤,并行执行。2.根据权利要求1所述的方法,其特征在于,所述第一公开信息为所述第一交易的第一全哈希,所述根据预配置的交易存储规则计算应当打包所述第一交易的第一区块高度包括:获取所述第一全哈希的第一M位,根据所述第一M位计算第一N进制数;计算第三区块高度;其中,所述第三区块高度为当前区块高度与所述第一数值之和加一;计算所述第三区块高度与第二数值的第一余数;其中,所述第二数值为N的M次方;将所述第一余数换算为第二N进制数;在所述第一N进制数与所述第二N进制数相同时,将所述第三区块高度确定为所述第一区块高度;在所述第一N进制数与所述第二N进制数不同时,将所述第三区块高度加一以更新所述第三区块高度,并返回所述计算所述第三区块高度与第二数值的第一余数;所述根据预配置的交易打包规则判断所述第二交易是否应当在所述第二区块高度被打包:否,则执行所述第二交易失败包括:获取第二交易的第二全哈希的第二M位,根据所述第二M位计算第三N进制数;计算所述第二区块高度与第二数值的第二余数;将所述第二余数换算为第四N进制数;在所述第三N进制数与所述第四N进制数不同时,执行所述第二交易失败。3.根据权利要求1所述的方法,其特征在于,所述根据预配置的交易存储规则计算应当打包所述第一交易的第一区块高度包括:根据所述第一交易的预打包标识识别所述第一交易为指定区块高度的第一类交易或为不指定区块高度的第二类交易;在所述第一交易为所述第一类交易时,根据预配置的交易存储规则计算应当打包所述第一交易的第一区块高度;在所述第一交易为所述第二类交易时,将所述第一交易存储至即时打包队列;
所述根据所述第二区块高度的第二待打包队列中的各第二交易生成所述第二区块包括:根据所述第二区块高度的第二待打包队列中的各第二交易,以及,所述即时打包队列中的若干交易生成所述第二区块。4.根据权利要求1所述的方法,其特征在于,所述根据预配置的交易存储规则计算应当打包所述第一交易的第一区块高度包括:根据所述第一交易的第一手续费是否低于第三数值识别所述第一交易为指定区块高度的第一类交易或为不指定区块高度的第二类交易;在所述第一交易为所述第一类交易时,根据预配置的交易存储规则计算应当打包所述第一交易的第一区块高度;在所述第一交易为所述第二类交易时,将所述第一交易存储至即时打包队列;其中,所述即时打包队列的各交易以交易手续费由高到低的方式排队;所述根据所述第二区块高度的第二待打包队列中的各第二交易生成所述第二区块包括:根据所述第二区块高度的第二待打包队列中的各第二交易,以及,所述即时打包队列中的若干交易生成所述第二区块。5.根据权利要...

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

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

1