一种区块链节点部署与选举的装置

文档序号:195957 发布日期:2021-11-02 浏览:34次 >En<

阅读说明:本技术 一种区块链节点部署与选举的装置 (Device for block chain link point deployment and election ) 是由 张卫平 张浩宇 张思琪 李显阔 于 2021-08-06 设计创作,主要内容包括:本发明提供了一种区块链节点部署与选举的装置,包括节点生成模块、区块存储模块、广播模块、选举模块和节点记录模块,所述节点生成模块用于创建节点,所述广播模块节点之间互相发送广播信息,所述区块存储模块用于存储区块链信息,所述选举模块用于记录节点的状态并参与竞选超级节点,所述节点记录模块用于记录所有的节点信息。通过本装置构成的区块链网络在节点部署时能减少大量的无效重复传播,在选举时能够避免节点集团持续当选超级节点,进而防止垄断现象。(The invention provides a device for deploying and electing block chain link points, which comprises a node generating module, a block storing module, a broadcasting module, an electing module and a node recording module, wherein the node generating module is used for creating nodes, broadcasting information is mutually sent among the broadcasting module nodes, the block storing module is used for storing block chain information, the electing module is used for recording the states of the nodes and participating in election of super nodes, and the node recording module is used for recording all node information. The block chain network formed by the device can reduce a large amount of invalid repeated propagation when the nodes are deployed, and can avoid a node group from continuously selecting super nodes during election, thereby preventing monopoly.)

一种区块链节点部署与选举的装置

技术领域

本发明涉及区块链技术领域,尤其涉及一种用于区块链的节点部署与选举的装置。

背景技术

区块链是一个信息

技术领域

的术语,从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征,基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景,而区块链的数据均完整的保存在各个节点中,节点中会选举出一个超级节点,选举的方法会影响到整个区块链的可信度。

现在已经开发出了很多区块链选举系统,经过我们大量的检索与参考,发现现有的选举系统有如公开号为KR101723405B1,KR1020170123861A和KR101857223B1所公开的系统,包括:部署区块链,针对参与投票的选举人,绑定可信时间戳和可信随机数,发起区块链的投票交易,利用交易数据字串进行投票,所述交易数据字串包括被投票人、可信时间戳及可信随机数,记录投票信息,确定选举人的投票结果,并将参与投票的区块链节点向发起投票的节点发出的所有投票交易进行动态展示;但该系统在部署节点时会产生大量的重复无效广播,同时在选举时不能避免超级节点被掌控在某一节点集团中,造成超级节点的垄断,从而对整个区块链的可信度造成影响。

发明内容

本发明的目的在于,针对所存在的不足,提出了一种用于区块链的节点部署与选举的装置,

为了克服现有技术的不足,本发明采用如下技术方案:

一种用于区块链的节点部署与选举的装置,包括节点生成模块、区块存储模块、广播模块、选举模块和节点记录模块,所述节点生成模块用于创建节点,所述广播模块节点之间互相发送广播信息,所述区块存储模块用于存储区块链信息,所述选举模块用于记录节点的状态并参与竞选超级节点,所述节点记录模块用于记录所有的节点信息;

进一步的,所述节点生成模块创建一个新的节点信息,所述广播模块向第一节点发送所述包含新节点的创建信息,所述第一节点向周围节点发送新创广播信息,其余节点接收所述新创广播信息后进行转播直至所有节点接收到新创广播信息;

进一步的,所述新创广播信息内包含广播数据包,所述广播数据包内含有尚未广播到的节点信息,每个节点删除所述广播数据包内自身节点的信息后再向处于所述广播数据包内的节点进行转播,当一个节点接收的广播数据包中的交集为自身节点时,表示所有节点均已接收到所述新创广播信息;

进一步的,节点在转播新创广播信息时会选择转播值最大的五个节点进行转播,若节点J1向节点J2发送了新创广播信息,节点J2正要选择需要转播的节点,节点J3为需要转播的候选节点,则节点J3的转播值Z为:

其中,t1为节点J2与节点J3之间的信息传送时间,t2为节点J1与节点J2之间的信息传送时间,t3为节点J1与节点J3之间的信息传送时间;

进一步的,所述节点分为普通节点、候选节点和超级节点,每个一定时间进行超级节点的换届选举,所述普通节点和所述候选节点具有投票权,所述超级节点进行统计唱票,所述普通节点对唱票进行监督,所述候选节点中选出一个节点称为下一轮的超级节点,本轮的超级节点不参与下一轮超级节点的竞选;

进一步的,所述节点的投票权重Qi为:

其中,i为节点序号,ki为基础系数,普通节点的基础系数为2,候选节点的基础系数为1,而超级节点不参与竞选,其基础系数为0,Ri为对应节点的历史比重,Ci为对应节点的计算能力值;

进一步的,所述历史比重Ri为:

其中,Wi为对应节点当选超级节点的历史累计值,j为候选节点的序号;

所述历史累计值Wi的计算公式为:

其中,当序号为i的节点在第n次选举成功当选超级节点时,Ui(n)=1,当序号为i的节点在第n次选举未当选超级节点时,Ui(n)=0,N为当前选举超级节点的次数;

进一步的,所述超级节点对每一个候选节点的得票数Pj进行统计:

Pj=∑Qi·T(i),

其中,j为候选节点的序号,T(i)为序号为i的节点的投票情况,当序号为i的节点投票给该候选节点时,T(i)为1,当序号为i的节点投票给其余候选节点或者投弃票时,T(i)为0;

本发明所取得的有益效果是:

该装置构成的区块链系统在部署新节点时,通过在广播信息中添加未广播到的节点信息,基于此对每个节点的广播对象进行选择,减少了大量重复的无效广播,而在超级节点的竞选过程中,通过对每个节点赋予不同的权重,避免了超级节点垄断在某一节点集团中,使整个区块链的效益分配更加公平。

附图说明

从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在不同的视图中,相同的附图标记指定对应的部分。

图1为整体结构框架示意图。

图2为新创节点广播结构示意图。

图3为超级节点选举示意图。

图4为新节点部署流程示意图。

图5为普通节点计票监督示意图。

具体实施方式

为了使得本发明的目的.技术方案及优点更加清楚明白,以下结合其实施例,对本发明进行进一步详细说明;应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。对于本领域技术人员而言,在查阅以下详细描述之后,本实施例的其它系统.方法和/或特征将变得显而易见。旨在所有此类附加的系统.方法.特征和优点都包括在本说明书内.包括在本发明的范围内,并且受所附权利要求书的保护。在以下详细描述描述了所公开的实施例的另外的特征,并且这些特征根据以下将详细描述将是显而易见的。

本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或组件必须具有特定的方位,以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

实施例一。

参见图1-4,本实施例提供一种用于区块链的节点部署与选举的装置,包括节点生成模块、区块存储模块、广播模块、选举模块和节点记录模块,所述节点生成模块用于创建节点,所述广播模块节点之间互相发送广播信息,所述区块存储模块用于存储区块链信息,所述选举模块用于记录节点的状态并参与竞选超级节点,所述节点记录模块用于记录所有的节点信息;

所述节点生成模块创建一个新的节点信息,所述广播模块向第一节点发送所述包含新节点的创建信息,所述第一节点向周围节点发送新创广播信息,其余节点接收所述新创广播信息后进行转播直至所有节点接收到新创广播信息;

所述新创广播信息内包含广播数据包,所述广播数据包内含有尚未广播到的节点信息,每个节点删除所述广播数据包内自身节点的信息后再向处于所述广播数据包内的节点进行转播,当一个节点接收的广播数据包中的交集为自身节点时,表示所有节点均已接收到所述新创广播信息;

节点在转播新创广播信息时会选择转播值最大的五个节点进行转播,若节点J1向节点J2发送了新创广播信息,节点J2正要选择需要转播的节点,节点J3为需要转播的候选节点,则节点J3的转播值Z为:

其中,t1为节点J2与节点J3之间的信息传送时间,t2为节点J1与节点J2之间的信息传送时间,t3为节点J1与节点J3之间的信息传送时间;

所述节点分为普通节点、候选节点和超级节点,每个一定时间进行超级节点的换届选举,所述普通节点和所述候选节点具有投票权,所述超级节点进行统计唱票,所述普通节点对唱票进行监督,所述候选节点中选出一个节点称为下一轮的超级节点,本轮的超级节点不参与下一轮超级节点的竞选;

所述节点的投票权重Qi为:

其中,i为节点序号,ki为基础系数,普通节点的基础系数为2,候选节点的基础系数为1,而超级节点不参与竞选,其基础系数为0,Ri为对应节点的历史比重,Ci为对应节点的计算能力值;

所述历史比重Ri为:

其中,Wi为对应节点当选超级节点的历史累计值,j为候选节点的序号;

所述历史累计值Wi的计算公式为:

其中,当序号为i的节点在第n次选举成功当选超级节点时,Ui(n)=1,当序号为i的节点在第n次选举未当选超级节点时,Ui(n)=0,N为当前选举超级节点的次数;

所述超级节点对每一个候选节点的得票数Pj进行统计:

Pj=∑Qi·T(i),

其中,j为候选节点的序号,T(i)为序号为i的节点的投票情况,当序号为i的节点投票给该候选节点时,T(i)为1,当序号为i的节点投票给其余候选节点或者投弃票时,T(i)为0;

本实施例还包括一种计算机可读存储介质,所述计算机可读存储介质中包括一种用于区块链的节点部署与选举的装置程序,所述用于区块链的节点部署与选举的装置程序被处理器执行时,实现一种用于区块链的节点部署与选举的装置步骤。

实施例二。

继续结合附图1-5,本实施例再提供一种用于区块链的节点部署与选举的装置,包括节点生成模块、区块存储模块、广播模块、选举模块和节点记录模块,所述节点生成模块用于创建节点,所述广播模块节点之间互相发送广播信息,所述区块存储模块用于存储区块链信息,所述选举模块用于记录节点的状态并参与竞选超级节点,所述节点记录模块用于记录所有的节点信息;

所述节点生成模块创建一个新的节点信息,所述广播模块向第一节点发送所述包含新节点的创建信息,所述第一节点向周围节点发送新创广播信息,其余节点接收所述新创广播信息后进行转播直至所有节点接收到新创广播信息;

所述新创广播信息内包含广播数据包,所述广播数据包内含有尚未广播到的节点信息,每个节点删除所述广播数据包内自身节点的信息后再向处于所述广播数据包内的节点进行转播,当一个节点接收的广播数据包中的交集为自身节点时,表示所有节点均已接收到所述新创广播信息;

节点在转播新创广播信息时会选择转播值最大的五个节点进行转播,若节点J1向节点J2发送了新创广播信息,节点J2正要选择需要转播的节点,节点J3为需要转播的候选节点,则节点J3的转播值Z为:

其中,t1为节点J2与节点J3之间的信息传送时间,t2为节点J1与节点J2之间的信息传送时间,t3为节点J1与节点J3之间的信息传送时间;

所述节点分为普通节点、候选节点和超级节点,每个一定时间进行超级节点的换届选举,所述普通节点和所述候选节点具有投票权,所述超级节点进行统计唱票,所述普通节点对唱票进行监督,所述候选节点中选出一个节点称为下一轮的超级节点,本轮的超级节点不参与下一轮超级节点的竞选;

所述节点的投票权重Qi为:

其中,i为节点序号,ki为基础系数,普通节点的基础系数为2,候选节点的基础系数为1,而超级节点不参与竞选,其基础系数为0,Ri为对应节点的历史比重,Ci为对应节点的计算能力值;

所述历史比重Ri为:

其中,Wi为对应节点当选超级节点的历史累计值,j为候选节点的序号;

所述历史累计值Wi的计算公式为:

其中,当序号为i的节点在第n次选举成功当选超级节点时,Ui(n)=1,当序号为i的节点在第n次选举未当选超级节点时,Ui(n)=0,N为当前选举超级节点的次数;

所述超级节点对每一个候选节点的得票数Pj进行统计:

Pj=∑Qi·T(i),

其中,j为候选节点的序号,T(i)为序号为i的节点的投票情况,当序号为i的节点投票给该候选节点时,T(i)为1,当序号为i的节点投票给其余候选节点或者投弃票时,T(i)为0;

基于此设计了一种用于区块链的节点部署与选举的装置,包括节点生成模块、区块存储模块、广播模块、选举模块和节点记录模块,所述节点生成模块用于创建节点,所述广播模块用于向周围节点广播信息以及接收来自周围节点的广播信息,所述区块存储模块用于存储原有区块链信息以及接收广播信息中包含的新区块信息,所述选举模块用于记录节点的状态参与竞选超级节点,所述节点记录模块用于记录所有的节点信息;

所述节点生成模块创建一个新的节点信息,所述广播模块向最近的节点发送所述包含新节点的创建信息,最近的节点称为第一节点,所述第一节点接收创建信息后,在其节点记录模块中添加新节点信息,所述第一节点将全部节点信息打包成全节点信息发回新节点,所述新节点在接收全节点信息后在其节点记录模块中进行记录,所述第一节点在接收创建信息后向周围节点发送新创广播信息,所述新创广播信息包含两部分内容,一为新创数据包,包含了新创建的节点信息,二为广播数据包,包含了尚未广播到的节点信息,当某一节点接收到新创广播信息之后,在广播数据包中删除自身节点的节点信息后,向处于所述广播数据包内的最近的若干个节点发送新创广播信息,一个节点会接收多个新创数据包相同的新创广播信息,并对其中的广播数据包求交集,当交集结果为自身节点时,认为新创建的节点信息已广播至所有的节点,该节点向周围节点发送新创完成信息,所述新创完成信息包含两部分内容,一为新创数据包,包含了新创建的节点信息,二为广播完成包,包含了完成广播的标记,节点在接收到新创完成包后向其他节点直接进行转播,当所述第一节点接收到新创完成包后,向新创建的节点发送成功通知,至此,新的节点正式部署成功;

所述节点在接收到多个相同新创数据包的新创广播信息和新创完成信息时,均只会在第一次接收新创广播信息和/或新创完成信息时向周围节点转播,防止发生转播信息爆炸;

所述节点在转播新创广播信息时,会计算处于所述广播数据包内的周围节点与其自身节点的转播值,并选择转播值最大的五个节点进行转播,若节点J1向节点J2发送了新创广播信息,节点J2正要选择需要转播的节点,节点J3为需要转播的候选节点,则节点J3的转播值Z的为:

其中,t1为节点J2与节点J3之间的信息传送时间,t2为节点J1与节点J2之间的信息传送时间,t3为节点J1与节点J3之间的信息传送时间;

所述第一节点在接收到创建信息后,会将新节点信息与节点记录模块中的原有节点信息进行对比,若发生节点冲突,向新创建的节点发送冲突通知,所述新创建的节点在接收冲突通知后通过所述节点生成模块创建新的节点信息并重复上述过程直至接收到成功通知;

所述装置只能成功部署一次新节点,在所述节点接收到成功通知后会自动销毁所述节点生成模块以提供内存空间。

实施例三。

仍参见附图,本实施例提供一种用于区块链的节点部署与选举的装置,包括节点生成模块、区块存储模块、广播模块、选举模块和节点记录模块,所述节点生成模块用于创建节点,所述广播模块节点之间互相发送广播信息,所述区块存储模块用于存储区块链信息,所述选举模块用于记录节点的状态并参与竞选超级节点,所述节点记录模块用于记录所有的节点信息;

所述节点生成模块创建一个新的节点信息,所述广播模块向第一节点发送所述包含新节点的创建信息,所述第一节点向周围节点发送新创广播信息,其余节点接收所述新创广播信息后进行转播直至所有节点接收到新创广播信息;

所述新创广播信息内包含广播数据包,所述广播数据包内含有尚未广播到的节点信息,每个节点删除所述广播数据包内自身节点的信息后再向处于所述广播数据包内的节点进行转播,当一个节点接收的广播数据包中的交集为自身节点时,表示所有节点均已接收到所述新创广播信息;

节点在转播新创广播信息时会选择转播值最大的五个节点进行转播,若节点J1向节点J2发送了新创广播信息,节点J2正要选择需要转播的节点,节点J3为需要转播的候选节点,则节点J3的转播值Z为:

其中,t1为节点J2与节点J3之间的信息传送时间,t2为节点J1与节点J2之间的信息传送时间,t3为节点J1与节点J3之间的信息传送时间;

所述节点分为普通节点、候选节点和超级节点,每个一定时间进行超级节点的换届选举,所述普通节点和所述候选节点具有投票权,所述超级节点进行统计唱票,所述普通节点对唱票进行监督,所述候选节点中选出一个节点称为下一轮的超级节点,本轮的超级节点不参与下一轮超级节点的竞选;

所述节点的投票权重Qi为:

其中,i为节点序号,ki为基础系数,普通节点的基础系数为2,候选节点的基础系数为1,而超级节点不参与竞选,其基础系数为0,Ri为对应节点的历史比重,Ci为对应节点的计算能力值;

所述历史比重Ri为:

其中,Wi为对应节点当选超级节点的历史累计值,j为候选节点的序号;

所述历史累计值Wi的计算公式为:

其中,当序号为i的节点在第n次选举成功当选超级节点时,Ui(n)=1,当序号为i的节点在第n次选举未当选超级节点时,Ui(n)=0,N为当前选举超级节点的次数;

所述超级节点对每一个候选节点的得票数Pj进行统计:

Pj=∑Qi·T(i),

其中,j为候选节点的序号,T(i)为序号为i的节点的投票情况,当序号为i的节点投票给该候选节点时,T(i)为1,当序号为i的节点投票给其余候选节点或者投弃票时,T(i)为0;

基于此设计了一种用于区块链的节点部署与选举的装置,包括节点生成模块、区块存储模块、广播模块、选举模块和节点记录模块,所述节点生成模块用于创建节点,所述广播模块用于向周围节点广播信息以及接收来自周围节点的广播信息,所述区块存储模块用于存储原有区块链信息以及接收广播信息中包含的新区块信息,所述选举模块用于记录节点的状态参与竞选超级节点,所述节点记录模块用于记录所有的节点信息;

所述节点生成模块创建一个新的节点信息,所述广播模块向最近的节点发送所述包含新节点的创建信息,最近的节点称为第一节点,所述第一节点接收创建信息后,在其节点记录模块中添加新节点信息,所述第一节点将全部节点信息打包成全节点信息发回新节点,所述新节点在接收全节点信息后在其节点记录模块中进行记录,所述第一节点在接收创建信息后向周围节点发送新创广播信息,所述新创广播信息包含两部分内容,一为新创数据包,包含了新创建的节点信息,二为广播数据包,包含了尚未广播到的节点信息,当某一节点接收到新创广播信息之后,在广播数据包中删除自身节点的节点信息后,向处于所述广播数据包内的最近的若干个节点发送新创广播信息,一个节点会接收多个新创数据包相同的新创广播信息,并对其中的广播数据包求交集,当交集结果为自身节点时,认为新创建的节点信息已广播至所有的节点,该节点向周围节点发送新创完成信息,所述新创完成信息包含两部分内容,一为新创数据包,包含了新创建的节点信息,二为广播完成包,包含了完成广播的标记,节点在接收到新创完成包后向其他节点直接进行转播,当所述第一节点接收到新创完成包后,向新创建的节点发送成功通知,至此,新的节点正式部署成功;

所述节点在接收到多个相同新创数据包的新创广播信息和新创完成信息时,均只会在第一次接收新创广播信息和/或新创完成信息时向周围节点转播,防止发生转播信息爆炸;

所述节点在转播新创广播信息时,会计算处于所述广播数据包内的周围节点与其自身节点的转播值,并选择转播值最大的五个节点进行转播,若节点J1向节点J2发送了新创广播信息,节点J2正要选择需要转播的节点,节点J3为需要转播的候选节点,则节点J3的转播值Z的为:

其中,t1为节点J2与节点J3之间的信息传送时间,t2为节点J1与节点J2之间的信息传送时间,t3为节点J1与节点J3之间的信息传送时间;

所述第一节点在接收到创建信息后,会将新节点信息与节点记录模块中的原有节点信息进行对比,若发生节点冲突,向新创建的节点发送冲突通知,所述新创建的节点在接收冲突通知后通过所述节点生成模块创建新的节点信息并重复上述过程直至接收到成功通知;

所述装置只能成功部署一次新节点,在所述节点接收到成功通知后会自动销毁所述节点生成模块以提供内存空间;

所述选举模块将检测自身节点的计算能力并生成一个计算能力值C,当所述计算能力值大于阈值时,所述选举模块推荐自身节点为候选人节点并通过所述广播模块向其余节点广播,节点网络每隔一段时间从所述候选人节点中选举出一个超级节点负责打包区块,当一个节点成功当选超级节点后将不再参与下一轮的超级节点竞选;

除超级节点外的所有节点均拥有投票权,每个节点拥有不同的投票权重Qi,其中i为该节点在节点网络的序号,所述投票权重Qi为:

其中,ki为基础系数,普通节点的基础系数为2,候选节点的基础系数为1,而超级节点不参与竞选,其基础系数为0,Ri为对应节点的历史比重;

所述历史比重Ri为:

其中,Wi为对应节点当选超级节点的历史累计值,j为候选节点的序号;

所述历史累计值Wi的计算公式为:

其中,当序号为i的节点在第n次选举成功当选超级节点时,Ui(n)=1,当序号为i的节点在第n次选举未当选超级节点时,Ui(n)=0,N为当前选举超级节点的次数;

所述超级节点收集每个节点的投票并进行计票,所述普通节点对所述超级节点的计票过程进行监督;

所述节点的选举模块在超级节点竞选时打包一个选举数据包并通过所述广播模块向外广播,所述选举数据包内包含有该节点的节点信息与签名信息、投票的候选节点信息,所述超级节点在接收到所述选举数据包后进行唱票,所述唱票方式为向外广播一条唱票信息,所述唱票信息包含某一节点的签名信息与投票信息,所述普通节点对所述唱票信息进行验证,验证通过后唱票有效,若验证不通过则唱票无效,所述超级节点对每一个候选节点的得票数Pj进行统计:

Pj=∑Qi·T(i),

其中,j为候选节点的序号,T(i)为序号为i的节点的投票情况,当序号为i的节点投票给该候选节点时,T(i)为1,当序号为i的节点投票给其余候选节点或者投弃票时,T(i)为0。

实施例四。

一种用于区块链的节点部署与选举的装置,包括节点生成模块、区块存储模块、广播模块、选举模块和节点记录模块,所述节点生成模块用于创建节点,所述广播模块节点之间互相发送广播信息,所述区块存储模块用于存储区块链信息,所述选举模块用于记录节点的状态并参与竞选超级节点,所述节点记录模块用于记录所有的节点信息;

所述节点生成模块创建一个新的节点信息,所述广播模块向第一节点发送所述包含新节点的创建信息,所述第一节点向周围节点发送新创广播信息,其余节点接收所述新创广播信息后进行转播直至所有节点接收到新创广播信息;

所述新创广播信息内包含广播数据包,所述广播数据包内含有尚未广播到的节点信息,每个节点删除所述广播数据包内自身节点的信息后再向处于所述广播数据包内的节点进行转播,当一个节点接收的广播数据包中的交集为自身节点时,表示所有节点均已接收到所述新创广播信息;

节点在转播新创广播信息时会选择转播值最大的五个节点进行转播,若节点J1向节点J2发送了新创广播信息,节点J2正要选择需要转播的节点,节点J3为需要转播的候选节点,则节点J3的转播值Z为:

其中,t1为节点J2与节点J3之间的信息传送时间,t2为节点J1与节点J2之间的信息传送时间,t3为节点J1与节点J3之间的信息传送时间;

所述节点分为普通节点、候选节点和超级节点,每个一定时间进行超级节点的换届选举,所述普通节点和所述候选节点具有投票权,所述超级节点进行统计唱票,所述普通节点对唱票进行监督,所述候选节点中选出一个节点称为下一轮的超级节点,本轮的超级节点不参与下一轮超级节点的竞选;

所述节点的投票权重Qi为:

其中,i为节点序号,ki为基础系数,普通节点的基础系数为2,候选节点的基础系数为1,而超级节点不参与竞选,其基础系数为0,Ri为对应节点的历史比重,Ci为对应节点的计算能力值;

所述历史比重Ri为:

其中,Wi为对应节点当选超级节点的历史累计值,j为候选节点的序号;

所述历史累计值Wi的计算公式为:

其中,当序号为i的节点在第n次选举成功当选超级节点时,Ui(n)=1,当序号为i的节点在第n次选举未当选超级节点时,Ui(n)=0,N为当前选举超级节点的次数;

所述超级节点对每一个候选节点的得票数Pj进行统计:

Pj=∑Qi·T(i),

其中,j为候选节点的序号,T(i)为序号为i的节点的投票情况,当序号为i的节点投票给该候选节点时,T(i)为1,当序号为i的节点投票给其余候选节点或者投弃票时,T(i)为0;

基于此设计了一种用于区块链的节点部署与选举的装置,包括节点生成模块、区块存储模块、广播模块、选举模块和节点记录模块,所述节点生成模块用于创建节点,所述广播模块用于向周围节点广播信息以及接收来自周围节点的广播信息,所述区块存储模块用于存储原有区块链信息以及接收广播信息中包含的新区块信息,所述选举模块用于记录节点的状态参与竞选超级节点,所述节点记录模块用于记录所有的节点信息;

所述节点生成模块创建一个新的节点信息,所述广播模块向最近的节点发送所述包含新节点的创建信息,最近的节点称为第一节点,所述第一节点接收创建信息后,在其节点记录模块中添加新节点信息,所述第一节点将全部节点信息打包成全节点信息发回新节点,所述新节点在接收全节点信息后在其节点记录模块中进行记录,所述第一节点在接收创建信息后向周围节点发送新创广播信息,所述新创广播信息包含两部分内容,一为新创数据包,包含了新创建的节点信息,二为广播数据包,包含了尚未广播到的节点信息,当某一节点接收到新创广播信息之后,在广播数据包中删除自身节点的节点信息后,向处于所述广播数据包内的最近的若干个节点发送新创广播信息,一个节点会接收多个新创数据包相同的新创广播信息,并对其中的广播数据包求交集,当交集结果为自身节点时,认为新创建的节点信息已广播至所有的节点,该节点向周围节点发送新创完成信息,所述新创完成信息包含两部分内容,一为新创数据包,包含了新创建的节点信息,二为广播完成包,包含了完成广播的标记,节点在接收到新创完成包后向其他节点直接进行转播,当所述第一节点接收到新创完成包后,向新创建的节点发送成功通知,至此,新的节点正式部署成功;

所述节点在接收到多个相同新创数据包的新创广播信息和新创完成信息时,均只会在第一次接收新创广播信息和/或新创完成信息时向周围节点转播,防止发生转播信息爆炸;

所述节点在转播新创广播信息时,会计算处于所述广播数据包内的周围节点与其自身节点的转播值,并选择转播值最大的五个节点进行转播,若节点J1向节点J2发送了新创广播信息,节点J2正要选择需要转播的节点,节点J3为需要转播的候选节点,则节点J3的转播值Z的为:

其中,t1为节点J2与节点J3之间的信息传送时间,t2为节点J1与节点J2之间的信息传送时间,t3为节点J1与节点J3之间的信息传送时间;

所述第一节点在接收到创建信息后,会将新节点信息与节点记录模块中的原有节点信息进行对比,若发生节点冲突,向新创建的节点发送冲突通知,所述新创建的节点在接收冲突通知后通过所述节点生成模块创建新的节点信息并重复上述过程直至接收到成功通知;

所述装置只能成功部署一次新节点,在所述节点接收到成功通知后会自动销毁所述节点生成模块以提供内存空间;

所述选举模块将检测自身节点的计算能力并生成一个计算能力值C,当所述计算能力值大于阈值时,所述选举模块推荐自身节点为候选人节点并通过所述广播模块向其余节点广播,节点网络每隔一段时间从所述候选人节点中选举出一个超级节点负责打包区块,当一个节点成功当选超级节点后将不再参与下一轮的超级节点竞选;

除超级节点外的所有节点均拥有投票权,每个节点拥有不同的投票权重Qi,其中i为该节点在节点网络的序号,所述投票权重Qi为:

其中,ki为基础系数,普通节点的基础系数为2,候选节点的基础系数为1,而超级节点不参与竞选,其基础系数为0,Ri为对应节点的历史比重;

所述历史比重Ri为:

其中,Wi为对应节点当选超级节点的历史累计值,j为候选节点的序号;

所述历史累计值Wi的计算公式为:

其中,当序号为i的节点在第n次选举成功当选超级节点时,Ui(n)=1,当序号为i的节点在第n次选举未当选超级节点时,Ui(n)=0,N为当前选举超级节点的次数;

所述超级节点收集每个节点的投票并进行计票,所述普通节点对所述超级节点的计票过程进行监督;

所述节点的选举模块在超级节点竞选时打包一个选举数据包并通过所述广播模块向外广播,所述选举数据包内包含有该节点的节点信息与签名信息、投票的候选节点信息,所述超级节点在接收到所述选举数据包后进行唱票,所述唱票方式为向外广播一条唱票信息,所述唱票信息包含某一节点的签名信息与投票信息,所述普通节点对所述唱票信息进行验证,验证通过后唱票有效,若验证不通过则唱票无效,所述超级节点对每一个候选节点的得票数Pj进行统计:

Pj=∑Qi·T(i),

其中,j为候选节点的序号,T(i)为序号为i的节点的投票情况,当序号为i的节点投票给该候选节点时,T(i)为1,当序号为i的节点投票给其余候选节点或者投弃票时,T(i)为0;

每个节点均有一对密钥,包括私钥和公钥,所述私钥由节点自身保管,所述公钥与节点信息配对公布给所有节点,所述选举数据包内的该节点的节点信息与投票的候选节点信息通过哈希运算得到第一哈希值,所述第一哈希值再与该节点的私钥通过哈希运算得到签名信息,所述普通节点在接收到唱票信息后,通过唱票信息得到对应的公钥,并利用所述公钥对唱票信息中的签名信息进行解锁得到文本,将文本中的投票节点信息以及其所投票的候选节点信息与唱票中的信息进行对比,对比无误则唱票有效;

每个拥有投票权的节点必须投票给某一候选节点或者投弃票,当所述超级节点接收到其余所有节点的投票并唱票有效后,得票数最多的候选节点称为新的超级节点并负责区块打包工作,区块打包完成后向其余节点进行广播并将新的区块加入到区块链中;

该投票方式能够杜绝某些节点持续当选超级节点,防止舞弊现象的发生。

虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。也就是说上面讨论的方法,系统和设备是示例。各种配置可以适当地省略,替换或添加各种过程或组件。例如,在替代配置中,可以以与所描述的顺序不同的顺序执行方法,和/或可以添加,省略和/或组合各种部件。而且,关于某些配置描述的特征可以以各种其他配置组合,如可以以类似的方式组合配置的不同方面和元素。此外,随着技术发展其中的元素可以更新,即许多元素是示例,并不限制本公开或权利要求的范围。

在说明书中给出了具体细节以提供对包括实现的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置例如,已经示出了众所周知的电路,过程,算法,结构和技术而没有不必要的细节,以避免模糊配置。该描述仅提供示例配置,并且不限制权利要求的范围,适用性或配置。相反,前面对配置的描述将为本领域技术人员提供用于实现所描述的技术的使能描述。在不脱离本公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。

综上,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:场景同步方法、终端、服务器及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类