区块链代表节点选取方法、装置、计算机设备和存储介质转让专利

申请号 : CN202011563219.4

文献号 : CN112738196B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李涵

申请人 : 卓尔智联(武汉)研究院有限公司

摘要 :

本申请涉及一种区块链代表节点选取方法、装置、计算机设备和存储介质。通过获取由参与本轮竞选的多个节点组成的节点集合中,各个节点对应的机会值,并根据各个节点对应的机会值,从节点集合中确定出至少一个准代表节点,其中准代表节点的机会值大于预先确定的目标值,再获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根据该猜测值,从至少一个准代表节点中确定本轮竞选的代表节点。相较于传统的通过投票机制的确定代表节点的方法,本方案通过对节点的竞选设置激励机制,利用节点的机会值以及引入的随机数猜测机制,确定各轮竞选的代表节点,从而弱化了代表节点的集中性,降低了区块链中代表节点的中心化程度。

权利要求 :

1.一种区块链代表节点选取方法,其特征在于,所述方法包括:获取参与本轮竞选的节点集合;所述节点集合中包括多个节点;

获取所述节点集合中各个节点对应的机会值;所述机会值基于所述节点参与系统运行的有效时间与所述节点的当前有效余额的加权求和得到;

根据各个节点的所述机会值,从所述节点集合中确定出至少一个准代表节点;所述准代表节点的所述机会值大于预先确定的目标值;

获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点,包括:对各个所述猜测值进行排序,根据排序后的多个猜测值中的中位数,确定所述多个猜测值中的目标猜测值;将各个所述猜测值中与所述目标猜测值的相似度最大的猜测值对应的准代表节点作为本轮竞选的代表节点,并为所述准代表节点以及代表节点分配本轮竞选的奖励,将所述准代表节点和所述代表节点的有效时间还原为初始值,以及增加所述节点集合中在本轮竞选为非准代表节点的有效时间,形成调整后的节点集合,以基于调整后的节点集合进行下一轮竞选。

2.根据权利要求1所述的方法,其特征在于,所述获取参与本轮竞选的节点集合,包括:获取新加入区块链的新节点、上一轮竞选中未成为代表节点的准代表节点以及上一轮竞选中的代表节点,得到所述节点集合。

3.根据权利要求1所述的方法,其特征在于,所述获取所述节点集合中各个节点对应的机会值,包括:

针对所述节点集合中各个节点,获取节点对应的执行验证时刻以及参与系统运行的初始时刻;根据所述执行验证时刻与所述初始时刻的第一差值,得到所述节点对应的有效时间;

获取所述节点在上一轮竞选结束时对应的余额以及初始余额;根据所述上一轮竞选结束时对应的余额与所述初始余额的第二差值,得到所述当前有效余额;

对所述有效时间以及所述当前有效余额进行加权求和,得到所述节点对应的机会值。

4.根据权利要求1所述的方法,其特征在于,还包括:获取上一轮竞选中的准代表节点的第一数量,以及参与上一轮竞选的节点的第二数量;

根据所述第一数量、所述第二数量以及上一轮竞选对应的所述目标值,得到本轮竞选的所述目标值。

5.根据权利要求1所述的方法,其特征在于,还包括:所述各个准代表节点在本轮竞选中进行随机数猜测时,猜测机会为一次;所述各个准代表节点在完成随机数猜测后,向其他所述准代表节点广播所述猜测值。

6.根据权利要求5所述的方法,其特征在于,还包括:所述各个准代表节点在本轮竞选中进行随机数猜测时,若确定其猜测值为所述目标猜测值,发送所述目标猜测值对应的目标准代表节点竞选胜出的广播消息;

所述根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点,包括:

接收到所述目标准代表节点的所述广播消息之后,若获取到大于预设比例的准代表节点对所述广播消息的验证通过消息,确定所述目标准代表节点为本轮竞选的代表节点。

7.一种区块链代表节点选取装置,其特征在于,所述装置包括:第一获取模块,用于获取参与本轮竞选的节点集合;所述节点集合中包括多个节点;

第二获取模块,用于获取所述节点集合中各个节点对应的机会值;所述机会值基于所述节点参与系统运行的有效时间与所述节点的当前有效余额的加权求和得到;

第一确定模块,用于根据各个节点的所述机会值,从所述节点集合中确定出至少一个准代表节点;所述准代表节点的所述机会值大于预先确定的目标值;

第二确定模块,用于获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点,具体用于:对各个所述猜测值进行排序,根据排序后的多个猜测值中的中位数,确定所述多个猜测值中的目标猜测值;将各个所述猜测值中与所述目标猜测值的相似度最大的猜测值对应的准代表节点作为本轮竞选的代表节点,还用于为所述准代表节点以及代表节点分配本轮竞选的奖励,将所述准代表节点和所述代表节点的有效时间还原为初始值,以及增加所述节点集合中在本轮竞选为非准代表节点的有效时间,形成调整后的节点集合,以基于调整后的节点集合进行下一轮竞选。

8.根据权利要求7所述的装置,其特征在于,所述第一获取模块,具体用于:获取新加入区块链的新节点、上一轮竞选中未成为代表节点的准代表节点以及上一轮竞选中的代表节点,得到所述节点集合。

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。

说明书 :

区块链代表节点选取方法、装置、计算机设备和存储介质

技术领域

[0001] 本申请涉及区块链技术领域,特别是涉及一种区块链代表节点选取方法、装置、计算机设备和存储介质。

背景技术

[0002] 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。它本质上是一个分布式的共享账本和数据库,区块链具有去中心化的特点,然
而,在区块链中通常会存在某些节点参与度低,以及存在无效或恶意区块的问题,导致区块
链的中心化程度偏高,因此,降低区块链网络中的无效区块或恶意区块的产生显得十分必
要。目前对恶意区块或无效区块的剔除通常是采用投票机制,对不积极的节点进行剔除,然
而,该方法仍然无法避免节点参与度低的问题,导致区块链中的中心化程度偏高。
[0003] 因此,目前的区块链中代表节点的选取存在中心化程度高的缺陷。

发明内容

[0004] 基于此,有必要针对上述技术问题,提供一种能够降低区块链中的中心化程度的区块链代表节点选取方法、装置、计算机设备和存储介质。
[0005] 一种区块链代表节点选取方法,所述方法包括:
[0006] 获取参与本轮竞选的节点集合;所述节点集合中包括多个节点;
[0007] 获取所述节点集合中各个节点对应的机会值;所述机会值基于所述节点参与系统运行的有效时间和当前有效余额共同确定;
[0008] 根据各个节点的所述机会值,从所述节点集合中确定出至少一个准代表节点;所述准代表节点的所述机会值大于预先确定的目标值;
[0009] 获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点。
[0010] 在其中一个实施例中,所述获取参与本轮竞选的节点集合,包括:
[0011] 获取新加入区块链的新节点、上一轮竞选中未成为代表节点的准代表节点以及上一轮竞选中的代表节点,得到所述节点集合。
[0012] 在其中一个实施例中,所述获取所述节点集合中各个节点对应的机会值,包括:
[0013] 针对所述节点集合中各个节点,获取节点对应的执行验证时刻以及参与系统运行的初始时刻;根据所述执行验证时刻与所述初始时刻的第一差值,得到所述节点对应的有
效时间;
[0014] 获取所述节点在上一轮竞选结束时对应的余额以及初始余额;根据所述上一轮竞选结束时对应的余额与所述初始余额的第二差值,得到所述当前有效余额;
[0015] 对所述有效时间以及所述当前有效余额进行加权求和,得到所述节点对应的机会值。
[0016] 在其中一个实施例中,还包括:
[0017] 获取上一轮竞选中的准代表节点的第一数量,以及参与上一轮竞选的节点的第二数量;
[0018] 根据所述第一数量、所述第二数量以及上一轮竞选对应的所述目标值,得到本轮竞选的所述目标值。
[0019] 在其中一个实施例中,所述根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点,包括:
[0020] 对各个所述猜测值进行排序,根据排序后的多个猜测值中的中位数,确定所述多个猜测值中的目标猜测值;
[0021] 根据所述目标猜测值,确定所述本轮竞选的代表节点。
[0022] 在其中一个实施例中,还包括:
[0023] 所述各个准代表节点在本轮竞选中进行随机数猜测时,猜测机会为一次;所述各个准代表节点在完成随机数猜测后,向其他所述准代表节点广播所述猜测值。
[0024] 在其中一个实施例中,还包括:
[0025] 所述各个准代表节点在本轮竞选中进行随机数猜测时,若确定其猜测值为所述目标猜测值,发送所述目标猜测值对应的目标准代表节点竞选胜出的广播消息;
[0026] 所述根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点,包括:
[0027] 接收到所述目标准代表节点的所述广播消息之后,若获取到大于预设比例的准代表节点对所述广播消息的验证通过消息,确定所述目标准代表节点为本轮竞选的代表节
点。
[0028] 一种区块链代表节点选取装置,所述装置包括:
[0029] 第一获取模块,用于获取参与本轮竞选的节点集合;所述节点集合中包括多个节点;
[0030] 第二获取模块,用于获取所述节点集合中各个节点对应的机会值;所述机会值基于所述节点参与系统运行的有效时间和当前有效余额共同确定;
[0031] 第一确定模块,用于根据各个节点的所述机会值,从所述节点集合中确定出至少一个准代表节点;所述准代表节点的所述机会值大于预先确定的目标值;
[0032] 第二确定模块,用于获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点。
[0033] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
[0034] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
[0035] 上述区块链代表节点选取方法、装置、计算机设备和存储介质,通过获取由参与本轮竞选的多个节点组成的节点集合中,各个节点对应的基于有效时间和当前有效余额确定
的机会值,并根据各个节点对应的机会值,从节点集合中确定出至少一个准代表节点,其中
准代表节点的机会值大于预先确定的目标值,再获取各个准代表节点在本轮竞选中进行随
机数猜测时的猜测值,根据该猜测值,从至少一个准代表节点中确定本轮竞选的代表节点。
相较于传统的通过投票机制的确定代表节点的方法,本方案通过对节点的竞选设置激励机
制,利用节点的机会值以及引入的随机数猜测机制,确定各轮竞选的代表节点,从而弱化了
代表节点的集中性,降低了区块链中代表节点的中心化程度。

附图说明

[0036] 图1为一个实施例中区块链代表节点选取方法的应用环境图;
[0037] 图2为一个实施例中区块链代表节点选取方法的流程示意图;
[0038] 图3为一个实施例中区块链准代表节点选取过程的示意图;
[0039] 图4为一个实施例中区块链代表节点选取装置的结构框图;
[0040] 图5为一个实施例中计算机设备的内部结构图。

具体实施方式

[0041] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不
用于限定本申请。
[0042] 本申请提供的区块链代表节点选取方法,可以应用于如图1所示的应用环境中。其中,终端102可以通过网络与服务器104进行通信,服务器104中可以存储有区块链。终端102
可以获取服务器104中的区块链中参与本轮竞选的包括多个节点的节点集合,并获取节点
集合中各个节点对应的机会值,再根据各个节点的机会值,从节点集合中确定的该至少一
个准代表节点,还可以获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,从
而终端102可以根据猜测值,从至少一个准代表节点中确定本轮竞选的代表节点。其中,终
端102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑,服务器104可以
用多个服务器组成的服务器集群来实现,区块链可以以分布式存储在多个服务器中。
[0043] 在一个实施例中,如图2所示,提供了一种区块链代表节点选取方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
[0044] 步骤S202,获取参与本轮竞选的节点集合;节点集合中包括多个节点。
[0045] 其中,竞选可以是用于竞选区块链中的代表节点的竞选,终端102可以进行多次竞选,在每次竞选中,均可以对竞选的节点进行初始化,即获取参与本轮竞选的节点集合,其
中,每轮竞选的节点集合中可以包括多个节点,每轮竞选的节点集合中的多个节点可以不
同,具体地,终端102可以获取新加入区块链的新节点、上一轮竞选中为成为代表节点的准
代表节点以及上一轮竞选中的代表节点,形成上述参与本轮竞选的节点集合,即参与本轮
竞选的节点集合中可以由新添加到系统的新节点和准备用于本轮验证的旧节点组成,旧节
点可以是上一轮竞选中没有成为代表的准代表节点,也可以是代表节点,在确保不损害旧
节点利益的前提下,通过保证公平的奖励分配措施,使这一层中的所有节点具有同等地位,
并在本轮公平竞争。
[0046] 步骤S204,获取节点集合中各个节点对应的机会值;机会值基于节点参与系统运行的有效时间和当前有效余额共同确定。
[0047] 其中,节点集合可以是参与本轮竞选的节点形成的集合,各个节点可以有对应的机会值,终端102可以获取上述节点集合中各节点对应的机会值,其中,机会值可以表征上
述节点集合中,各个节点成为准代表节点的机会,各个节点的机会值可以用于进行机会验
证,机会验证可以用于选取准代表节点。终端102可以基于节点参与系统运行的有效时间以
及节点的当前有效余额确定。其中,节点参与系统运行的有效时间可以基于节点参与系统
运行的初始时刻以及节点执行上述验证的时刻确定,节点的有效余额可以基于其初始余额
数以及上一轮结束时的余额数确定,其中,上述节点的有效余额与其是否积极参与到区块
链中的验证有关,参与越多,则可以得到越多的余额。
[0048] 步骤S206,根据各个节点的所述机会值,从节点集合中确定出至少一个准代表节点;准代表节点的机会值大于预先确定的目标值。
[0049] 其中,各个节点的机会值可以基于节点的参与系统运行的有效时间以及节点的当前有效余额确定,终端102可以对各个节点进行机会认证,即终端102可以根据各个节点的
机会值,从节点集合中确定至少一个准代表节点。其中,终端102可以基于预先确定的目标
值,对上述各个节点进行机会验证,即终端102可以将上述各个节点的机会值与预先确定的
目标值进行比较,将机会值大于预先确定的目标值的节点作为准代表节点,从而完成对节
点的机会验证。
[0050] 步骤S208,获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根据猜测值,从至少一个准代表节点中确定出本轮竞选的代表节点。
[0051] 其中,准代表节点可以是上述节点集合中通过机会验证,即机会值大于预先确定的目标值的节点。终端102可以引入随机数猜测机制,终端102可以获取各个准代表节点在
本轮竞选中进行随机数猜测时的猜测值,并根据各个节点对应的猜测值,从上述至少一个
准代表节点中确定出本轮竞选的代表节点。具体地,终端102可以对各个节点对于随机数的
猜测值,进行预设处理后,从中确定出目标的猜测值,从而终端102可以基于目标的猜测值
确定本轮竞选的代表节点。另外,需要说明的是,终端102还可以基于上述各个节点参与验
证的积极性,为节点提供相应的奖励,节点参与度越高,则奖励越多。
[0052] 上述区块链代表节点选取方法中,通过获取由参与本轮竞选的多个节点组成的节点集合中,各个节点对应的基于有效时间和当前有效余额确定的机会值,并根据各个节点
对应的机会值,从节点集合中确定出至少一个准代表节点,其中准代表节点的机会值大于
预先确定的目标值,再获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根
据该猜测值,从至少一个准代表节点中确定本轮竞选的代表节点。相较于传统的通过投票
机制的确定代表节点的方法,本方案通过对节点的竞选设置激励机制,利用节点的机会值
以及引入的随机数猜测机制,确定各轮竞选的代表节点,从而弱化了代表节点的集中性,降
低了区块链中代表节点的中心化程度。
[0053] 在一个实施例中,获取节点集合中各个节点对应的机会值,包括:针对节点集合中各个节点,获取节点对应的执行验证时刻以及参与系统运行的初始时刻;根据执行验证时
刻与初始时刻的第一差值,得到节点对应的有效时间;获取节点在上一轮竞选结束时对应
的余额以及初始余额;根据上一轮竞选结束时对应的余额与初始余额的第二差值,得到当
前有效余额;对有效时间以及当前有效余额进行加权求和,得到节点对应的机会值。
[0054] 本实施例中,终端102可以基于各个节点的参与系统运行的有效时间以及节点的有效余额确定各个节点对应的机会值,该机会值可以用于进行机会验证,以便从节点集合
中选出准代表节点。终端102可以获取上述节点集合中,各个节点对应的执行验证时刻,以
及节点参与系统运行的初始时刻,并根据执行验证时刻与初始时刻的第一差值,得到节点
对应的参与系统运行的有效时间;终端102还可以获取节点对应的当前有效余额,终端102
可以获取节点在上一轮竞选结束时对应的余额数,以及节点对应的初始余额,并基于上述
上一轮竞选结束时的余额以及初始余额的第二差值,得到节点对应的当前有效余额。具体
地,将节点参与系统运行的有效时间设为t,则上述有效时间的计算公式可以为:t=Te‑Ts;
其中,Te表示节点执行验证的时刻,Ts代表节点参与系统运行的初始时刻。将节点的当前有
效余额设为c,则节点有效余额的计算公式可以为:c=ce‑cs;其中,ce代表上一轮结束时的
余额数;cs代表初始余额数。由此终端102可以得到上述节点集合中,各个节点对应的参与
系统运行的有效时间t,以及当前有效余额c。
[0055] 终端102还可以将上述有效时间以及上述有效余额进行加权求和,从而得到上述各个节点的机会值。具体地,若将节点的称为准代表节点的机会值设为O,则机会值的计算
公式可以为:O=A×t+B×c;其中,节点的权利被量化为上述有效时间和余额裱花的加权综
合,并以机会值的形式表示,上述公式中的A和B可以是常数,且满足A+B=1,通常A和B的取
值为0.5。
[0056] 通过本实施例,终端102可以通过对节点的有效时间以及有效余额进行加权求和,得到节点对应的机会值,从而终端102可以根据节点的机会值选取准代表节点,减少了区块
链中代表节点的中心化程度。
[0057] 在一个实施例中,还包括:获取上一轮竞选中的准代表节点的第一数量,以及参与上一轮竞选的节点的第二数量;根据第一数量、第二数量以及上一轮竞选对应的目标值,得
到本轮竞选的目标值。
[0058] 本实施例中,终端102可以对上述各个节点进行机会验证,从而选取至少一个准代表节点,终端102可以预先设置目标值,并通过将节点的机会值与目标值进行比较,确定上
述各个节点是否通过机会验证,其中,上述目标值可以是动态变化的。终端102可以获取上
一轮竞选中的准代表节点的第一数量,以及参与上一轮竞选的节点的第二数量,并根据第
一数量、第二数量以及上一轮竞选对应的目标值,得到本轮竞选的目标值。具体地,终端102
可以将目标值设为Target,终端102可以根据不同的业务场景将Target设置为相应的初始
值。目标值可以是每轮调整自身的动态量,具体地,目标值的调整过程可以如下所示:
[0059]
[0060] 其中,m表示实际满足机会验证的节点数,n表示理论上满足机会验证的节点数,n的值可以根据系统中节点数量来确定。如图3所示,图3为一个实施例中区块链准代表节点
选取过程的示意图。终端102可以对节点集合中各个节点进行机会值的计算,并对各个节点
进行基于机会值和目标值的机会验证,将满足验证条件的节点作为准代表节点。确定目标
值后,各个节点可以根据自己的机会值自发执行验证,节点满足机会验证的条件可以为:O
>Target;即机会值大于目标值时,确定该节点为准代表节点,上述目标值可以在每一轮验
证后,均通过上述公式进行调整,以准备进行下一轮验证。其中,S可以表示初始节点,即上
述节点集合,n可以表示理论上满足认证的初始节点数量,例如可以是所有参与验证的节
点,C可以表示准节点的设置。
[0061] 在分布式区块链环境中,每个节点都是独立的,通过本实施例,终端102可以采用基于目标值的机会验证的方式选取准代表节点,从而影响节点参与热情,提高了参与的积
极性,从而可以减少区块链中选取代表节点的中心化程度。
[0062] 在一个实施例中,根据猜测值,从至少一个准代表节点中确定出本轮竞选的代表节点,包括:对各个猜测值进行排序,根据排序后的多个猜测值中的中位数,确定多个猜测
值中的目标猜测值;根据目标猜测值,确定本轮竞选的代表节点。
[0063] 本实施例中,猜测值可以是上述各个节点对于随机数的猜测值,为了保证公平性,在代表节点的选取中,可以引入随机猜测方式,所述各个准代表节点可以在任意范围内进
行随机数猜测,终端102可以对各个准代表节点的猜测值进行排序,并获取排序后的节点的
中位数,其中若猜测值的个数为偶数,则终端102可以将中间两个数与所有猜测值的平均值
做比较,取接近平均值的猜测值,作为中位数。终端102可以根据得到的中位值,确定上述多
个猜测值中的目标猜测值,从而可以基于目标猜测值,确定出本轮竞选的代表节点,例如可
以将猜测值为目标猜测值的准代表节点作为代表节点,即作为最终共识决策的代表。
[0064] 通过本实施例,终端102可以基于准代表节点的猜测值,确定出代表节点,在准代表猜测的过程中,每个节点都不透明的并且彼此独立,因此,选择与中位数相对应的节点可
以保证选择的随机性,在这种情况下,代表的产生将更加透明并减少作弊的可能性,从而降
低了区块链中选取代表节点的中心化程度。
[0065] 在一个实施例中,还包括:各个准代表节点在本轮竞选中进行随机数猜测时,猜测机会为一次;各个准代表节点在完成随机数猜测后,向其他准代表节点广播猜测值。
[0066] 本实施例中,准代表节点可以在竞选代表节点时,进行随机数的猜测,各个节点进行随机数猜测时,可以在任何范围内进行猜测,且各个准代表节点的猜测机会为一次,即各
个准代表节点在每一轮竞选中只有一次猜测的机会。当各个准代表节点在完成随机数猜测
后,可以向其他准代表节点广播猜测值,即当准代表节点随机猜测完成后,可以在准代表之
间执行广播,使得每个准代表节点从当前的随机数猜测过程中获得尽可能多的结果。
[0067] 通过本实施例,终端102可以采用单次猜测以及广播猜测值的方式,保证了随机数猜测的公平性,且基于猜测值确定准代表节点中的代表节点,减少了区块链中代表节点选
取的中心化程度。
[0068] 在一个实施例中,还包括:各个准代表节点在本轮竞选中进行随机数猜测时,若确定其猜测值为目标猜测值,发送目标猜测值对应的目标准代表节点竞选胜出的广播消息;
根据猜测值,从至少一个准代表节点中确定出本轮竞选的代表节点,包括:接收到目标准代
表节点的广播消息之后,若获取到大于预设比例的准代表节点对广播消息的验证通过消
息,确定目标准代表节点为本轮竞选的代表节点。
[0069] 本实施例中,终端102可以利用随机数猜测方式来确定准代表节点中的代表节点,具体地,终端102可以将各个准代表节点的猜测值进行排序,并获取其中的中位数,作为目
标猜测值,随机数个数为偶数时,则将中间两个数与所有猜测值的平均数作比较,取接近平
均数的数,上述各个准代表节点均可以获取上述排序后得到的中位数,若节点在本轮竞选
中进行随机数猜测时,确定自身的猜测值为上述目标猜测值,则该节点可以向所有其他准
代表节点发送其作为目标准代表节点竞选胜出的广播消息。
[0070] 终端102可以接收来自上述目标准代表节点的广播消息,并对该消息进行验证,若终端102获取到大于预设比例的准代表节点对上述广播消息的验证通过消息,则可以确定
该目标准代表节点为本轮竞选的代表节点。具体地,假设准节点A接收到的一组随机数,排
序后发现中位数是自己猜测的,则向所有准代表节点发送广播,让其他准代表节点验证,终
端102可以接收上述各个准代表节点的验证结果,若超过预设比例,例如三分之二的准代表
节点验证通过,则节点A成为本轮竞选的正式的代表节点。需要说明的是,除代表节点外,每
个准代表节点都需要验证代表节点所生成块的合法性,具体地,可以包括两部分验证:第一
验证代表节点通过机会验证时是否作弊;第二个验证表示节点猜测的随机数是否为所有结
果的中位数。其中每个准代表参加验证的热情直接影响到以后的奖励。
[0071] 另外,上述确定代表节点的过程可以是一个共识过程,终端102在确定代表节点后,即上述各个节点达成了本轮竞选的共识,终端102可以根据该轮竞选中各个节点的贡献
分配奖励,该奖励可以是节点的余额变化。奖励的主要来源是本轮商定区块中所有交易的
费用,可以主要分配给当前共识中编写的区块的代表节点以及参与验证的准代表节点,在
本轮竞选中已达成共识的所有交易费用,将由书面的共识代表节点和参与验证的准代表节
点支付,由于存在奖励,每个节点将积极参与验证并争取更多的奖励。终端102可以调整所
有准代表节点的机会影响因子,从而使所有节点在下一轮竞争中处于同一水平,终端102可
以在本轮竞选后,清除成为准代表节点的有效时间t,即将初始时间Ts设置为验证结束的时
间Te,从而避免了在每一轮竞选中重复选择相同的节点的情况。另外,对于本轮未通过机会
验证,没有成为准代表节点的节点,系统中运行的有效时间也会增加,对于准代表和代表节
点,尽管它们获得奖励,但它们的有效运行时间将减少。
[0072] 通过本实施例,终端102可以基于猜测值的方式确定代表节点,并且可以对确定过程进行合法性监控,还可以根据节点的贡献度和参与度进行竞选完成后的奖励,在下一轮
选举中,所有节点上的机会仍然处于相对平衡的状态,这确保了每个节点对于下一轮选举
都可以相对公平,从而可以减少区块链中代表节点的中心化程度。
[0073] 应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的
执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分
步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完
成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是
可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0074] 在一个实施例中,如图4所示,提供了一种区块链代表节点选取装置,包括:第一获取模块500、第二获取模块502、第一确定模块504和第二确定模块506,其中:
[0075] 第一获取模块500,用于获取参与本轮竞选的节点集合;节点集合中包括多个节点。
[0076] 第二获取模块502,用于获取节点集合中各个节点对应的机会值;机会值基于节点参与系统运行的有效时间和当前有效余额共同确定。
[0077] 第一确定模块504,用于根据各个节点的所述机会值,从节点集合中确定出至少一个准代表节点;准代表节点的机会值大于预先确定的目标值。
[0078] 第二确定模块506,用于获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根据猜测值,从至少一个准代表节点中确定出本轮竞选的代表节点。
[0079] 在一个实施例中,上述第一获取模块500,具体用于获取新加入区块链的新节点、上一轮竞选中未成为代表节点的准代表节点以及上一轮竞选中的代表节点,得到节点集
合。
[0080] 在一个实施例中,上述第二获取模块502,具体用于针对节点集合中各个节点,获取节点对应的执行验证时刻以及参与系统运行的初始时刻;根据执行验证时刻与初始时刻
的第一差值,得到节点对应的有效时间;获取节点在上一轮竞选结束时对应的余额以及初
始余额;根据上一轮竞选结束时对应的余额与初始余额的第二差值,得到当前有效余额;对
有效时间以及当前有效余额进行加权求和,得到节点对应的机会值。
[0081] 在一个实施例中,上述装置还包括:目标值获取模块,用于获取上一轮竞选中的准代表节点的第一数量,以及参与上一轮竞选的节点的第二数量;根据第一数量、第二数量以
及上一轮竞选对应的目标值,得到本轮竞选的目标值。
[0082] 在一个实施例中,上述第二确定模块506,具体用于对各个猜测值进行排序,根据排序后的多个猜测值中的中位数,确定多个猜测值中的目标猜测值;根据目标猜测值,确定
本轮竞选的代表节点。
[0083] 在一个实施例中,上述装置还包括:第一广播模块,用于各个准代表节点在完成随机数猜测后,向其他准代表节点广播猜测值。
[0084] 在一个实施例中,上述装置还包括:第二广播模块,用于各个准代表节点在本轮竞选中进行随机数猜测时,若确定其猜测值为目标猜测值,发送目标猜测值对应的目标准代
表节点竞选胜出的广播消息。
[0085] 在一个实施例中,上述第二确定模块506,具体用于接收到目标准代表节点的广播消息之后,若获取到大于预设比例的准代表节点对广播消息的验证通过消息,确定目标准
代表节点为本轮竞选的代表节点。
[0086] 关于区块链代表节点选取装置的具体限定可以参见上文中对于区块链代表节点选取方法的限定,在此不再赘述。上述区块链代表节点选取装置中的各个模块可全部或部
分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备
中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执
行以上各个模块对应的操作。
[0087] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。
其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易
失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该
内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备
的数据库用于存储区块链中的节点数据。该计算机设备的网络接口用于与外部的终端通过
网络连接通信。该计算机程序被处理器执行时以实现一种区块链代表节点选取方法。
[0088] 本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备
可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0089] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的区块链代表节点选取方法。
[0090] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的区块链代表节点选取方法。
[0091] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read‑
Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器
(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种
形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存
储器(Dynamic Random Access Memory,DRAM)等。
[0092] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛
盾,都应当认为是本说明书记载的范围。
[0093] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护
范围。因此,本申请专利的保护范围应以所附权利要求为准。