区块链网络的共识处理方法、装置、介质及电子设备制造方法及图纸

技术编号:26342895 阅读:11 留言:0更新日期:2020-11-13 20:39
本申请的实施例提供了一种区块链网络的共识处理方法、装置、介质及电子设备。该共识处理方法包括:接收第

Consensus processing method, device, medium and electronic equipment of blockchain network

【技术实现步骤摘要】
区块链网络的共识处理方法、装置、介质及电子设备
本申请涉及计算机及通信
,具体而言,涉及一种区块链网络的共识处理方法、装置、介质及电子设备。
技术介绍
区块链技术广泛应用于金融、征信、银行等领域,相关技术中针对区块链技术提出的BFT(ByzantineFaultTolerance,拜占庭容错)共识算法属于串行共识算法,即一个区块需要经过一个包含完整的提案、预投票、预提交投票、写账本等过程的共识阶段,然而这种串行共识算法存在共识效率及性能较低的问题。
技术实现思路
本申请的实施例提供了一种区块链网络的共识处理方法、装置、介质及电子设备,进而至少在一定程度上可以提高区块的共识效率,有利于提升共识算法的性能。本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。根据本申请实施例的一个方面,提供了一种区块链网络的共识处理方法,包括:接收第i+1个区块的提案消息,所述提案消息中包含有区块链网络中的节点针对第i个区块的投票结果集合;根据所述第i+1个区块的提案消息对所述第i+1个区块进行投票,以使所述区块链网络中的节点统计针对所述第i+1个区块的投票结果集合,并在第i+2个区块的提案消息中添加针对所述第i+1个区块的投票结果集合;根据所述第i个区块的投票结果集合确定区块池中是否存在能够写入区块链账本中的目标区块,所述区块池用于存储生成的区块;若确定存在所述目标区块,则将所述目标区块写入区块链账本中。根据本申请实施例的一个方面,提供了一种区块链网络的共识处理装置,包括:接收单元,配置为接收第i+1个区块的提案消息,所述提案消息中包含有区块链网络中的节点针对第i个区块的投票结果集合;第一处理单元,配置为根据所述第i+1个区块的提案消息对所述第i+1个区块进行投票,以使所述区块链网络中的节点统计针对所述第i+1个区块的投票结果集合,并在第i+2个区块的提案消息中添加针对所述第i+1个区块的投票结果集合;第二处理单元,配置为根据所述第i个区块的投票结果集合确定区块池中是否存在能够写入区块链账本中的目标区块,所述区块池用于存储生成的区块;第三处理单元,配置为在确定存在所述目标区块时,将所述目标区块写入区块链账本中。在本申请的一些实施例中,基于前述方案,所述第二处理单元配置为:根据所述第i个区块的投票结果集合,从所述区块池中获取所述第i个区块;若从所述区块池中获取到所述第i个区块,则根据所述第i个区块中包含的前序区块哈希从所述区块池中获取第i-1个区块;若从所述区块池中获取到所述第i-1个区块,则根据所述第i-1个区块中包含的前序区块哈希从所述区块池中获取第i-2个区块;若从所述区块池中获取到所述第i-2个区块,且所述第i-2个区块、所述第i-1个区块、所述第i个区块分别对应的区块高度连续,则确定所述第i-2个区块能够写入所述区块链账本中。在本申请的一些实施例中,基于前述方案,所述第二处理单元配置为:若从所述区块池中未获取到所述第i个区块、或者从所述区块池中未获取到所述第i-1个区块、或者从所述区块池中未获取到所述第i-2个区块,则确定当前不存在能够写入区块链账本中的目标区块。在本申请的一些实施例中,基于前述方案,所述区块池中包含有区块映射表,所述区块映射表用于存储区块哈希与区块数据之间的映射关系;所述第二处理单元配置为:根据所述第i个区块的区块哈希从所述区块映射表中查询并获取所述第i个区块。在本申请的一些实施例中,基于前述方案,所述第一处理单元还配置为:在对所述第i+1个区块进行投票之前,对所述第i+1个区块进行如下的安全检查,当如下的安全检查均检查通过时,确定对所述第i+1个区块的安全检查通过:检查所述第i+1个区块的区块高度是否小于已投票区块的区块高度,若是,则确定检查未通过;根据所述第i+1个区块中包含的前序区块哈希从所述区块池中获取所述第i+1个区块的前序区块,若未获取到所述第i+1个区块的前序区块,则确定检查未通过;检查所述第i+1个区块的前序区块的区块高度是否小于已锁定区块的区块高度,若是,则确定检查未通过。在本申请的一些实施例中,基于前述方案,所述的共识处理装置还包括:添加单元,配置为在生成第j个区块之后,将所述第j个区块添加至所述区块池中;生成单元,配置为生成所述第j个区块的提案消息,所述提案消息中包含有所述区块链网络中的节点针对第j-1个区块的投票结果集合;广播单元,配置为将所述第j个区块的提案消息广播至所述区块链网络中,以使所述区块链网络中的节点对所述第j个区块进行投票。在本申请的一些实施例中,基于前述方案,所述区块池中包含有区块映射表,所述区块映射表用于存储区块哈希与区块数据之间的映射关系;所述添加单元配置为:根据所述第j个区块的区块哈希确定是否能够从所述区块映射表中查询到所述第j个区块,若是,则确定添加成功;若不能从所述区块映射表中查询到所述第j个区块,则根据所述第j个区块中包含的前序区块哈希确定从所述区块映射表中是否能够查询到所述第j个区块的前序区块;若从所述区块映射表中能够查询到所述第j个区块的前序区块,则将所述第j个区块添加至所述区块映射表中。在本申请的一些实施例中,基于前述方案,所述区块池中包含有区块映射表和区块确认表,所述区块映射表用于存储区块哈希与区块数据之间的映射关系,所述区块确认表用于存储区块哈希与区块的投票结果集合之间的映射关系;所述添加单元还配置为:根据所述第j-1个区块的区块哈希确定是否能够从所述区块确认表中查询到所述第j-1个区块的投票结果集合,若是,则确定所述第j-1个区块的投票结果集合添加成功;若不能从所述区块确认表中查询到所述第j-1个区块的投票结果集合,则根据所述第j-1个区块的区块哈希确定从所述区块映射表中是否能够查询到所述第j-1个区块;若从所述区块映射表中能够查询到所述第j-1个区块、且所述第j-1个区块的区块高度大于所述区块池中最新投票通过的区块的高度,则将所述第j-1个区块的投票结果集合添加至所述区块确认表中。在本申请的一些实施例中,基于前述方案,所述区块池中还包含有第一指示信息,所述第一指示用于指示最新投票通过的区块;所述共识处理装置还包括:第一更新单元,配置为在将所述第j-1个区块的投票结果集合添加至所述区块确认表中之后,通过所述第j-1个区块更新所述第一指示信息,以使所述第一指示信息指示所述第j-1个区块。在本申请的一些实施例中,基于前述方案,所述区块池中还包含有第二指示信息,所述第二指示信息用于指示所述区块池维护的最新账本区块;所述第三处理单元还配置为:在将所述目标区块写入区块链账本中之后,若所述区块链账本中的最新区块与所述第二指示信息指示的最新账本区块不一致,则删除所述区块池中需要精简的区块,并通过所述区块链账本中的最新区块更新所述第二指示信息,以使所述第二指示信息指示所述区块链账本中的最新区块,其中,所述需要精简的区块包括所述区块池中除所述最新区块及所述最新区块的后续区块之外的其它区块。在本申请的一些实施例中,基于前述方案,所述的共识处理装置还包括第四本文档来自技高网...

【技术保护点】
1.一种区块链网络的共识处理方法,其特征在于,包括:/n接收第

【技术特征摘要】
1.一种区块链网络的共识处理方法,其特征在于,包括:
接收第i+1个区块的提案消息,所述提案消息中包含有区块链网络中的节点针对第i个区块的投票结果集合;
根据所述第i+1个区块的提案消息对所述第i+1个区块进行投票,以使所述区块链网络中的节点统计针对所述第i+1个区块的投票结果集合,并在第i+2个区块的提案消息中添加针对所述第i+1个区块的投票结果集合;
根据所述第i个区块的投票结果集合确定区块池中是否存在能够写入区块链账本中的目标区块,所述区块池用于存储生成的区块;
若确定存在所述目标区块,则将所述目标区块写入区块链账本中。


2.根据权利要求1所述的共识处理方法,其特征在于,根据所述第i个区块的投票结果集合确定区块池中是否存在能够写入区块链账本中的目标区块,包括:
根据所述第i个区块的投票结果集合,从所述区块池中获取所述第i个区块;
若从所述区块池中获取到所述第i个区块,则根据所述第i个区块中包含的前序区块哈希从所述区块池中获取第i-1个区块;
若从所述区块池中获取到所述第i-1个区块,则根据所述第i-1个区块中包含的前序区块哈希从所述区块池中获取第i-2个区块;
若从所述区块池中获取到所述第i-2个区块,且所述第i-2个区块、所述第i-1个区块、所述第i个区块分别对应的区块高度连续,则确定所述第i-2个区块能够写入所述区块链账本中。


3.根据权利要求2所述的共识处理方法,其特征在于,还包括:
若从所述区块池中未获取到所述第i个区块、或者从所述区块池中未获取到所述第i-1个区块、或者从所述区块池中未获取到所述第i-2个区块,则确定当前不存在能够写入区块链账本中的目标区块。


4.根据权利要求2所述的共识处理方法,其特征在于,所述区块池中包含有区块映射表,所述区块映射表用于存储区块哈希与区块数据之间的映射关系;
根据所述第i个区块的投票结果集合,从所述区块池中获取所述第i个区块,包括:根据所述第i个区块的区块哈希从所述区块映射表中查询并获取所述第i个区块。


5.根据权利要求1所述的共识处理方法,其特征在于,在对所述第i+1个区块进行投票之前,所述共识处理方法还包括:对所述第i+1个区块进行如下的安全检查,当如下的安全检查均检查通过时,确定对所述第i+1个区块的安全检查通过:
检查所述第i+1个区块的区块高度是否小于已投票区块的区块高度,若是,则确定检查未通过;
根据所述第i+1个区块中包含的前序区块哈希从所述区块池中获取所述第i+1个区块的前序区块,若未获取到所述第i+1个区块的前序区块,则确定检查未通过;
检查所述第i+1个区块的前序区块的区块高度是否小于已锁定区块的区块高度,若是,则确定检查未通过。


6.根据权利要求1所述的共识处理方法,其特征在于,还包括:
在生成第j个区块之后,将所述第j个区块添加至所述区块池中;
生成所述第j个区块的提案消息,所述提案消息中包含有所述区块链网络中的节点针对第j-1个区块的投票结果集合;
将所述第j个区块的提案消息广播至所述区块链网络中,以使所述区块链网络中的节点对所述第j个区块进行投票。


7.根据权利要求6所述的共识处理方法,其特征在于,所述区块池中包含有区块映射表,所述区块映射表用于存储区块哈希与区块数据之间的映射关系;
将所述第j个区块添加至所述区块池中,包括:
根据所述第j个区块的区块哈希确定是否能够从所述区块映射表中查询到所述第j个区块,若是,则确定添加成功;
若不能从所述区块映射表中查询到所述第j个区块,则根据所述第j个区块中包含的前序区块哈希确定从所述区块映射表中是否能够查询到所述第j个区块的前序区块;
若从所述区块映射表中能够查询到所述第j个区块的前序区块,则将所述第j个区块添加至所述区块映射表中。


8.根据权利要求6所述的共识处理方法,其特征在于,所述区块池中包含有区块映射表和区块确认表,所述区块映射表用于存储区块哈希与区块数据之间的映射关系,所述区块确认表用于存储区块哈希与区块的投票结果集合之间的映射关系;
所述的共识处理方法还...

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

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

1