利索能及
我要发布
收藏
专利号: 2021114565549
申请人: 杭州复杂美科技有限公司
专利类型:发明专利
专利状态:授权未缴费
更新日期:2025-02-06
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种交易筛选和区块生成方法,其特征在于,适用于区块链节点,所述方法包括:根据预配置的区块共识规则计算当前节点应当参与共识的各第一区块高度;其中,所述区块共识规则包括当前节点的第一公开信息;

接收第一交易;

根据与所述区块共识规则匹配的预配置的交易存储规则计算所述第一交易是否应由当前节点存储:是,则根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度;其中,其中,所述交易存储规则和所述交易打包规则包括所述第一交易的第二公开信息,所述第二区块高度与当前区块高度之差大于第一数值;以及,将所述第一交易存储至所述第二区块高度的第一待打包队列;

否,则删除所述第一交易;

响应于获得第三区块高度的第三区块的打包权,根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区块并广播给其它区块链节点,以供其它区块链节点:在所述第三区块高度为应当参与共识的区块高度时,根据所述区块共识规则判断所述第三区块高度是否为当前节点应当参与共识的区块高度:是,则对各所述第二交易执行如下步骤:根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败;

其中,所述接收第一交易至所述删除所述第一交易步骤,与所述根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区块并广播给其它区块链节点步骤,并行执行。

2.根据权利要求1所述的方法,其特征在于,所述第一公开信息为当前节点的节点哈希,所述第二公开信息为所述第一交易的第一全哈希,所述根据预配置的区块共识规则计算当前节点应当参与共识的各第一区块高度包括:获取当前节点的节点哈希的第一M位,根据所述第一M位计算第一N进制数;

将第二N进制数与所述第一N进制数相同的各第四区块高度确定为所述各第一区块高度;其中,所述第二N进制数的计算方法为:(h mod N^M)===>>>(x2)2,(x2)2=(x1)2,h为第四区块高度,(x1)2为第一N进制数,(x2)2为第二N进制数;

所述根据与所述区块共识规则匹配的预配置的交易存储规则计算所述第一交易是否应由当前节点存储包括:获取所述第一全哈希的第二M位,根据所述第二M位计算第三N进制数;

判断所述第三N进制数与所述第一N进制数是否相同;

所述根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度包括:计算第五区块高度;其中,所述第五区块高度的计算方法为:min(h1)mod N^M===>>>(x3)2,min(h1)>当前区块高度+第一数值+1,min(h1)为第五区块高度,(x3)2为第三N进制数;以及,将所述第五区块高度确定为所述第二区块高度;

所述根据所述区块共识规则判断所述第三区块高度是否为当前节点应当参与共识的区块高度包括:获取所述第一M位,并计算所述第一N进制数;

计算第五N进制数;其中,所述第五N进制数的计算方法为:(h2 mod N^M)===>>>(x5)2,h2为第三区块高度,(x5)2为第五N进制数;

判断所述第一N进制数与所述第五N进制数是否相同;

所述根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败包括:

获取第二交易的第二全哈希的第三M位,根据所述第三M位计算第六N进制数;

计算所述第三区块高度与第二数值的第二余数;

将所述第二余数换算为第七N进制数;

在所述第六N进制数与所述第七N进制数不同时,执行所述第二交易失败。

3.根据权利要求1所述的方法,其特征在于,所述根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度包括:根据所述第一交易的预打包标识识别所述第一交易为指定区块高度的第一类交易或为不指定区块高度的第二类交易;

在所述第一交易为所述第一类交易时,根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度;

在所述第一交易为所述第二类交易时,将所述第一交易存储至即时打包队列;

所述根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区块包括:根据所述第三区块高度的第二待打包队列中的各第二交易,以及,所述即时打包队列中的若干交易生成所述第三区块。

4.根据权利要求1所述的方法,其特征在于,所述根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度包括:根据所述第一交易的第一手续费是否低于第三数值识别所述第一交易为指定区块高度的第一类交易或为不指定区块高度的第二类交易;

在所述第一交易为所述第一类交易时,根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度;

在所述第一交易为所述第二类交易时,将所述第一交易存储至即时打包队列;

所述根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区块包括:根据所述第三区块高度的第二待打包队列中的各第二交易,以及,所述即时打包队列中的若干交易生成所述第三区块。

5.根据权利要求1所述的方法,其特征在于,所述根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度包括:验证所述第一交易的签名信息是否正确,以及,验证所述第一交易是否可执行:在上述验证均通过时,根据与所述区块共识规则匹配的预配置的交易打包规则计算应当打包所述第一交易的第二区块高度;

在上述验证至少有一项未通过时,删除所述第一交易;

所述根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区块并广播给其它区块链节点包括:对各所述第二交易执行如下操作:

判断将所述第二交易加入所述第二待打包队列的第一时刻起,至所述第三区块高度的前一个区块的生成时刻中所生成的任一区块中,是否存在第三交易的第三交易发起方地址与所述第二交易的第二交易发起方地址相同:是,则在执行所述第二交易时验证所述第二交易是否可行;

否,则在执行所述第二交易时省略验证所述第二交易是否可行的步骤。

6.根据权利要求1所述的方法,其特征在于,各区块链节点的待打包队列配置有相同的交易排序方法,参与所述第三区块高度共识的各区块链节点在所述第三区块高度与当前区块高度之差为第四数值时,根据所述第三区块高度的第二待打包队列中的各第二交易预生成第一梅克尔根,其中,所述第四数值不大于所述第一数值;

所述对各所述第二交易执行如下步骤:根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败包括:判断所述第三区块的第二梅克尔根与所述第一梅克尔根是否相同:是,则省略所述对各所述第二交易执行如下步骤:根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败步骤;

否,则对各所述第二交易执行如下步骤:根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败。

7.根据权利要求1所述的方法,其特征在于,各区块链节点的待打包队列配置有相同的交易排序方法,参与所述第三区块高度共识的各区块链节点在所述第三区块高度与当前区块高度之差为第四数值时,根据所述第三区块高度的第二待打包队列中的各第二交易预生成第一梅克尔根,其中,所述第四数值不大于所述第一数值;

所述根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区块并广播给其它区块链节点包括:根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区块;

将所述第三区块的第二梅克尔根、包括各所述第二交易的第二交易哈希列表广播给其它区块链节点;

所述对各所述第二交易执行如下步骤:根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败包括:判断所述第三区块的第二梅克尔根与所述第一梅克尔根是否相同:是,则省略所述对各所述第二交易执行如下步骤:根据所述交易打包规则判断所述第二交易是否应当在所述第三区块高度被打包:否,则执行所述第二交易失败;

否,则向当前区块链节点请求所缺失的各所述第二交易哈希对应的第二交易;以及,对各请求到的第二交易执行如下步骤:根据所述交易打包规则判断所请求到的第二交易是否应当在所述第三区块高度被打包:否,则执行所请求到的第二交易失败。

8.根据权利要求1‑7任一项所述的方法,其特征在于,区块链中包括共识节点和非共识节点,其中,所述非共识节点不参与区块共识;

所述根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区块并广播给其它区块链节点包括:根据所述第三区块高度的第二待打包队列中的各第二交易生成所述第三区块并广播给其它共识节点;

所述第三区块还用于供其它共识节点:

在所述第三区块高度为不应当参与共识的区块高度时,删除所述第三区块;

所述方法还包括:

将经共识的所述第三区块广播给第三区块高度不应当参与共识的共识节点和非共识节点。

9.一种计算机设备,其特征在于,所述设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1‑8中任一项所述的方法。

10.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1‑8中任一项所述的方法。