一种区块链共识方法、系统、电子设备、存储介质技术方案

技术编号:24035675 阅读:33 留言:0更新日期:2020-05-07 01:50
本申请公开了一种区块链共识方法、系统、电子设备、存储介质。该方法包括:当前提议节点收集交易池中的交易打包成交易区块,并向当前验证节点发送交易区块;当前验证节点对交易区块进行至少两轮验证投票;若所有轮验证投票均通过,则交易区块共识成功。通过上述方式,能够实现对交易区块的共识。

A blockchain consensus method, system, electronic equipment and storage medium

【技术实现步骤摘要】
一种区块链共识方法、系统、电子设备、存储介质
本申请涉及区块链领域,特别涉及一种区块链共识方法、系统、电子设备、存储介质。
技术介绍
区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。共识机制作为区块链的核心技术之一,能够保证上链数据始终分布一致性。然而当前主流的如工作量证明(PoW)、权益证明(PoS)、股份授权证明(DPoS)等共识机制还不够完善。
技术实现思路
本申请主要解决的技术问题是提供一种区块链共识方法、系统、电子设备、存储介质,能够解决共识机制还不够完善的问题,提高交易区块的共识结果的准确性。为解决上述技术问题,本申请第一方面提供了一种区块链共识方法,该方法包括:当前提议节点收集交易池中的交易打包成交易区块,并向当前验证节点发送交易区块;当前验证节点对交易区块进行至少两轮验证投票,每轮验证投票中,每个当前验证节点对交易区块进行验证得到验证结果,向其他当前验证节点发送与验证结果对应的投票消息并接收来自于其他当前验证节点的投票消息,投票消息包括肯定投票消息或否定投票消息,每轮验证投票通过的条件为所有投票消息中肯定投票消息的占比大于预设阈值;若所有轮验证投票均通过,则交易区块共识成功。为解决上述技术问题,本申请第二方面提供了一种区块链共识方法,该方法包括:当前验证节点接收来自于当前提议节点的交易区块,交易区块是当前提议节点收集交易池中的交易打包而成的;当前验证节点对交易区块进行至少两轮验证投票,每轮验证投票中,当前验证节点对交易区块进行验证得到验证结果,向其他当前验证节点发送与验证结果对应的投票消息并接收来自于其他当前验证节点的投票消息,投票消息包括肯定投票消息或否定投票消息,每轮验证投票通过的条件为所有投票消息中肯定投票消息的占比大于预设阈值;若所有轮验证投票均通过,则交易区块共识成功。为解决上述技术问题,本申请第三方面提供了一种区块链共识系统,该系统包括:当前提议节点用于收集交易池中的交易打包成交易区块,并向当前验证节点发送交易区块;当前验证节点用于对交易区块进行至少两轮验证投票,每轮验证投票中,每个当前验证节点对交易区块进行验证得到验证结果,向其他当前验证节点发送与验证结果对应的投票消息并接收来自于其他当前验证节点的投票消息,投票消息包括肯定投票消息或否定投票消息,每轮验证投票通过的条件为所有投票消息中肯定投票消息的占比大于预设阈值;若所有轮验证投票均通过,则交易区块共识成功。为解决上述技术问题,本申请第四方面提供了一种电子设备,该电子设备包括处理器以及与处理器耦接的存储器,该存储器存储有用于在处理器运行后实现本申请第一方面和第二方面提供的方法的程序指令。为解决上述技术问题,本申请第五方面提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,计算机程序被执行时实现本申请第一方面和第二方面提供的方法。上述方案,由当前提议节点发起对交易区块的共识,在共识过程中,当前验证节点对交易区块进行多轮验证,并在每轮验证得到验证结果后,根据验证结果向其他当前验证节点发送投票消息,接收来自其他当前验证节点的投票消息,当所有轮当前验证节点接收到的投票消息中肯定投票消息占比超过预设阈值时,交易区块才共识成功,从而能够提高交易区块共识结果的准确性;整个共识过程并非依赖单一节点完成,而是多个节点协同完成,能够提高共识过程的效率。附图说明图1为本申请第一实施例提供的区块链共识方法的流程图;图2为本申请第二实施例提供的区块链共识方法的流程图;图3为本申请第三实施例提供的区块链共识方法的流程图;图4为本申请第四实施例提供的区块链共识方法的流程图;图5为本申请第五实施例提供的区块链共识方法的流程图;图6为本申请第六实施例提供的区块链交易方法的流程图;图7为本申请第七实施例提供的区块链共识方法的流程图;图8为本申请第八实施例提供的区块链共识方法的流程图;图9为本申请第九实施例提供的区块链共识方法的流程图;图10为本申请第十实施例提供的区块链共识方法的流程图;图11为本申请第十一实施例提供的区块链共识方法的流程图;图12为本申请第十二实施例提供的区块链共识方法的流程图;图13为本申请第十三实施例提供的区块链共识方法的流程图;图14为本申请第十四实施例提供的区块链共识方法的流程图;图15为本申请第十五实施例提供的区块链共识系统的结构示意图;图16为本申请第十六实施例提供的区块链共识系统的结构示意图;图17为本申请第十七实施例提供的一种电子设备的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。需注意的是,对于下述方法实施例,若有实质上相同的结果,本申请的方法并不以图示的流程顺序为限。请参阅图1,图1为本申请第一实施例提供的区块链共识方法流程图。如图1所示,本实施例提供的区块链共识方法可以包括以下步骤:S101:当前提议节点收集交易池中的交易打包成交易区块,并向当前验证节点发送交易区块。当前提议节点可以将交易打包成交易区块后发给当前验证节点,当前验证节点可以在接收到提议节点发来的交易区块后发起对交易区块的共识。当前提议节点可以是从多个核心节点中选择出来的发起本轮共识的节点,当前验证节点可以为剩余核心节点中的部分或全部。可选地,核心节点被选中成为当前提议节点的概率与其投票权重正相关,即核心节点的投票权重越大,则被选中成为当前提议节点的概率越大。可以根据非阻塞轮询选择算法从多个核心节点组成的集合中选出当前提议节点。例如,当前提议节点可以为所有核心节点中投票权重最高的一个。在多个核心节点中选择一个作为当前提议节点后,剩余的部分或全部核心节点可以本文档来自技高网...

【技术保护点】
1.一种区块链共识方法,其特征在于,包括:/n当前提议节点收集交易池中的交易打包成交易区块,并向当前验证节点发送所述交易区块;/n所述当前验证节点对所述交易区块进行至少两轮验证投票,每轮所述验证投票中,每个所述当前验证节点对所述交易区块进行验证得到验证结果,向其他所述当前验证节点发送与所述验证结果对应的投票消息并接收来自于其他所述当前验证节点的投票消息,所述投票消息包括肯定投票消息或否定投票消息,每轮验证投票通过的条件为所有所述投票消息中所述肯定投票消息的占比大于预设阈值;/n若所有轮所述验证投票均通过,则所述交易区块共识成功。/n

【技术特征摘要】
1.一种区块链共识方法,其特征在于,包括:
当前提议节点收集交易池中的交易打包成交易区块,并向当前验证节点发送所述交易区块;
所述当前验证节点对所述交易区块进行至少两轮验证投票,每轮所述验证投票中,每个所述当前验证节点对所述交易区块进行验证得到验证结果,向其他所述当前验证节点发送与所述验证结果对应的投票消息并接收来自于其他所述当前验证节点的投票消息,所述投票消息包括肯定投票消息或否定投票消息,每轮验证投票通过的条件为所有所述投票消息中所述肯定投票消息的占比大于预设阈值;
若所有轮所述验证投票均通过,则所述交易区块共识成功。


2.根据权利要求1所述的方法,其特征在于,
所述每个所述当前验证节点对所述交易区块进行验证得到验证结果包括:
若所述当前验证节点在第一时段内收到所述交易区块,则读取所述交易区块并对其中的每笔交易进行验证;
若所有所述交易通过所述验证,则所述验证结果为通过,对应的所述投票消息为肯定投票消息;若至少一笔所述交易未通过所述验证,则所述验证结果为未通过,对应的所述投票消息为否定投票消息。


3.根据权利要求1所述的方法,其特征在于,
所述每个所述当前验证节点对所述交易区块进行验证得到验证结果,向其他所述当前验证节点发送与所述验证结果对应的投票消息并接收来自于其他所述当前验证节点的投票消息之后进一步包括:
统计节点统计每个所述当前验证节点收到的所述肯定投票消息的数量;
若所有所述肯定投票消息的数量与所有所述投票消息的数量的比值大于所述预设阈值,则本轮验证投票通过。


4.根据权利要求1所述的方法,其特征在于,
所述每个所述当前验证节点对所述交易区块进行验证得到验证结果,向其他所述当前验证节点发送与所述验证结果对应的投票消息并接收来自于其他所述当前验证节点的投票消息之后进一步包括:
每个所述当前验证节点统计收到所述肯定投票消息的数量,若所述肯定投票消息的数量与其他所述当前验证节点理论上收到所述投票消息的数量的比值大于所述预设阈值,则向统计节点发送通过消息;
所述统计节点统计收到的所述通过消息的数量,若所述通过消息的数量与所述当前验证节点的数量相等,则本轮验证投票通过。


5.根据权利要求3或4所述的方法,其特征在于,所述本轮验证投票通过之后进一步包括:
所述统计节点通知部分或全部所述当前验证节点进行下一轮验证投票;或
所述统计节点通知所述当前提议节点,所述当前提议节点通知部分或全部所述当前验证节点进行下一轮验证投票。


6.根据权利要求5所述的方法,其特征在于,
所述统计节点为一所述当前验证节点、所述当前提议节点或独立于所述当前验证节点和所述当前提议节点的其他节点。


7.根据权利要求5所述的方法,其特征在于,
进行第i+1轮验证投票的当前验证节点为第i轮验证投票中发送所述肯定投票消息的当前验证节点。


8.根据权利要求1所述的方法,其特征在于,
不同轮的验证投票中所述当前验证节点对所述交易区块的验证内容不同。


9.根据权利要求1所述的方法,其特征在于,
所述交易区块共识成功之后进一步包括:
记账节点将所述交易记录打包为新区块添加到区块链上。


10.根据权利要求9所述的方法,其特征在于,
所述记账节点将所述交易记录打包为新区块添加到区块链上之前进一步包括:
排序节点接收来自于所述当前提议节点或所述当前验证节点的共识成功的所述交易区块;
所述排序节点将指定时段内收到的共识成功的所述交易区块按照时间进行排序,并将排序后的所述交易区块发送给所述记账节点。


11.根据权利要求10所述的方法,其特征在于,
所述记账节点将所述交易执行记录打包为新区块添加到区块链上之后进一步包括:
所述排序节点检测到本地存储的区块链的高度小于所述记账节点存储的区块链的高度时,所述排序节点从所述记账节点获取所述新区块并添加到本地存储的区块链账本中。


12.根据权利要求1所述的方法,其特征在于,
所述当前提议节点收集交易池中的交易打包成交易区块之前进一步包括:
排序节点接收来自于交易发起方的交易;
所述排序节点将所述交易放入所述交易池中。


13.根据权利要求12所述的方法,其特征在于,所述排序节点将所述交易放入所述交易池中之前进一步包括:
所述排...

【专利技术属性】
技术研发人员:程晗蕾王超宋斌向智宇黄昭慈鲁静
申请(专利权)人:远光软件股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1