区块链的节点共识方法、装置、设备和计算机程序产品制造方法及图纸

技术编号:39148476 阅读:7 留言:0更新日期:2023-10-23 14:57
本申请涉及区块链技术领域,提供一种区块链的节点共识方法、装置、设备和计算机程序产品。该方法包括:基于区块链所有节点的历史共识数据,确定各节点的共识结果的相似度;基于各节点的共识结果的相似度,确定至少一个虚拟逻辑分区;确定每个虚拟逻辑分区的主节点,基于业务请求从所有主节点中确定一目标主节点,并基于目标主节点发起共识;基于每个虚拟逻辑分区中各节点的共识成功率,确定至少一个节点与目标主节点进行共识。本申请基于虚拟逻辑分区组网架构,将共识结果高度一致的节点分配至相同的虚拟逻辑分区,基于虚拟逻辑分区实现共识,以减少共识节点和共识次数,避免恶意节点发起共识,提高共识效率和准确性,从而提高区块链的交易效率。块链的交易效率。块链的交易效率。

【技术实现步骤摘要】
区块链的节点共识方法、装置、设备和计算机程序产品


[0001]本申请涉及区块链
,具体涉及一种区块链的节点共识方法、装置、设备和计算机程序产品。

技术介绍

[0002]目前,常用的共识方法是拜占庭容错方法,该方法是一种状态机副本复制算法,包括Request(请求)、Pre

prepare(预准备)、Prepare(准备)、Commit(提交)和Reply(回复)多个阶段,保证活性和安全性的前提下提供了(n

1)/3的容错性。在Request阶段客户端向主节点发出请求时,主节点采用随机选取,如果选取到恶意节点发起共识,则正常节点、恶意主节点检查结果不同,无法通过验证,此时需要重新选取主节点重新验证,造成区块链系统效率低;在Commit阶段需要全部节点共同验证,由于节点分布在不同区域,会受限于网络环境、资源处理能力,共识过程极慢。因此,由于共识效率低,从而导致区块链的交易效率低。

技术实现思路

[0003]本申请实施例提供一种区块链的节点共识方法、装置、设备和计算机程序产品,用以解决由于共识效率低导致区块链的交易效率低的问题。
[0004]第一方面,本申请实施例提供一种区块链的节点共识方法,包括:
[0005]基于区块链所有节点的历史共识数据,确定各节点的共识结果的相似度;
[0006]基于所述各节点的共识结果的相似度,确定至少一个虚拟逻辑分区;
[0007]确定每个所述虚拟逻辑分区的主节点,基于业务请求从所有所述主节点中确定一目标主节点,并基于所述目标主节点发起共识;
[0008]基于每个所述虚拟逻辑分区中各节点的共识成功率,确定至少一个节点与所述目标主节点进行共识。
[0009]在一个实施例中,所述基于区块链所有节点的历史共识数据,确定各节点的共识结果的相似度,包括:
[0010]基于所述区块链所有节点的历史共识数据,构建共识矩阵;
[0011]对所述共识矩阵进行归一化处理,并确定归一化后的共识矩阵中任意两个特征向量的相关系数;
[0012]若所述相关系数大于设定阈值,则删除任一所述特征向量,得到样本共识矩阵;
[0013]基于所述样本共识矩阵,确定所述各节点的共识结果的相似度。
[0014]在一个实施例中,所述基于所述各节点的共识结果的相似度,确定至少一个虚拟逻辑分区,包括:
[0015]确定每个初始分区的中心点;
[0016]计算所有节点与每个所述中心点的距离,将所述节点划分至距离所述中心点最短距离的初始分区,形成至少一个所述虚拟逻辑分区;所述距离用于表征所述共识结果的相似度。
[0017]在一个实施例中,所述确定每个初始分区的中心点,包括:
[0018]若所述初始分区为第一初始分区,则基于所述样本共识矩阵以及所述区块链的节点数,确定所述第一初始分区的中心点;
[0019]若所述初始分区为第二初始分区,则基于所述各节点与所述第一初始分区的中心点的距离,确定所述第二初始分区的中心点。
[0020]在一个实施例中,所述确定每个所述虚拟逻辑分区的主节点,包括:
[0021]确定每个所述虚拟逻辑分区中共识成功率最高的节点,并将所述共识成功率最高的节点作为所述主节点。
[0022]在一个实施例中,所述基于业务请求从所有所述主节点中确定一目标主节点,包括:
[0023]基于所述业务请求,获取客户端的ID;
[0024]对所述客户端的ID进行哈希处理,得到一致性哈希值;
[0025]对所述一致性哈希值进行求模处理,得到余数值;
[0026]确定所述余数值与所述虚拟逻辑分区的编号的匹配结果;
[0027]基于所述匹配结果,将与所述余数值匹配的编号对应的虚拟逻辑分区的主节点作为所述目标主节点。
[0028]在一个实施例中,所述基于每个所述虚拟逻辑分区中各节点的共识成功率,确定至少一个节点与所述目标主节点进行共识,包括:
[0029]基于每个所述虚拟逻辑分区中各节点的共识成功次数和参与共识总次数,确定所述各节点的共识成功率;
[0030]确定所述共识成功率大于设定成功率的至少一个节点,与所述目标节点进行共识。
[0031]第二方面,本申请实施例提供一种区块链的节点共识装置,包括:
[0032]相似度确定模块,用于基于区块链所有节点的历史共识数据,确定各节点的共识结果的相似度;
[0033]虚拟逻辑分区确定模块,用于基于所述各节点的共识结果的相似度,确定至少一个虚拟逻辑分区;
[0034]主节点确定模块,用于确定每个所述虚拟逻辑分区的主节点,基于业务请求从所有所述主节点中确定一目标主节点,并基于所述目标主节点发起共识;
[0035]共识模块,用于基于每个所述虚拟逻辑分区中各节点的共识成功率,确定至少一个节点与所述目标主节点进行共识。
[0036]第三方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面所述的区块链的节点共识方法的步骤。
[0037]第四方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的区块链的节点共识方法的步骤。
[0038]本申请实施例提供的区块链的节点共识方法、装置、设备和计算机程序产品,通过基于区块链所有节点的历史共识数据,确定各节点的共识结果的相似度;基于各节点的共识结果的相似度,确定至少一个虚拟逻辑分区;确定每个虚拟逻辑分区的主节点,基于业务请求从所有主节点中确定一目标主节点,并基于目标主节点发起共识;基于每个虚拟逻辑
分区中各节点的共识成功率,确定至少一个节点与目标主节点进行共识。本申请基于虚拟逻辑分区组网架构,将共识结果高度一致的节点分配至相同的虚拟逻辑分区,基于虚拟逻辑分区实现共识,以减少共识节点和共识次数,避免恶意节点发起共识,提高共识效率和准确性,从而提高区块链的交易效率。
附图说明
[0039]为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]图1是本申请实施例提供的区块链的节点共识方法的流程示意图之一;
[0041]图2是本申请实施例提供的虚拟逻辑分区的结构示意图;
[0042]图3是本申请实施例提供的区块链的节点共识方法的流程示意图之二;
[0043]图4是拜占庭容错方法的工作原理示意图;
[0044]图5是本申请实施例提供的区块链的节点共识装置的结构示意图;
[0045]图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
[0046]为使本申请的目的、技术方案和优点更加清楚本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链的节点共识方法,其特征在于,包括:基于区块链所有节点的历史共识数据,确定各节点的共识结果的相似度;基于所述各节点的共识结果的相似度,确定至少一个虚拟逻辑分区;确定每个所述虚拟逻辑分区的主节点,基于业务请求从所有所述主节点中确定一目标主节点,并基于所述目标主节点发起共识;基于每个所述虚拟逻辑分区中各节点的共识成功率,确定至少一个节点与所述目标主节点进行共识。2.根据权利要求1所述的区块链的节点共识方法,其特征在于,所述基于区块链所有节点的历史共识数据,确定各节点的共识结果的相似度,包括:基于所述区块链所有节点的历史共识数据,构建共识矩阵;对所述共识矩阵进行归一化处理,并确定归一化后的共识矩阵中任意两个特征向量的相关系数;若所述相关系数大于设定阈值,则删除任一所述特征向量,得到样本共识矩阵;基于所述样本共识矩阵,确定所述各节点的共识结果的相似度。3.根据权利要求2所述的区块链的节点共识方法,其特征在于,所述基于所述各节点的共识结果的相似度,确定至少一个虚拟逻辑分区,包括:确定每个初始分区的中心点;计算所有节点与每个所述中心点的距离,将所述节点划分至距离所述中心点最短距离的初始分区,形成至少一个所述虚拟逻辑分区;所述距离用于表征所述共识结果的相似度。4.根据权利要求3所述的区块链的节点共识方法,其特征在于,所述确定每个初始分区的中心点,包括:若所述初始分区为第一初始分区,则基于所述样本共识矩阵以及所述区块链的节点数,确定所述第一初始分区的中心点;若所述初始分区为第二初始分区,则基于所述各节点与所述第一初始分区的中心点的距离,确定所述第二初始分区的中心点。5.根据权利要求1所述的区块链的节点共识方法,其特征在于,所述确定每个所述虚拟逻辑分区的主节点,包括:确定每个所述虚拟逻辑分区中共识成功率最高的...

【专利技术属性】
技术研发人员:闫文超
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1