区块同步方法、装置、计算机以及存储介质制造方法及图纸

技术编号:24331163 阅读:21 留言:0更新日期:2020-05-29 19:39
本申请实施例公开了一种区块同步方法,包括:第一节点设备获取第二节点设备发送的交易区块,所述交易区块的区块头中包括多个核心节点的投票信息及区块头属性参数;检测所述区块头属性参数的合法性;根据所述交易区块的区块头中的所述投票信息确定所述交易区块的共识结果;若所述区块头属性参数为合法参数,且所述共识结果为共识成功结果,则将所述交易区块加入所述第一节点设备对应的交易账本中。采用本申请,可以保障同步的区块的真实有效性,以提高业务数据的准确性。

【技术实现步骤摘要】
区块同步方法、装置、计算机以及存储介质
本申请涉及区块链
,尤其涉及一种区块同步方法、装置、计算机以及存储介质。
技术介绍
由于区块链的去中心及防篡改的特性,使得区块链的应用越来越广泛,在区块链中节点间进行区块同步时,确保区块数据的准确性也就极为重要。当前,在区块链中的节点间进行区块同步时,正在同步区块的节点一般通过先同步区块的区块头,校验区块头中所包含的前继区块哈希和该区块对应的前继区块的哈希值是否一致,在两者一致的情况下,将该区块写入该节点的账本中,这种基于哈希值对比的简单校验,使得该节点同步的区块中可能存在部分数据的真实性无法得到验证,也就可能导致存在该节点所同步的区块与合法的核心节点中的区块不一致的情况,从而降低同步的区块的真实有效性。
技术实现思路
本申请实施例提供了一种区块同步方法和装置,可以提高同步的区块的准确性。本申请实施例一方面提供了一种区块同步方法,包括:第一节点设备获取第二节点设备发送的交易区块,所述交易区块的区块头中包括多个核心节点的投票信息及区块头属性参数;检测所述区块头属性参数的合法性;根据所述交易区块的区块头中的所述投票信息确定所述交易区块的共识结果;若所述区块头属性参数为合法参数,且所述共识结果为共识成功结果,则将所述交易区块加入所述第一节点设备对应的交易账本中。本申请实施例一方面提供了一种区块同步装置,所述装置包括:第一获取模块,用于第一节点设备获取第二节点设备发送的交易区块,所述交易区块的区块头中包括多个核心节点的投票信息及区块头属性参数;检测模块,用于检测所述区块头属性参数的合法性;第一确定模块,用于根据所述交易区块的区块头中的所述投票信息确定所述交易区块的共识结果;添加模块,用于若所述区块头属性参数为合法参数,且所述共识结果为共识成功结果,则将所述交易区块加入所述第一节点设备对应的交易账本中。其中,所述投票信息包括投票区块哈希;所述装置还包括:第二确定模块,用于根据所述区块头属性参数确定所述交易区块的区块头哈希;所述第一确定模块,包括:对比单元,用于对比所述区块头哈希与多个所述投票信息对应的投票区块哈希;第一确定单元,用于若多个所述投票信息中存在非法投票信息,则确定所述交易区块的所述共识结果为共识失败结果;所述非法投票信息对应的投票区块哈希与所述区块头哈希不同;所述第一确定单元,还用于若所述多个投票信息均为合法投票信息,则确定所述交易区块的所述共识结果为所述共识成功结果。其中,所述交易区块的区块头中的所述投票信息还包括对应核心节点的标识及投票签名;所述第一确定模块,包括:第一获取单元,用于获取合法核心节点列表;所述合法核心节点列表包括所述多个核心节点的标识及每个标识对应的公钥;第二确定单元,用于若所述多个核心节点中存在不属于所述合法核心节点列表的核心节点,则确定所述交易区块的所述共识结果为共识失败结果;投票验签单元,用于若所述多个核心节点均属于所述合法核心节点列表,则根据所述核心节点的标识获取所述核心节点的公钥,采用所述核心节点的公钥对对应核心节点的投票签名进行验签;所述第二确定单元,还用于若所述多个核心节点中存在投票签名验签失败的核心节点,则确定所述交易区块的所述共识结果为共识失败结果;所述第二确定单元,还用于若所述多个核心节点的投票签名均验签成功,则确定所述交易区块的所述共识结果为所述共识成功结果。其中,所述第一确定模块,包括:统计单元,用于将所述多个核心节点的投票信息中投票成功的投票信息确定为目标投票信息,统计所述目标投票信息的投票数量;第三确定单元,用于若所述投票数量小于投票阈值,则确定所述交易区块的所述共识结果为共识失败结果;所述第三确定单元,还用于若所述投票数量大于或等于所述投票阈值,则确定所述交易区块的所述共识结果为所述共识成功结果。其中,所述区块头属性参数包括所述交易区块的前继哈希值及所述交易区块的区块高度;所述检测模块,包括:第二获取单元,用于获取所述交易区块的所述前继哈希值及所述区块高度;第一查找单元,用于根据所述区块高度确定所述交易区块的前继区块高度,基于所述前继区块高度从所述交易账本中查找所述交易区块的前继区块;第四确定单元,用于若未查找到所述前继区块,则确定所述区块头属性参数为非法参数;所述第四确定单元,还用于若查找到所述前继区块,则获取所述前继区块的区块头哈希值,若所述前继区块的区块头哈希值与所述前继哈希值不同,则确定所述区块头属性参数为非法参数;所述第四确定单元,还用于若所述前继区块的区块头哈希值与所述前继哈希值相同,则确定所述区块头属性参数为所述合法参数。其中,所述检测模块,包括:第三获取单元,用于获取区块头属性集合,所述区块头属性集合包括多个区块头属性;第二查找单元,用于从所述交易区块的区块头中查找每个区块头属性对应的区块头属性参数;第五确定单元,用于若所述多个区块头属性中存在缺失区块头属性,则确定所述区块头属性参数为非法参数;所述缺失区块头属性在所述区块头中无对应的所述区块头属性参数。其中,所述装置还包括:第二获取模块,用于获取所述交易区块的区块体中的交易数据,根据所述交易数据获取所述交易区块的查验默克尔根;所述检测模块,包括:第五获取单元,用于获取所述交易区块的区块头属性参数中的默认默克尔根;第六确定单元,用于若所述默认默克尔根与所述查验默克尔根不相同,则确定所述区块头属性参数为非法参数;所述第六确定单元,还用于若所述默认默克尔根与所述查验默克尔根相同,则确定所述区块头属性参数为所述合法参数。其中,所述交易区块还包括区块生成签名;所述检测模块,包括:第六获取单元,用于获取所述交易区块的所述区块生成签名及所述交易区块的生成核心节点的公钥;生成验签单元,用于采用所述生成核心节点的公钥对所述区块生成签名进行验签;第七确定单元,用于若验签不通过,则确定所述区块头属性参数为非法参数;所述第七确定单元,还用于若验签通过,则确定所述区块头属性参数为合法参数。其中,所述装置还包括:第三确定模块,用于若所述共识结果为共识失败结果,则在所述多个核心节点中确定异常核心节点,所述异常核心节点为具有异常的投票信息的核心节点;删除模块,用于删除所述交易区块;广播模块,用于广播投票信息异常消息,所述投票信息异常消息包括所述异常核心节点,以使所述多个核心节点对所述异常核心节点进行核验。其中,所述装置还包括:解析模块,用于若所述区块头属性参数为合法参数,且所述共识结果为共识成功结果,则获取所述交易区块的区块体中的交易数据,解析所述交易数据得到交易过程;执行模块,用于执行所述交易过程,得到所述交易过程的执行结果;存储模块,用于本文档来自技高网...

【技术保护点】
1.一种区块同步方法,其特征在于,所述方法包括:/n第一节点设备获取第二节点设备发送的交易区块,所述交易区块的区块头中包括多个核心节点的投票信息及区块头属性参数;/n检测所述区块头属性参数的合法性;/n根据所述交易区块的区块头中的所述投票信息确定所述交易区块的共识结果;/n若所述区块头属性参数为合法参数,且所述共识结果为共识成功结果,则将所述交易区块加入所述第一节点设备对应的交易账本中。/n

【技术特征摘要】
1.一种区块同步方法,其特征在于,所述方法包括:
第一节点设备获取第二节点设备发送的交易区块,所述交易区块的区块头中包括多个核心节点的投票信息及区块头属性参数;
检测所述区块头属性参数的合法性;
根据所述交易区块的区块头中的所述投票信息确定所述交易区块的共识结果;
若所述区块头属性参数为合法参数,且所述共识结果为共识成功结果,则将所述交易区块加入所述第一节点设备对应的交易账本中。


2.如权利要求1所述的方法,其特征在于,所述投票信息包括投票区块哈希;所述方法还包括:
根据所述区块头属性参数确定所述交易区块的区块头哈希;
所述根据所述交易区块的区块头中的所述投票信息确定所述交易区块的共识结果,包括:
对比所述区块头哈希与多个所述投票信息对应的投票区块哈希;
若多个所述投票信息中存在非法投票信息,则确定所述交易区块的所述共识结果为共识失败结果;所述非法投票信息对应的投票区块哈希与所述区块头哈希不同;
若所述多个投票信息均为合法投票信息,则确定所述交易区块的所述共识结果为所述共识成功结果。


3.如权利要求1所述的方法,其特征在于,所述交易区块的区块头中的所述投票信息还包括对应核心节点的标识及投票签名;
所述根据所述交易区块的区块头中的所述投票信息确定所述交易区块的共识结果,包括:
获取合法核心节点列表;所述合法核心节点列表包括所述多个核心节点的标识及每个标识对应的公钥;
若所述多个核心节点中存在不属于所述合法核心节点列表的核心节点,则确定所述交易区块的所述共识结果为共识失败结果;
若所述多个核心节点均属于所述合法核心节点列表,则根据所述核心节点的标识获取所述核心节点的公钥,采用所述核心节点的公钥对对应核心节点的投票签名进行验签;
若所述多个核心节点中存在投票签名验签失败的核心节点,则确定所述交易区块的所述共识结果为共识失败结果;
若所述多个核心节点的投票签名均验签成功,则确定所述交易区块的所述共识结果为所述共识成功结果。


4.如权利要求1所述的方法,其特征在于,所述根据所述交易区块的区块头中的所述投票信息确定所述交易区块的共识结果,包括:
将所述多个核心节点的投票信息中投票成功的投票信息确定为目标投票信息,统计所述目标投票信息的投票数量;
若所述投票数量小于投票阈值,则确定所述交易区块的所述共识结果为共识失败结果;
若所述投票数量大于或等于所述投票阈值,则确定所述交易区块的所述共识结果为所述共识成功结果。


5.如权利要求1所述的方法,其特征在于,所述区块头属性参数包括所述交易区块的前继哈希值及所述交易区块的区块高度;
所述检测所述区块头属性参数的合法性,包括:
获取所述交易区块的所述前继哈希值及所述区块高度;
根据所述区块高度确定所述交易区块的前继区块高度,基于所述前继区块高度从所述交易账本中查找所述交易区块的前继区块;
若未查找到所述前继区块,则确定所述区块头属性参数为非法参数;
若查找到所述前继区块,则获取所述前继区块的区块头哈希值,若所述前继区块的区块头哈希值与所述前继哈希值不同,则确定所述区块头属性参数为非法参数;
若所述前继区块的区块头哈希值与所述前继哈希值相同,则确定所述区块头属性参数为所述合法参数。


6.如权利要求1所述的方法,其特征在于,所述检测所述区块头属性参数的合法性,包括:
获取区块头属性集合,所述区块头属性集合包括多个区块头属性;
从所述交易区块的区块头中查找每个区块头属性对应的区块头属性参数;
若所述多个区块头属性中存在缺失区块头属性,则确定所述区块头属性参数为非法参数;所述缺失区块头属性在所述区块头中无对应的所述区块头属性参数。


7.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述交易区块的区块体中的交易数据,根据所述交易数据...

【专利技术属性】
技术研发人员:刘攀
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1