[发明专利]区块数据处理方法及计算机存储介质有效
申请号: | 201811258483.X | 申请日: | 2018-10-26 |
公开(公告)号: | CN109617690B | 公开(公告)日: | 2021-04-09 |
发明(设计)人: | 牛冬 | 申请(专利权)人: | 北京新唐思创教育科技有限公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/30;H04L9/06;G06Q20/38 |
代理公司: | 北京合智同创知识产权代理有限公司 11545 | 代理人: | 李杰;兰淑铎 |
地址: | 100144 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 区块 数据处理 方法 计算机 存储 介质 | ||
1.一种区块数据处理方法,应用于联盟区块链,其特征在于,所述联盟区块链的中心节点中设置有素数发号器,所述素数发号器用于为所述联盟区块链中的每个待生成的区块分配素数;
所述方法包括:
所述中心节点接收所述联盟区块链中的节点发送的至少一个HASH值,其中,每个HASH值对应一条待生成的区块的数据记录;
所述中心节点针对每个HASH值判断是否已分配过素数;
若否,则通过所述素数发号器为未分配过素数的HASH值分配素数,以使所述HASH值对应的节点根据所述素数生成所述节点的验证树;
若是,则为已分配过素数的HASH值返回对应的素数;
所述验证树为二叉树,所述验证树中的叶子节点的值为当前叶子节点的HASH值对应的素数,所述验证树中的非叶子节点的值为当前非叶子节点的下一级节点的值的乘积,以在验证时比较两个节点的二叉树的根节点的值是否相同;若相同,则确定所述两个节点的区块数据一致。
2.根据权利要求1所述的方法,其特征在于,在所述中心节点接收所述联盟区块链中的节点发送的至少一个HASH值之前,所述方法还包括:
所述中心节点通过所述素数发号器生成至少两个素数列表,其中,不同的素数列表中存储的素数的数量相同但数值不同;
从所述至少两个素数列表中确定主素数列表,其中,所述主素数列表用于分配素数。
3.根据权利要求2所述的方法,其特征在于,所述素数列表为2个,包括第一素数列表和第二素数列表,其中,所述第一素数列表为主素数列表;
所述通过所述素数发号器为未分配过素数的HASH值分配素数,包括:
通过所述素数发号器检查所述第一素数列表中的剩余素数的数量是否大于或等于所述未分配过素数的HASH值的数量;
若是,则使用所述第一素数列表中的素数,通过所述素数发号器为未分配过素数的HASH值分配素数;
若否,则使用所述第二素数列表中的素数更新所述第一素数列表中的素数,并使用更新后的所述第一素数列表中的素数,通过所述素数发号器为未分配过素数的HASH值分配素数。
4.根据权利要求1所述的方法,其特征在于,在所述通过所述素数发号器为未分配过素数的HASH值分配素数之后,所述方法还包括:
将所述HASH值与为其分配的素数的映射关系存储至缓存中。
5.根据权利要求1所述的方法,其特征在于,所述验证树为Merkle树。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收到数据验证触发操作,其中,所述数据验证触发操作用于指示验证两个节点的区块数据是否一致;
根据所述触发操作,获取待验证的两个节点的Merkle树,其中,所述两个节点包括当前节点;
若比较所述两个节点的Merkle树的根节点的值不相同,则根据所述两个节点的Merkle树的根节点的值,确定不一致的区块数据。
7.根据权利要求6所述的方法,其特征在于,所述根据所述两个节点的Merkle树的根节点的值,确定不一致的区块数据,包括:
对所述两个节点的Merkle树的根节点的值进行素数分解,得到对应的两个素数列表;
对得到的所述两个素数列表中的各个素数的数值进行比较操作,获得数值不同的两个素数;
确定所述两个素数对应的两个区块数据为不一致的区块数据。
8.根据权利要求7所述的方法,其特征在于,在所述确定所述两个素数对应的两个区块数据为不一致的区块数据之后,所述方法还包括:
确定所述两个素数对应的HASH值及所述HASH值对应的区块数据;
从所述联盟区块链中除所述两个节点之外的其它节点中,获取确定的所述HASH值对应的区块数据;
比较所述其它节点中的区块数据和所述两个素数对应的区块数据;
将不一致的区块数据更新为所述其它节点中的区块数据。
9.一种计算机存储介质,所述计算机存储介质设置于联盟区块链的中心节点中,所述计算机存储介质中存储有可读程序,其特征在于,所述可读程序应用于联盟区块链,所述联盟区块链的中心节点中设置有素数发号器,所述素数发号器用于为所述联盟区块链中的每个待生成的区块分配素数;
所述可读程序包括:
用于接收所述联盟区块链中的节点发送的至少一个HASH值的指令,其中,每个HASH值对应一条待生成的区块的数据记录;
用于针对每个HASH值判断是否已分配过素数的指令;
用于若判断结果为否,则通过所述素数发号器为未分配过素数的HASH值分配素数,以使所述HASH值对应的节点根据所述素数生成所述节点的验证树的指令;
用于若判断结果为是,则为已分配过素数的HASH值返回对应的素数的指令;
所述验证树为二叉树,所述验证树中的叶子节点的值为当前叶子节点的HASH值对应的素数,所述验证树中的非叶子节点的值为当前非叶子节点的下一级节点的值的乘积,用于在验证时比较两个节点的二叉树的根节点的值是否相同;若相同,则确定所述两个节点的区块数据一致。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新唐思创教育科技有限公司,未经北京新唐思创教育科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811258483.X/1.html,转载请声明来源钻瓜专利网。