【技术实现步骤摘要】
一种区块链出块方法、设备及存储介质
[0001]本专利技术属于计算机
,尤其涉及一种区块链出块方法、设备及存储介质。
技术介绍
[0002]现有技术中,区块链产生新区块块时会有多个节点竞争出新区块,由于共识节点都是分散在不同的网络环境,大家收到新区块的时间都会有差别,部分节点会出现自己认可的新区块与其他大部分节点认可的新区块不一致,因此会出现回滚状况。
技术实现思路
[0003]本专利技术提供一种区块链出块方法、设备及存储介质,能够极大的减少回滚或新出块超时的情况。
[0004]为了解决或部分解决上述技术问题,本专利技术采用以下技术方案:
[0005]第一方面,本专利技术提供一种区块链出块方法,所述方法包括:
[0006]随机选取第一数量选票并将所选取的选票对应的节点选定为当届委员会成员;
[0007]区块链节点根据指定区块的第一公开信息以及自身所持有选票的选票id并基于预设规则计算对应候选信息并签名上传;其中,所述第一公开信息包括区块高度和区块哈希,区块链节点自身所持有选票的选票id根据区块链节点的公钥计算得到;
[0008]当届委员会成员节点根据区块链节点的候选信息对候选节点进行排序并生成排序信息,根据所述排序信息选取第二数量的候选人节点,对选取的候选人节点进行候选信息验证,若全部验证通过则依据所述排序信息为所述候选人节点设定对应的顺位,否则,剔除验证失败的区块链节点并根据所述排序信息补充并验证区块链节点,直至验证通过的候选人节点数量到达第二数量;r/>[0009]各个当届委员会成员节点上传对应的候选人节点集合并进行共识,确定第一候选人集合;
[0010]各个当届委员会成员上传第一候选人集合至区块链并记录;
[0011]各个候选人节点在前一个区块生成后的第一时长内生成对应的候选区块并发送至各个当届委员会成员;
[0012]当届委员会成员确认接收第一顺位候选人节点生成的候选区块并验证该候选区块正确时,投票通过所述第一顺位候选人节点;
[0013]当超过第一比例的当届委员会成员投票通过时,确定第一顺位候选人节点为出块节点,否则,对第一候选人集合中下一顺位候选人节点生成的候选区块进行投票,直至确定出块节点;若遍历第一候选人集合中所有节点未确定出块节点则重新选取候选人集合并进行投票,直至确定出块节点;
[0014]将确定出块节点及得票情况进行共识,共识完成后由出块节点进行出块。
[0015]第二方面,提供一种计算机设备,包括一个或多个处理器;
[0016]存储器,用于存储一个或多个程序,
[0017]当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上述第一方面所述的方法。
[0018]第三方面,提供一种存储有计算机程序的存储介质,该程序被处理器执行时实现如上述第一方面所述的方法。
[0019]本专利技术的有益效果在于通过随机选取委员会成员进而选定候选人节点,候选人节点进行预出块,由委员会成员对候选人节点的候选出块进行验证,验证通过的确定为出块节点,保证出块的正确性和一致性,大幅度减少回滚或新出块超时的情况,提升系统整体的TPS。
附图说明
[0020]图1为本专利技术一实施例提供的一种区块链出块方法的流程图;
[0021]图2为本专利技术一实施例提供的一种计算机设备的结构示意图。
具体实施方式
[0022]以下结合具体实施例和说明书附图对本专利技术作出进一步清楚详细的描述说明。本领域普通技术人员在基于这些说明的情况下将能够实现本专利技术。此外,下述说明中涉及到的本专利技术的实施例通常仅是本专利技术一部分的实施例,而不是全部的实施例。因此,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。如无特殊说明,本专利技术实施例所简述的方法均为本领域技术人员所掌握的方法。
[0023]图1为本专利技术一实施例提供的一种区块链出块方法的流程图。
[0024]作为本专利技术的一实施例,提供本实施例一种区块链出块方法,所述方法包括:
[0025]随机选取第一数量选票并将所选取的选票对应的节点选定为当届委员会成员;
[0026]区块链节点根据指定区块的第一公开信息以及自身所持有选票的选票id并基于预设规则计算对应候选信息并签名上传;其中,所述第一公开信息包括区块高度和区块哈希,区块链节点自身所持有选票的选票id根据区块链节点的公钥计算得到;
[0027]当届委员会成员节点根据区块链节点的候选信息对候选节点进行排序并生成排序信息,根据所述排序信息选取第二数量的候选人节点,对选取的候选人节点进行候选信息验证,若全部验证通过则依据所述排序信息为所述候选人节点设定对应的顺位,否则,剔除验证失败的区块链节点并根据所述排序信息补充并验证区块链节点,直至验证通过的候选人节点数量到达第二数量;实现去中心化的委员会成员选取和候选人节点选取,确保去中心化和公平性。
[0028]各个当届委员会成员节点上传对应的候选人节点集合并进行共识,确定第一候选人集合;
[0029]各个当届委员会成员上传第一候选人集合至区块链并记录;
[0030]各个候选人节点在前一个区块生成后的第一时长内生成对应的候选区块并发送至各个当届委员会成员;
[0031]当届委员会成员确认接收第一顺位候选人节点生成的候选区块并验证该候选区
块正确时,投票通过所述第一顺位候选人节点;
[0032]当超过第一比例的当届委员会成员投票通过时,确定第一顺位候选人节点为出块节点,否则,对第一候选人集合中下一顺位候选人节点生成的候选区块进行投票,直至确定出块节点;若遍历第一候选人集合中所有节点未确定出块节点则重新选取候选人集合并进行投票,直至确定出块节点;候选节点进行预出块,在高顺位候选节点无法通过时,对下一顺位的候选节点的验证直接可以进行,保证系统整体的处理速度,并行出块的形式也能够更好的降低区块生成超时的可能性。
[0033]将确定出块节点及得票情况进行共识,共识完成后由出块节点进行出块。
[0034]具体的,本实施例中,选票id由节点公钥进行哈希运算得到,根据指定区块的第一公开信息以及自身所持有选票的选票id并基于预设规则计算对应候选信息的方法可以是节点对指定区块的区块高度和区块哈希还有节点的选票id进行哈希运算得到对应候选信息,假设指定区块高度为block_20,则节点A的候选信息M_A=hash(20+hash(block_20)+hash(KEY_A)),所述排序信息则是对各个区块链节点的候选信息进行大小排序,选择最小的若干位作为候选节点。
[0035]本实施例的有益效果在于通过随机选取委员会成员进而选定候选人节点,候选人节点进行预出块,由委员会成员对候选人节点的候选出块进行验证,验证通过的确定为出块节点,保证出块本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种区块链出块方法,其特征在于,所述方法包括:随机选取第一数量选票并将所选取的选票对应的节点选定为当届委员会成员;区块链节点根据指定区块的第一公开信息以及自身所持有选票的选票id并基于预设规则计算对应候选信息并签名上传;其中,所述第一公开信息包括区块高度和区块哈希,区块链节点自身所持有选票的选票id根据区块链节点的公钥计算得到;当届委员会成员节点根据区块链节点的候选信息对候选节点进行排序并生成排序信息,根据所述排序信息选取第二数量的候选人节点,对选取的候选人节点进行候选信息验证,若全部验证通过则依据所述排序信息为所述候选人节点设定对应的顺位,否则,剔除验证失败的区块链节点并根据所述排序信息补充并验证区块链节点,直至验证通过的候选人节点数量到达第二数量;各个当届委员会成员节点上传对应的候选人节点集合并进行共识,确定第一候选人集合;各个当届委员会成员上传第一候选人集合至区块链并记录;各个候选...
【专利技术属性】
技术研发人员:吴思进,王志文,
申请(专利权)人:杭州复杂美科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。