一种区块链节点激励方法及装置与流程

文档序号:15845577发布日期:2018-11-07 08:58阅读:212来源:国知局
一种区块链节点激励方法及装置与流程

本发明涉及区块链技术领域,特别涉及一种区块链节点激励方法及装置。

背景技术

区块链网络为一种分布式去中心化的数据网络,信息被存储在所有加入到区块链网络的节点中,各个节点的数据是同步的。区块链网络中的各个节点基于协商一致的规范和协议实现具体操作,区块链网络中的陌生节点在没有第三方中心作为信用支持的情况下能够实现信任通信。

区块链网络中常用的节点激励方式包括:工作量证明机制,工作量证明机制下节点通过比拼计算力以获得区块生成权利,在区块认证通过后获得报酬;权益证明机制,权益证明机制通过评价节点所拥有资产的数量分配区块的生成权利,资产拥有数量越多的节点越容易获得区块生成权利和报酬;股份授权证明机制,股份授权证明机制通过投票的方式选出一定数量的代表节点负责生成区块,所有代表节点平均分配所获得的报酬。以上的多种节点激励方式均无法保证节点充分参与区块的生成,且代表节点的报酬分配方式较差。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题之一,提供了一种区块链节点激励方法及装置,能够保证节点充分参与区块的生成,并优化代表节点的报酬分配方式。

为实现上述目的,本发明提供了一种区块链节点激励方法,包括:

根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成所述代表节点的协同性数值;

判断所述代表节点的协同性数值是否大于预设阈值;

若判断出所述代表节点的协同性数值大于预设阈值,更换所述代表节点。

可选地,在所述根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成所述代表节点的协同性数值之前还包括:

获取所述代表节点在区块生成周期内的协议输出能力值和实际输出能力值,所述协议输出能力值和所述实际输出能力值均包括算力值、存储值、带宽值、传输时延值和业务处理能力值;

获取所述代表节点在区块生成周期内的计划生成区块数和实际生成区块数;

根据与所述代表节点对应的协议输出能力值和实际输出能力值、所述代表节点在区块生成周期内的计划生成区块数和实际生成区块数生成所述代表节点的向心性数值。

可选地,在所述根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成所述代表节点的协同性数值之前还包括:

获取所述代表节点在区块生成周期内的发送成功广播消息数、发送失败广播消息数及发送失败单播消息数;

根据所述代表节点在区块生成周期内的发送成功广播消息数、发送失败广播消息数及发送失败单播消息数生成所述代表节点的活跃度数值。

可选地,在所述获取所述代表节点在区块生成周期内的协议输出能力值和实际输出能力值之前还包括:

接收多个节点的注册请求并为每个节点分配公钥;

在多个所述节点中产生多个代表节点,所述代表节点用于生成区块。

可选地,在所述根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成所述代表节点的协同性数值之后还包括:

生成所述代表节点在区块生成周期内的通信记录报酬值;

在分配周期内根据所述通信记录报酬值和所述协同性数值为所述代表节点分配区块生成报酬值,所述分配周期包括多个区块生成周期。

为实现上述目的,本发明还提供了一种区块链节点激励装置,包括:

生成模块,用于根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成所述代表节点的协同性数值;

判断模块,用于判断所述代表节点的协同性数值是否大于预设阈值;

更换模块,用于若判断模块判断出所述代表节点的协同性数值大于预设阈值,更换所述代表节点。

可选地,还包括:

获取模块,用于获取所述代表节点在区块生成周期内的协议输出能力值和实际输出能力值,所述协议输出能力值和所述实际输出能力值均包括算力值、存储值、带宽值、传输时延值和业务处理能力值,获取所述代表节点在区块生成周期内的计划生成区块数和实际生成区块数;

所述生成模块还用于根据与所述代表节点对应的协议输出能力值和实际输出能力值、所述代表节点在区块生成周期内的计划生成区块数和实际生成区块数生成所述代表节点的向心性数值。

可选地,所述获取模块还用于获取所述代表节点在区块生成周期内的发送成功广播消息数、发送失败广播消息数及发送失败单播消息数;

所述生成模块还用于根据所述代表节点在区块生成周期内的发送成功广播消息数、发送失败广播消息数及发送失败单播消息数生成所述代表节点的活跃度数值。

可选地,还包括:

接收分配模块,用于接收多个节点的注册请求并为每个节点分配公钥;

代表节点生成模块,用于在多个所述节点中产生多个代表节点,所述代表节点用于生成区块。

可选地,还包括:

报酬生成模块,用于生成所述代表节点在区块生成周期内的通信记录报酬值;

分配模块,用于在分配周期内根据所述通信记录报酬值和所述协同性数值为所述代表节点分配区块生成报酬值,所述分配周期包括多个区块生成周期。

本发明具有以下有益效果:

本发明提供的区块链节点激励方法,根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成代表节点的协同性数值,判断代表节点的协同性数值是否大于预设阈值,若判断出代表节点的协同性数值大于预设阈值,更换该代表节点。本发明能够保证节点充分参与区块的生成,并优化代表节点的报酬分配方式。

附图说明

图1为本发明实施例一提供的一种区块链节点激励方法的流程示意图;

图2为本发明实施例二提供的一种区块链节点激励方法的流程示意图;

图3为本发明实施例三提供的一种区块链节点激励装置的结构示意图。

具体实施方式

为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

图1为本发明实施例一提供的一种区块链节点激励方法的流程示意图,如图1所示,该方法包括以下步骤:

步骤101、根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成所述代表节点的协同性数值。

步骤102、判断所述代表节点的协同性数值是否大于预设阈值,若是,执行步骤103;若否,流程结束。

步骤103、更换所述代表节点。

本实施例提供的区块链节点激励方法,根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成代表节点的协同性数值,判断代表节点的协同性数值是否大于预设阈值,若判断出代表节点的协同性数值大于预设阈值,更换该代表节点。该方法能够保证节点充分参与区块的生成,并优化代表节点的报酬分配方式。

实施例二

图2为本发明实施例二提供的一种区块链节点激励方法的流程示意图,如图2所示,该方法包括以下步骤:

步骤201、接收多个节点的注册请求并为每个节点分配公钥。

优选地,本实施例中的各步骤由区块链节点激励装置执行。

多个节点发送注册请求以加入区块链中。

步骤202、在多个所述节点中产生多个代表节点,所述代表节点用于生成区块。

多个代表节点构成代表节点集,代表节点集包括n个代表。可选地,在步骤202之后还包括:为所述代表节点集分配区块生成周期t。在区块生成周期t内代表节点集中的每个代表节点轮流生成设定数量个区块,且在区块生成周期t内代表节点随机更换顺序以生成设定数量个区块。

步骤203、获取所述代表节点在区块生成周期内的协议输出能力值和实际输出能力值,所述协议输出能力值和所述实际输出能力值均包括算力值、存储值、带宽值、传输时延值和业务处理能力值。

输出能力值用于表示代表节点的输出能力的大小,输出能力值越大,表示该代表节点的区块生成能力越强。

具体地,获取代表节点可以在区块生成周期内贡献的能力集,代表节点可以在区块生成周期内贡献的能力集包括协议输出算力值cp、协议输出存储值s、协议输出带宽值b、协议输出传输时延值d和协议输出业务处理能力值tp。通过f1函数ai=f1(cpi,si,bi,di,tpi)计算出代表节点的协议输出能力值,其中,ai表示代表节点i的协议输出能力值。所有代表节点的协议输出能力值组成代表节点集的协议输出能力集a={a1,a2,...,an}。

获取代表节点在区块生成周期内实际贡献的能力集,代表节点在区块生成周期内实际贡献的能力集包括实际输出算力值cp′、实际输出存储值s′、实际输出带宽值b′、实际输出传输时延值d′和实际输出业务处理能力值tp′。通过f1函数ai′=f1(cpi′,si′,bi′,di′,tpi′)计算出代表节点的实际输出能力值,其中,ai′表示代表节点i的实际输出能力值。所有代表节点的实际输出能力值组成代表节点集的实际输出能力集a′={a1′,a2′,...,an′}。

步骤204、获取所述代表节点在区块生成周期内的计划生成区块数和实际生成区块数。

所有代表节点在区块生成周期内的计划生成区块数组成代表节点集在区块生成周期内的计划生成区块数集合m={m1,m2,...,mn},其中m为代表节点集在区块生成周期内的计划生成区块数集合,mn为第n个代表节点在区块生成周期内的计划生成区块数。

所有代表节点在区块生成周期内的实际生成区块数组成代表节点集在区块生成周期内的实际生成区块数集合m′={m′1,m′2,...,m′n},其中m′为代表节点集在区块生成周期内的实际生成区块数集合,mn′为第n个代表节点在区块生成周期内的实际生成区块数。

步骤205、根据与所述代表节点对应的协议输出能力值和实际输出能力值、所述代表节点在区块生成周期内的计划生成区块数和实际生成区块数生成所述代表节点的向心性数值。

通过公式计算出代表节点的向心性数值,其中,coi表示代表节点i的向心性数值,m′i表示代表节点i在区块生成周期内的实际生成区块数,mi表示代表节点i在区块生成周期内的计划生成区块数。

代表节点的向心性数值越大,表示该代表节点的区块生成能力越弱。

步骤206、获取所述代表节点在区块生成周期内的发送成功广播消息数、发送失败广播消息数及发送失败单播消息数。

在区块生成周期t内,每当代表节点生成一个区块,该代表节点即向代表节点集中的所有代表节点发送一条成功广播消息。所有代表节点在区块生成周期内的发送成功广播消息数组成代表节点集在区块生成周期内的发送成功广播消息数集合s′={s′1,s′2,...,s′n},其中s′表示代表节点集在区块生成周期内的发送成功广播消息数集合,s′n表示第n个代表节点在区块生成周期内的发送成功广播消息数。

可选地,本实施例中还预先生成代表节点在区块生成周期内的计划发送成功广播消息数,所有代表节点在区块生成周期内的计划发送成功广播消息数组成代表节点集在区块生成周期内的计划发送成功广播消息数集合s={s1,s2,...,sn},其中s表示代表节点集在区块生成周期内的计划发送成功广播消息数集合,sn表示第n个代表节点在区块生成周期内的计划发送成功广播消息数。可以理解的是,第n个代表节点在区块生成周期内的计划发送成功广播消息数sn与第n个代表节点在区块生成周期内的计划生成区块数mn大小相同。

在区块生成周期t内,每当代表节点错过生成一个区块,即向代表节点集中的所有代表节点发送一条失败广播消息fb、且向下一时间顺序准备生成区块的相邻代表节点发送点对点的失败单播消息fu。所有代表节点在区块生成周期内的发送失败广播消息数组成代表节点集在区块生成周期内的发送失败广播消息数集合fb={fb1,fb2,...,fbn},其中fb表示代表节点集在区块生成周期内的发送失败广播消息数集合,fbn表示第n个代表节点在区块生成周期内的发送失败广播消息数。所有代表节点在区块生成周期内的发送失败单播消息数组成代表节点集在区块生成周期内的发送失败单播消息数集合fu={fu1,fu2,...,fun},其中fu表示代表节点集在区块生成周期内的发送失败单播消息数集合,fun表示第n个代表节点在区块生成周期内的发送失败单播消息数。

步骤207、根据所述代表节点在区块生成周期内的发送成功广播消息数、发送失败广播消息数及发送失败单播消息数生成所述代表节点的活跃度数值。

通过f2函数cai=f2(si',fbi,fui)计算出代表节点的活跃度数值,其中,cai表示代表节点i的活跃度数值,s′i表示代表节点i在区块生成周期内的发送成功广播消息数,fbi表示代表节点i在区块生成周期内的发送失败广播消息数,fui表示代表节点i在区块生成周期内的发送失败单播消息数。代表节点的活跃度数值越大,表示该代表节点的区块生成能力越强。

步骤208、根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成所述代表节点的协同性数值。

通过f3函数cri=f3(cai,coi)计算出代表节点的协同性数值,其中,cri表示代表节点i的协同性数值。代表节点的协同性数值越大,表示该代表节点的区块生成能力越弱。

步骤209、生成所述代表节点在区块生成周期内的通信记录报酬值。

所有代表节点在一个区块生成周期内的通信记录报酬值组成代表节点集在一个区块生成周期内的通信记录报酬值集合pt={pt1,pt2,...,ptn},其中pt表示代表节点集在该区块生成周期内的通信记录报酬值集合,ptn表示第n个代表节点在该区块生成周期内的通信记录报酬值。

具体地,代表节点在生成区块的过程中打包通信记录并统计通信记录可以获取的报酬值,代表节点将总的通信记录报酬值写入对应生成的区块中。

步骤210、在分配周期内根据所述通信记录报酬值和所述协同性数值为所述代表节点分配区块生成报酬值,所述分配周期包括多个区块生成周期。

通过公式代表节点的生成报酬值,其中,pti表示分配周期内为代表节点i分配的区块生成报酬值,pti表示代表节点i在第j个区块生成周期内的通信记录报酬值,cri表示代表节点i的协同性数值。分配周期t包括k个区块生成周期t。

本实施例在分配周期内为所有代表节点分配区块生成报酬值,该区块生成报酬值在生成时将代表节点的协同性数值纳入了考量,协同性数值的参与提升了代表节点的报酬分配公平性,本实施例的区块链节点激励优化了代表节点的报酬分配方式。

步骤211、判断所述代表节点的协同性数值是否大于预设阈值,若是,执行步骤212;若否,流程结束。

代表节点的协同性数值大于预设阈值,表示代表节点的区块生成能力较弱,执行步骤212。代表节点的协同性数值小于或等于预设阈值,表示代表节点的区块生成能力较强,该代表节点可继续用于生成区块。

步骤212、更换所述代表节点。

具体地,撤销该代表节点的区块生成权,并对应选择其他节点作为代表节点。本实施例及时更换区块生成能力较弱的代表节点,选择区块链中的其他节点作为新的代表节点,能够保证区块链中的节点充分参与区块的生成。

本实施例提供的区块链节点激励方法,根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成代表节点的协同性数值,判断代表节点的协同性数值是否大于预设阈值,若判断出代表节点的协同性数值大于预设阈值,更换该代表节点。该方法根据代表节点的协同性数值即时更换区块生成能力若的代表节点,能够保证节点充分参与区块的生成,代表节点的报酬分配方式也将协同性数值纳入了考量,能够有效提升代表节点的报酬分配公平性,优化代表节点的报酬分配方式。

实施例三

图3为本发明实施例三提供的一种区块链节点激励装置的结构示意图,如图3所示,该区块链节点激励装置包括:生成模块11、判断模块12和更换模块13。

生成模块11用于根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成所述代表节点的协同性数值。

判断模块12用于判断所述代表节点的协同性数值是否大于预设阈值。

更换模块13用于若判断模块判断出所述代表节点的协同性数值大于预设阈值,更换所述代表节点。

可选地,还包括:获取模块14。

获取模块14用于获取所述代表节点在区块生成周期内的协议输出能力值和实际输出能力值,所述协议输出能力值和所述实际输出能力值均包括算力值、存储值、带宽值、传输时延值和业务处理能力值,获取所述代表节点在区块生成周期内的计划生成区块数和实际生成区块数。

所述生成模块11还用于根据与所述代表节点对应的协议输出能力值和实际输出能力值、所述代表节点在区块生成周期内的计划生成区块数和实际生成区块数生成所述代表节点的向心性数值。

进一步地,所述获取模块14还用于获取所述代表节点在区块生成周期内的发送成功广播消息数、发送失败广播消息数及发送失败单播消息数。

所述生成模块11还用于根据所述代表节点在区块生成周期内的发送成功广播消息数、发送失败广播消息数及发送失败单播消息数生成所述代表节点的活跃度数值。

进一步地,还包括:接收分配模块15和代表节点生成模块16。

接收分配模块15用于接收多个节点的注册请求并为每个节点分配公钥。

代表节点生成模块16用于在多个所述节点中产生多个代表节点,所述代表节点用于生成区块。

进一步地,还包括:报酬生成模块17和分配模块18。

报酬生成模块17用于生成所述代表节点在区块生成周期内的通信记录报酬值。

分配模块18用于在分配周期内根据所述通信记录报酬值和所述协同性数值为所述代表节点分配区块生成报酬值,所述分配周期包括多个区块生成周期。

本实施例三提供的区块链节点激励装置可用于实现上述实施例一或实施例二提供的区块链节点激励方法。

本实施例提供的区块链节点激励装置,生成模块根据预先生成的代表节点的向心性数值和代表节点的活跃度数值生成代表节点的协同性数值,判断模块判断代表节点的协同性数值是否大于预设阈值,若判断模块判断出代表节点的协同性数值大于预设阈值,更换模块更换该代表节点。该装置能够保证节点充分参与区块的生成,并优化代表节点的报酬分配方式。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1