算力平衡的区块链生成方法
技术领域
本发明涉及区块链技术领域,特别涉及一种算力平衡的区块链生成方法。
背景技术
区块链技术作为一种匿名、去中心化的技术,其本质在于去中心化,然而现实中如比特币,挖矿的算力过于集中,排名前几名的矿厂集中了全部算力的三分之一左右,这种现状违背了区块链技术的本意。
发明内容
有鉴于此,本发明提供一种算力平衡的区块链生成方法。
一种算力平衡的区块链生成方法,包括如下步骤:
S1、配置区块链中区块生成过程中区块生成分配规则、算力识别规则;
S2、通过区块生成分配规则生成区块链中区块总数,并将区块总数按照网络地址段进行分配获得各个网络地址段对应区块池;
S3、接收节点的区块生成请求,确定请求的节点所在的网络地址段,并判断所在网络地址段中对应区块池是否达到上限,在达到上限时跳转到步骤S6,否则跳转到步骤S4;
S4、通过算力识别规则判断请求的节点是否出现算力异常,在出现算力异常时跳转到步骤S6,否则跳转到步骤S5;
S5、根据预设区块生成规则信息生成新区块,并结束;
S6、拒绝节点的区块生成请求。
在本发明所述的算力平衡的区块链生成方法中,
所述步骤S4中通过算力识别规则判断请求的节点是否出现算力异常包括:
S41、向节点发送算力测试程序,并接收节点反馈的算力测试结果;
S42、根据算力测试结果判断请求的节点是否出现算力异常。
在本发明所述的算力平衡的区块链生成方法中,
所述步骤S41之前还包括:
按照网络地址段配置各个网络地址段内节点生成区块链的互斥规则;
根据互斥规则配置对应的节点算力调整规则;
相应地,所述步骤S42包括:
S421、判断请求的节点是否符合互斥规则,在符合互斥规则时,跳转到步骤S5;否则跳转到步骤S422;
S422、根据节点算力调整规则调整请求的节点项的算力影响系数;
S423、通过算力影响系数获得调整后的请求的节点的算力,并判断调整后的请求的节点的算力是否算力异常。
在本发明所述的算力平衡的区块链生成方法中,
所述步骤S2中将区块总数按照网络地址段进行分配获得各个网络地址段对应区块池包括:
将网络地址划分为不同层级的网络地址段;
按照不同层级的网络地址段对区块总数进行划分获取各个层级网络地址段对应区块池。
在本发明所述的算力平衡的区块链生成方法中,
所述按照网络地址段配置各个网络地址段内节点生成区块链的互斥规则包括:
根据不同层级的网络地址段配置节点在不同层级网络地址段的标准请求率;
根据标准请求率生成生成区块链的互斥规则。
在本发明所述的算力平衡的区块链生成方法中,
所述步骤S41包括:
S411、向节点发送算力测试程序,所述算力测试程序包括浮点运算、节点唯一识别码获取程序;
S422、接收节点的反馈的算力测试结果,所述算力测试结果包括浮点运算结果、节点唯一识别码。
在本发明所述的算力平衡的区块链生成方法中,
所述步骤S5包括:
将调整后的请求的节点的算力作为贡献值依据生成新区块。
有益技术效果:本发明的算力平衡的区块链生成方法相对于现有技术,能够实现:通过区块生成分配规则生成区块链中区块总数,并将区块总数按照网络地址段进行分配获得各个网络地址段对应区块池,能够对区块按照区域进行强制分布分配,避免因为挖矿的算力过于集中,排名前几名的矿厂垄断大部分区块的生成。
附图说明
图1是本发明实施例提供的算力平衡的区块链生成方法流程图。
具体实施方式
如图1所示,在本发明实施例中,一种算力平衡的区块链生成方法,包括如下步骤:
S1、配置区块链中区块生成过程中区块生成分配规则、算力识别规则。
现有技术中,没有区块生成的分配规则,往往是通过算力大小来确定生成去块钱的节点的贡献值,虽然贡献值的确定有多种方式,但是没有分配机制;并且单纯的通过算力大小来确定贡献值,使得大型实体企业集中大量高性能计算机或者服务器来获得远远大于普通计算机的算力从而获得更多的区块。本步骤通过生成分配规则、算力识别规则,可以对区分生成进行分配,并且能够在一定程度上限制专业挖矿的矿厂运作,提高了其运作成本。
S2、通过区块生成分配规则生成区块链中区块总数,并将区块总数按照网络地址段进行分配获得各个网络地址段对应区块池;
可选地,将区块总数按照网络地址段进行分配可以1.通过IP地址进行分段划分,也可以2.通过IP地址与MAC地址相结合的方式,或者3.通过骨干网、局域网中IP地址分配规则来确定。
可选地,
所述步骤S2中将区块总数按照网络地址段进行分配获得各个网络地址段对应区块池包括:
将网络地址划分为不同层级的网络地址段;
按照不同层级的网络地址段对区块总数进行划分获取各个层级网络地址段对应区块池。
在本发明优选实施例中,通过将网络地址划分为不同层级的网络地址段,并最终进行划分获取各个层级网络地址段对应区块池,比如分配规则如下:
第一层级网络地址段A、B、C,并限制A、B、C对应区块池中区块的数量上限。
进一步地,在第二层级网络地址段中,将A划分为a1、a2、a3,并限制a1、a2、a3对应区块池中区块的数量上限,并可以接续进行细分。
通过本发明优选实施例,不但需要满足本层级网络地址段中区块池的要求,还需要满足本层级网络地址段以上的层级网络地址段对应区块池的要求,使得区块在生成时对于数量的限制更有层次性。
可选地,
所述按照网络地址段配置各个网络地址段内节点生成区块链的互斥规则包括:
根据不同层级的网络地址段配置节点在不同层级网络地址段的标准请求率;
根据标准请求率生成生成区块链的互斥规则。
在本发明优选实施例中,标准请求率为该层级网络地址段中请求的节点占所有节点的比例值,标准请求率即为生成区块链的互斥规则。
S3、接收节点的区块生成请求,确定请求的节点所在的网络地址段,并判断所在网络地址段中对应区块池是否达到上限,在达到上限时跳转到步骤S6,否则跳转到步骤S4;
S4、通过算力识别规则判断请求的节点是否出现算力异常,在出现算力异常时跳转到步骤S6,否则跳转到步骤S5。
可选地,
所述步骤S4中通过算力识别规则判断请求的节点是否出现算力异常包括:
S41、向节点发送算力测试程序,并接收节点反馈的算力测试结果;
S42、根据算力测试结果判断请求的节点是否出现算力异常。
可选地,
所述步骤S41之前还包括:
按照网络地址段配置各个网络地址段内节点生成区块链的互斥规则;
根据互斥规则配置对应的节点算力调整规则。
可选地,根据互斥规则配置对应的节点算力调整规则包括:
θ=δ1*δ2*...δn,其中θ为节点算力调整函数,δ1为节点在本层级的网络地址段的标准请求率,δ2为节点在上一层级的网络地址段的标准请求率,并以此类推,n为节点所在网络地址段的总层级。
可选地,
所述步骤S41包括:
S411、向节点发送算力测试程序,所述算力测试程序包括浮点运算、节点唯一识别码获取程序;
S422、接收节点的反馈的算力测试结果,所述算力测试结果包括浮点运算结果、节点唯一识别码。
相应地,所述步骤S42包括:
S421、判断请求的节点是否符合互斥规则,在符合互斥规则时,跳转到步骤S5;否则跳转到步骤S422;
S422、根据节点算力调整规则调整请求的节点项的算力影响系数;
可选地,θ的值即为请求的节点项的算力影响系数。
S423、通过算力影响系数获得调整后的请求的节点的算力,并判断调整后的请求的节点的算力是否算力异常。
算力影响系数与请求的节点的算力的乘积作为调整后的请求的节点的算力。
可选地,设置算力异常阈值,将调整后的请求的节点的算力与算力异常阈值进行对比,如果大于算力异常阈值,则确认调整后的请求的节点的算力异常。
S5、根据预设区块生成规则信息生成新区块,并结束;
可选地,
所述步骤S5包括:
将调整后的请求的节点的算力作为贡献值依据生成新区块。
S6、拒绝节点的区块生成请求。
有益技术效果:本发明的算力平衡的区块链生成方法相对于现有技术,能够实现:通过区块生成分配规则生成区块链中区块总数,并将区块总数按照网络地址段进行分配获得各个网络地址段对应区块池,能够对区块按照区域进行强制分布分配,避免因为挖矿的算力过于集中,排名前几名的矿厂垄断大部分区块的生成。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。