【技术实现步骤摘要】
一种可以对多个提案进行共识的共识方法
[0001]本申请涉及区块链
,尤其涉及一种可以对多个提案进行共识的共识方法。
技术介绍
[0002]当前部分区块链系统,特别是联盟链系统中,普遍采用PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)算法,或者其衍生共识算法,这类传统的PBFT算法在共识过程中,采用固定节点数量、指定leader(区块创建者、区块生成的节点)出块、三阶段(pre
‑
prepare、prepare、commit)共识的共识流程,需要view视图机制对共识状态进行更新维护。
[0003]传统的PBFT共识算法在一个共识周期的共识过程中,必须要求网络中的节点数量必须要事先固定,并需要生成特定的视图进行区块同步状态的确认。它在一个共识周期共识过程中,只能生成一个固定的leader,并由这个leader创建唯一一个提案,然后由网络中的其他节点进行共识。
[0004]传统的PBFT共识算法在同一轮共识周期共识过程中,不允许多个 ...
【技术保护点】
【技术特征摘要】
1.一种可以对多个提案进行共识的共识方法,其特征在于,包括:根据选举规则计算候选提案者集合和候选投票者集合;将同一轮次共识周期划分为多个共识步骤,每个所述共识步骤划分为提案出块阶段、提案节点共识阶段和同一高度合法区块共识阶段;在所述提案出块阶段,按照预设规则选举提案节点,所述提案节点数量为多个;多个所述提案节点生成对应的多个区块,并广播对应的所述区块;在所述提案节点共识阶段,由投票委员会对提案节点进行投票,所述投票内容包含合法校验,把合法的提案节点生成的区块转化为0、1的二次元拜占庭共识问题;在所述同一高度合法区块共识阶段,由所述投票委员会对所述多个区块分别进行投票,生成对应的多个投票结果,并将所述投票结果向网络中的其他节点进行广播;如果一个区块的网络投票结果通过率超过2/3时,所述区块为被成功共识出来的合法区块;监听各个所述共识步骤中的同一高度的合法区块,满足预设结束条件时,当前共识步骤完成,并将该共识步骤中已被投票共识的合法区块放入区块池中,等待统计节点打包;当所述区块池中的合法区块数量满足预设的数量要求时,生成统计区块。2.根据权利要求1所述的一种可以对多个提案进行共识的共识方法,其特征在于,当所述区块池中的合法区块数量满足预设的数量要求时,生成统计区块的步骤,包括:在所述区块池中,当所述多个同一高度的所述合法区块已完成投票且满足投票数量要求时,如果所述多个同一高度的所述合法区块的数量达到预期数量,统计节点打包所述合法区块,生成统计区块。3.根据权利要求1所述的一种可以对多个提案进行共识的共识方法,其特征在于,针对某一共识步骤,如果触发了第一结束条件或第二结束条件之一,则所述共识步骤结束。4.根据权利要求1所述的一种可以对多个提案进行共识的共识方法,其特征在于,选举所述...
【专利技术属性】
技术研发人员:石宁,赖石辉,
申请(专利权)人:南京金宁汇科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。