【技术实现步骤摘要】
交易存储和区块执行方法、设备和存储介质
[0001]本申请涉及区块链
,具体涉及一种交易存储和区块执行方法、设备和存储介质。
技术介绍
[0002]在申请人先前提出的专利申请(可参考CN2019106074995)中,通过交易的检查与区块的确认并行处理的方式,提高吞吐量。
[0003]在上述机制中,交易中包括的指定高度信息会使得tx1变得庞大,而一个区块的大小又是恒定的,上述机制将降低一个区块能存储的交易数量,从另一方面又降低了吞吐量。
技术实现思路
[0004]鉴于现有技术中的上述缺陷或不足,期望提供一种进一步提高吞吐量的交易存储和区块执行方法、设备和存储介质。
[0005]第一方面,本专利技术提供一种适用于前置机的交易存储和区块执行方法,上述方法包括:
[0006]对区块链的各第一区块链节点执行如下操作:根据预配置的区块共识规则计算第一区块链节点应当参与共识的各第一区块高度;其中,区块共识规则包括第一区块链节点的第一公开信息,各第一区块链节点同样执行此步骤;
[0007]接收第一交易;其中,第一交易由客户端生成;
[0008]根据与区块共识规则匹配的预配置的交易打包规则计算应当打包第一交易的第二区块高度;其中,交易打包规则包括第一交易的第二公开信息,第一区块高度与当前区块高度之差大于第一数值;以及,
[0009]将第一交易存储至第二区块高度的第一待打包队列;
[0010]在第三区块高度与当前区块高度之差为第二数值时,将第三区块高度的第二 ...
【技术保护点】
【技术特征摘要】
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所述的方法,其特征在于,各区块链节点的待打包队列配置有相同的交易排序方法,各所述第二交易还用于供各所述第二区块链节点在收到各所述第二交易时,根据各所述第二交易预生成第一梅克尔根;所述根据各所述第二交易生成所述第三区块并广播给其它区块链节点包括:根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区...
【专利技术属性】
技术研发人员:吴思进,王春晖,曹競,李斌,
申请(专利权)人:杭州复杂美科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。