共识节点确定方法、装置及存储介质制造方法及图纸

技术编号:34732027 阅读:22 留言:0更新日期:2022-08-31 18:21
本申请提供一种共识节点确定方法、装置及存储介质,涉及区块链技术领域,能够解决相关技术中共识效率低下的问题。该方法包括:确定第一顶点数组以及m个顶点的顶点参数;第一顶点数组包括m个顶点的标识,顶点参数包括顶点的度、顶点的权重、区块高度中的至少一项;向a个节点发送第一顶点数组;接收a个第二顶点数组;一个第二顶点数组由一个第二顶点数组对应的节点根据第一顶点数组随机排序生成;向a个节点发送m个顶点的顶点参数;接收a个最短路径;一个最短路径由一个最短路径对应的节点根据有向无环图确定;目标节点为一个有向无环图对应的节点;根据a个最短路径确定共识节点,共识节点用于执行区块写入。本申请能够提供共识效率。效率。效率。

【技术实现步骤摘要】
共识节点确定方法、装置及存储介质


[0001]本申请涉及区块链
,尤其涉及一种共识节点确定方法、装置及存储介质。

技术介绍

[0002]共识(consensus)算法是区块链(block chain)系统中使得每个节点达成共识的算法机制。由于区块链是一个分布式系统,其中的每个节点之间需要达成共识才能够确定执行新的区块写入的节点。
[0003]目前的共识算法通常分为竞争型共识算法以及协商型共识算法,其中,竞争型共识算法通常需要消耗大量资源(例如电力资源、算力资源)以达成共识。协商型共识算法通常需要每个节点感知到其他节点对共识信息(例如区块写入操作)的响应结果以达成共识。这就导致该方法的通信复杂度过高,区块链系统中的节点越多,达成共识所消耗的时间也就越长。因此,目前的共识算法存在共识效率低下的问题。

技术实现思路

[0004]本申请提供一种共识节点确定方法、装置及存储介质,能够提高共识效率。
[0005]为达到上述目的,本申请采用如下技术方案:
[0006]第一方面,本申请提供一种共识节点确定方法,该方法包括:确定第一顶点数组以及m个顶点的顶点参数;其中,第一顶点数组包括m个顶点的标识,顶点参数包括顶点的度、顶点的权重、区块高度中的至少一项;m为正整数;向a个节点发送第一顶点数组;a为正整数;接收a个第二顶点数组;a个第二顶点数组与a个节点一一对应;一个第二顶点数组由一个第二顶点数组对应的节点根据第一顶点数组随机排序生成;向a个节点发送m个顶点的顶点参数;接收a个最短路径;a个最短路径与a个节点一一对应;一个最短路径由一个最短路径对应的节点根据有向无环图确定;一个有向无环图由目标节点根据目标节点对应的第二顶点数组以及m个顶点的顶点参数生成;目标节点为一个有向无环图对应的节点;根据a个最短路径确定共识节点,共识节点用于执行区块写入。
[0007]上述方案至少带来以下有益效果:本申请中共识模块确定出生成有向无环图所需的第一顶点数组以及相关顶点参数,指示a个节点对确定出的第一顶点数组中的顶点随机排序,生成第二顶点数组之后,向a个节点发送相关顶点参数,以使得a个节点分别根据第二顶点数组以及顶点参数生成各自的有向无环图,并确定该有向无环图的最短路径。由于每个节点的顶点排序是随机的,因此最终确定的每个有向无环图的最短路径也是随机的。共识模块将最短路径最小的有向无环图对应的节点作为执行区块写入的节点,从而使得区块链中的各个节点达成共识。相比于相关技术中的竞争型共识算法,本申请基于计算有向无环图的最短路径得到执行区块写入的节点的方法无需消耗过多的电力、算力资源。相比于相关技术中协商型共识算法,本申请提供的技术方案仅涉及共识模块与节点间的并发通信,通信复杂度维持在O(n),大大降低了共识所需的时间。因此,本申请上述技术方案有效提高了共识效率。
[0008]结合上述第一方面,在一种可能的实现方式中,该方法包括:确定a个节点中最短路径最小的节点为共识节点。
[0009]结合上述第一方面,在一种可能的实现方式中,该方法包括:接收a个有向无环图;a个有向无环图与a个节点一一对应;向验证节点发送a个节点的第一数据验证信息;第一数据验证信息包括a个第二顶点数组、a个有向无环图以及a个最短路径中的至少一项;验证节点为a个节点中的一个或多个节点;接收验证节点发送的a个节点的数据验证结果;数据验证结果包括数据验证通过或数据验证不通过;确定a个节点中满足第一预设条件的节点为共识节点;第一预设条件包括:数据验证结果为数据验证通过,且最短路径最小。
[0010]结合上述第一方面,在一种可能的实现方式中,该方法包括:接收a个有向无环图;a个有向无环图与a个节点一一对应;去除a个节点中最短路径的数值大于预设阈值的节点,得到b个节点;b为小于或等于a的正整数;向验证节点发送b个节点的第二数据验证信息;第二数据验证信息包括b个第二顶点数组、b个有向无环图以及b个最短路径中的至少一项;验证节点为a个节点中的一个或多个节点;接收验证节点发送的b个节点的数据验证结果;数据验证结果包括数据验证通过或数据验证不通过;确定b个节点中满足第一预设条件的节点为共识节点;第一预设条件包括:数据验证结果为数据验证通过,且最短路径最小。
[0011]结合上述第一方面,在一种可能的实现方式中,该方法包括:随机抽取m个区块;m个区块与第一顶点数组包括的m个顶点一一对应;根据m个区块的区块信息确定m个顶点的顶点参数;区块信息包括区块标识、区块写入节点信息中的至少一项。
[0012]结合上述第一方面,在一种可能的实现方式中,该方法包括:在区块信息包括区块标识的情况下,根据区块标识确定顶点的权重;在区块信息包括区块写入节点信息的情况下,根据区块写入节点信息确定顶点的度。
[0013]第二方面,本申请提供一种共识节点确定方法,该方法包括:接收共识模块发送的第一顶点数组;其中,第一顶点数组包括m个顶点的标识;m为正整数;将第一顶点数组中m个顶点的标识随机排序,生成第二顶点数组;向共识模块发送第二顶点数组;接收共识模块发送的m个顶点的顶点参数;顶点参数包括顶点的度、顶点的权重、区块高度中的至少一项;根据第二顶点数组以及m个顶点的顶点参数生成有向无环图;根据有向无环图确定最短路径,并向共识模块发送最短路径;最短路径用于共识模块确定共识节点,共识节点用于执行区块写入。
[0014]结合上述第二方面,在一种可能的实现方式中,该方法还包括:向共识模块发送有向无环图;在接收到共识模块发送的a个节点的第一数据验证信息的情况下,验证第一数据验证信息,得到a个节点的数据验证结果;第一数据验证信息包括a个第二顶点数组、a个有向无环图以及a个最短路径中的至少一项;数据验证结果包括数据验证通过或数据验证不通过;a为正整数;向共识模块发送a个节点的数据验证结果。
[0015]结合上述第二方面,在一种可能的实现方式中,该方法还包括:向共识模块发送有向无环图;在接收到共识模块发送的b个节点的第二数据验证信息的情况下,验证第二数据验证信息,得到b个节点的数据验证结果;第二数据验证信息包括b个第二顶点数组、b个有向无环图以及b个最短路径中的至少一项;数据验证结果包括数据验证通过或数据验证不通过;向共识模块发送b个节点的数据验证结果。
[0016]结合上述第二方面,在一种可能的实现方式中,该方法还包括:根据目标数据验证
信息中的第二顶点数组,确定对应的有向无环图是否正确;和/或根据目标数据验证信息中的有向无环图,确定对应的最短路径是否正确;其中,目标数据验证信息为第一数据验证信息或第二数据验证信息。
[0017]第三方面,本申请提供一种共识节点确定装置,该装置包括通信单元和处理单元;处理单元,用于确定第一顶点数组以及m个顶点的顶点参数;其中,第一顶点数组包括m个顶点的标识,顶点参数包括顶点的度、顶点的权重、区块高度中的至少一项;m为正整数;通信单元,用于向a个节点发送第一顶点数组;a为正整数;通信单元,还用于接收a个第二顶点数组;a本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种共识节点确定方法,其特征在于,所述方法包括:确定第一顶点数组以及m个顶点的顶点参数;其中,所述第一顶点数组包括所述m个顶点的标识,所述顶点参数包括顶点的度、顶点的权重、区块高度中的至少一项;m为正整数;向a个节点发送所述第一顶点数组;a为正整数;接收a个第二顶点数组;所述a个第二顶点数组与所述a个节点一一对应;一个第二顶点数组由所述一个第二顶点数组对应的节点根据所述第一顶点数组随机排序生成;向所述a个节点发送所述m个顶点的顶点参数;接收a个最短路径;所述a个最短路径与所述a个节点一一对应;一个最短路径由所述一个最短路径对应的节点根据有向无环图确定;一个有向无环图由目标节点根据所述目标节点对应的第二顶点数组以及所述m个顶点的顶点参数生成;所述目标节点为所述一个有向无环图对应的节点;根据所述a个最短路径确定共识节点,所述共识节点用于执行区块写入。2.根据权利要求1所述的方法,其特征在于,所述根据所述a个最短路径确定共识节点,包括:确定所述a个节点中所述最短路径最小的节点为所述共识节点。3.根据权利要求1所述的方法,其特征在于,所述根据所述a个最短路径确定共识节点,包括:接收a个有向无环图;所述a个有向无环图与所述a个节点一一对应;向验证节点发送所述a个节点的第一数据验证信息;所述第一数据验证信息包括所述a个第二顶点数组、所述a个有向无环图以及所述a个最短路径中的至少一项;所述验证节点为所述a个节点中的一个或多个节点;接收所述验证节点发送的所述a个节点的数据验证结果;所述数据验证结果包括数据验证通过或数据验证不通过;确定所述a个节点中满足第一预设条件的节点为所述共识节点;所述第一预设条件包括:数据验证结果为数据验证通过,且最短路径最小。4.根据权利要求1所述的方法,其特征在于,所述根据所述a个最短路径确定共识节点,包括:接收a个有向无环图;所述a个有向无环图与所述a个节点一一对应;去除所述a个节点中最短路径的数值大于预设阈值的节点,得到b个节点;b为小于或等于a的正整数;向验证节点发送所述b个节点的第二数据验证信息;所述第二数据验证信息包括b个第二顶点数组、b个有向无环图以及b个最短路径中的至少一项;所述验证节点为所述a个节点中的一个或多个节点;接收所述验证节点发送的所述b个节点的数据验证结果;所述数据验证结果包括数据验证通过或数据验证不通过;确定所述b个节点中满足第一预设条件的节点为所述共识节点;所述第一预设条件包括:数据验证结果为数据验证通过,且最短路径最小。5.根据权利要求1

4任一项所述的方法,其特征在于,所述确定第一顶点数组以及m个顶点的顶点参数,包括:
随机抽取m个区块;所述m个区块与所述第一顶点数组包括的所述m个顶点一一对应;根据所述m个区块的区块信息确定所述m个顶点的顶点参数;所述区块信息包括区块标识、区块写入节点信息中的至少一项。6.根据权利要求5所述的方法,其特征在于,所述根据所述m个区块的区块信息确定所述m个顶点的顶点参数,包括:在所述区块信息包括所述区块标识的情况下,根据所述区块标识确定所述顶点的权重;在所述区块信息包括所述区块写入节点信息的情况下,根据所述区块写入节点信息确定所述顶点的度。7.一种共识节点确定方法,其特征在于,所述方法包括:接收共识模块发送的第一顶点数组;其中,第一顶点数组包括m个顶点的标识;m为正整数;将所述第一顶点数组中所述m个顶点的标识随机排序,生成第二顶点数组;向所述共识模块发送所述第二顶点数组;接收所述共识模块发送的所述m个顶点的顶点参数;所述顶点参数包括顶点的度、顶点的权重、区块高度中的至少一项;根据所述第二顶点数组以及所述m个顶点的顶点参数生成有向无环图;根据所述有向无环图确定最短路径,并向所述共识模块发送所述最短路径;所述最短路径用于共识模块确定共识节点,所述共识节点用于执行区块写入。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:向所述共识模块发送所述有向无环图;在接收到共识模块发送的a个节点的第一数据验证信息的情况下,验证所述第一数据验证信息,得到所述a个节点的数据验证结果;所述第一数据验证信息包括a个第二顶点数组、a个有向无环图以及a个最短路径中的至少一项;所述数据验证结果包括数据验证通过或数据验证不通过;a为正整数;向所述共识模块发送所述a个节点的数据验证结果。9.根据权利要求7所述的方法,其特征在于,所述方法还包括:向所述共识模块发送所述有向无环图;在接收到所述共识模块发送的b个节点的第二数据验证信息的情况下,验证所述第二数据验证信息,得到所述b个节点的数据验证结果;所述第二数据验证信息包括b个第二顶点数组、b个有向无环图以及b个最短路径中的至少一项;所述数据验证结果包括数据验证通过或数据验证不通过;向所述共识模块发送所述b个节点的数据验证结果。10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:根据目标数据验证信息中的第二顶点数组,确定对应的有向无环图是否正确;和/或根据所述目标数据验证信息中的有向无环图,确定对应的最短路径是否正确;其中,所述目标数据验证信息为第一数据验证信息或第二数据验证信息。11.一种共识节点确定装置,其特征在于,包括通信单元和处理单元;所述处理单元,用于确定第一顶点数组以及m个顶点的顶点参数;其中,所述第一顶点
数组包括所述m个顶点的标识,所述顶点参数包括顶点的度、顶点的权重、区块高度中的至少一项;m为正整数;所述通信单元,用于向a个节点发送所述第一顶点数组;a为正整数;所述通信单元,还用于接收a个第二顶点数组;所述a个第二顶点数组与所述a个节点一一对应;一个第二顶点数组由所述一个第二顶点数组对应的节点根据所述第一顶点数组随机排序生成;所述通信单元,还用...

【专利技术属性】
技术研发人员:任杰薛淼任梦璇刘千仞王光全
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:

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

1