CN110661656B - 一种区块链快速共识方法及装置 - Google Patents
一种区块链快速共识方法及装置 Download PDFInfo
- Publication number
- CN110661656B CN110661656B CN201910894864.5A CN201910894864A CN110661656B CN 110661656 B CN110661656 B CN 110661656B CN 201910894864 A CN201910894864 A CN 201910894864A CN 110661656 B CN110661656 B CN 110661656B
- Authority
- CN
- China
- Prior art keywords
- proposal
- node
- information
- nodes
- feedback information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请公开了一种区块链快速共识方法及装置,方法包括:控制提案节点向预置区块链系统中的所有可信节点广播提案信息;若提案节点在第一预置时间内接收到所有可信节点返回的响应于提案信息的第一反馈信息,则在第一反馈信息不存在反对票时,共识成功;若提案节点在第一预置时间内未接收到所有可信节点返回的响应于提案信息的第一反馈信息,则将提案信息广播至所有普通节点;若提案节点在第二预置时间内接收到所有普通节点返回的响应于提案信息的第二反馈信息,则在第一反馈信息和第二反馈信息的赞成票数量之和大于或等于第一预置数量时,共识成功。本申请解决了PBFT拜占庭算法耗时长,导致共识较慢,效率较低的技术问题。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链快速共识方法及装置。
背景技术
区块链是一种用于登记和发行数字化资产、产权凭证、积分等信息的去中心化分布式账本系统,它需要对差不多时间内或者是一个时间窗口内的事物先后顺序达成共识,实现这个共识的方法即为共识机制,共识机制是区块链系统根据自身业务特点,在拜占庭将军问题网络中传输和同步数据的分布式一致性算法,一般包括数据广播验证、新区块产生方法、区块广播验证、分叉处理等内容。
现有的共识机制中,PBFT实用拜占庭容错算法通过请求、序号分配、交互、序号确认以及响应的方式实现共识,该方法协议中节点两两的交互请求、响应之间的时间消耗太长,导致共识较慢,效率较低。
发明内容
本申请提供了一种区块链快速共识方法及装置,用于解决PBFT拜占庭算法中节点两两交互的请求、响应之间的时间消耗太长,导致共识较慢,效率较低的技术问题。
有鉴于此,本申请第一方面提供了一种区块链快速共识方法,包括:
控制提案节点向预置区块链系统中的所有可信节点广播提案信息,所述提案信息对应于所述预置区块链系统向所述提案节点发送的提案数据请求;
若所述提案节点在第一预置时间内接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则在所述第一反馈信息不存在反对票时,共识成功;
若所述提案节点在所述第一预置时间内未接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则将所述提案信息广播至所有普通节点;
若所述提案节点在第二预置时间内接收到所述所有普通节点返回的响应于所述提案信息的第二反馈信息,则在所述第一反馈信息和所述第二反馈信息的赞成票数量之和大于或等于第一预置数量时,共识成功。
优选地,所述若所述提案节点在第一预置时间内接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则在所述第一反馈信息不存在反对票时,共识成功,还包括:
若所述第一反馈信息存在反对票,则将所述提案信息广播至所述所有普通节点;
若所述提案节点在第三预置时间内接收到所述所有普通节点返回的响应于所述提案信息的第三反馈信息,则在所述第一反馈信息和所述第三反馈信息的赞成票数量之和大于或等于第二预置数量时,共识成功。
优选地,所述控制提案节点向预置区块链系统中的所有可信节点广播提案信息,之前还包括:
将所述预置区块链系统中发送提案数据请求的目标节点确定为提案节点;
统计所述区块链系统中所有节点历史信息;
根据所述历史信息计算每个节点的可信度积分;
对所有节点的所述可信度积分降序排序;
将所述降序排序后的前2/3的节点作为可信节点,后1/3的节点作为普通节点。
优选地,所述若所述提案节点在第一预置时间内接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则在所述第一反馈信息不存在反对票时,共识成功,之前还包括:
在所述提案节点将所述提案信息向所述可信节点广播时,触发广播计时操作。
优选地,所述控制提案节点向预置区块链系统中的所有可信节点广播提案信息,之前还包括:
控制管理节点对每一个所述提案节点发出的所述提案信息的真实性进行验证,验证成功则广播提案信息,其中,所述管理节点从所述可信节点中选取,且周期性更换。
优选地,所述第一预置时间、所述第二预置时间与所述第三预置时间均相等。
本申请第二方面提供了一种区块链快速共识装置,包括:
第一广播单元,用于控制提案节点向预置区块链系统中的所有可信节点广播提案信息,所述提案信息对应于所述预置区块链系统向所述提案节点发送的提案数据请求;
第一反馈单元,用于若所述提案节点在第一预置时间内接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则在所述第一反馈信息不存在反对票时,共识成功;
第二广播单元,用于若所述提案节点在所述第一预置时间内未接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则将所述提案信息广播至所有普通节点;
第二反馈单元,用于若所述提案节点在第二预置时间内接收到所述所有普通节点返回的响应于所述提案信息的第二反馈信息,则在所述第一反馈信息和所述第二反馈信息的赞成票数量之和大于或等于预置数量时,共识成功。
优选地,还包括:
第三广播单元,用于若所述第一反馈信息存在反对票,则将所述提案信息广播至所述所有普通节点;
第三反馈单元,用于若所述提案节点在所述第三预置时间内接收到所述所有普通节点返回的响应于所述提案信息的第三反馈信息,则在所述第一反馈信息和所述第三反馈信息的赞成票数量之和大于或等于第二预置数量时,共识成功。
优选地,还包括:
节点划分单元,用于将所述预置区块链系统中发送提案数据请求的目标节点确定为提案节点;
统计所述区块链系统中所有节点历史信息;
根据所述历史信息计算每个节点的可信度积分;
对所有节点的所述可信度积分降序排序;
将所述降序排序后的前2/3的节点作为可信节点,后1/3的节点作为普通节点。
优选地,还包括:
管理单元,用于控制管理节点对每一个所述提案节点发出的所述提案信息的真实性进行验证,验证成功则进行提案,其中,所述管理节点从可信节点中选取,且周期性更换;
计时单元,用于在所述提案节点将所述提案信息向所述可信节点广播时,触发广播计时操作。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请中,提供了一种区块链快速共识方法,包括:控制提案节点向预置区块链系统中的所有可信节点广播提案信息;若提案节点在第一预置时间内接收到所有可信节点返回的响应于提案信息的第一反馈信息,则在第一反馈信息不存在反对票时,共识成功;若提案节点在所述第一预置时间内未接收到所有可信节点返回的响应于提案信息的第一反馈信息,则将提案信息广播至所有普通节点;若提案节点在第二预置时间内接收到所有普通节点返回的响应于提案信息的第二反馈信息,则在第一反馈信息和第二反馈信息的赞成票数量之和大于或等于第一预置数量时,共识成功。本申请提供的区块链快速共识方法中,将提案信息发送至区块链系统中的可信节点进行投票,如果投票通过,此提案信息不需要再广播到其他的节点;避免了所有节点的信息交互导致共识的速度较慢的问题,且对提案节点接收反馈信息的时间进行限定,长时间没有作出投票动作的节点也不会影响共识速度;即使第一步的可信节点共识失败,需要进行普通节点共识,总体的执行步骤也远比四步PBFT拜占庭算法的两两交互的方式执行步骤少的多,因此本申请提供的区块链快速共识方法能够解决PBFT拜占庭算法中节点两两交互的请求、响应之间的时间消耗太长,导致共识较慢,效率较低的技术问题。
附图说明
图1为本申请提供的一种区块链快速共识方法的实施例一的流程示意图;
图2为本申请提供的一种区块链快速共识方法的实施例二的流程示意图;
图3为本申请提供的一种区块链快速共识方法的实施例二的第一共识过程示意图;
图4为本申请提供的一种区块链快速共识方法的实施例二的第二共识过程示意图;
图5为本申请提供的一种区块链快速共识方法的实施例三的流程示意图;
图6为本申请提供的一种区块链快速共识装置的实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,请参阅图1,本申请提供的一种区块链快速共识方法的实施例一,包括:
步骤101、控制提案节点向预置区块链系统中的所有可信节点广播提案信息。
其中,提案信息对应于预置区块链系统向提案节点发送的提案数据请求。
步骤102、若提案节点在第一预置时间内接收到所有可信节点返回的响应于提案信息的第一反馈信息,则在第一反馈信息不存在反对票时,共识成功。
步骤103、若提案节点在第一预置时间内未接收到所有可信节点返回的响应于提案信息的第一反馈信息,则将提案信息广播至所有普通节点。
步骤104、若提案节点在第二预置时间内接收到所有普通节点返回的响应于提案信息的第二反馈信息,则在第一反馈信息和第二反馈信息的赞成票数量之和大于或等于第一预置数量时,共识成功。
需要说明的是,在提案节点接收反馈的响应信息时,设定一个第一预置时间可以有效地提高共识等待的速度,在较快的时间内得到第一反馈信息,若判定第一反馈信息不存在反对票,那么提案信息只经过一次广播和接收,比起FPBT拜占庭算法的两两交互,较大程度的减少了操作步骤和响应时间;在提案节点没有接收到所有的可信节点返回的反馈信息时,即存在某些可信节点没有作出反馈操作,提案节点将提案信息发送给普通节点再进行投票,同样,在提案节点接收反馈的响应信息时,设定一个第二预置时间是制约普通节点的反馈时间,加快共识速度,将这部分的响应结果作为第二反馈信息,最后对两个反馈信息中的赞成票数量进行统计分析,以投票数量作为研究标准,对于提案信息的总的赞成票达到第一预置数量的时候,就可以达成共识,这里的第一预置数量一般是指占节点数总量的一定比例的数量,这个预置数量可以根据实际情况进行预设,不局限于某一个数值。
需要说明的是,若提案节点在第二预置时间内没有接收到所有普通节点返回的响应于提案信息的第二反馈信息,仍然是统计第一反馈信息和第二反馈信息的赞成票数量之和,判断这个和是不是大于或者等于预先设定的数量,如果大于,共识成功,由此操作方法相同,在此不再赘述。
需要说明的是,没有响应于提案信息进行反馈操作的节点统一将其反馈结果标记为反对票,标记的反对票也是返回的结果,不影响系统对反馈信息中的赞成票的统计和分析,也不影响最终的比例运算。
本申请提供的区块链快速共识方法中,将提案信息发送至区块链系统中的可信节点进行投票,如果投票通过,此提案信息不需要再广播到其他的节点;避免了所有节点的信息交互导致共识的速度较慢的问题,且对提案节点的接收节点的反馈信息的时间进行限定,长时间没有作出投票动作的节点也不会影响共识速度;即使第一步的可信节点共识失败,需要进行普通节点共识,总体的执行步骤也远比四步PBFT拜占庭算法的两两交互的方式执行步骤少的多,因此本申请提供的区块链快速共识方法能够解决PBFT拜占庭算法中节点两两交互的请求、响应之间的时间消耗太长,导致共识较慢,效率较低的技术问题。
为了便于理解,请参阅图2,本申请实施例中提供了一种区块链快速共识方法的实施例二,包括:
步骤201、确定预置区块链系统中的提案节点、可信节点和普通节点。
需要说明的是,确定预置区块链系统中的提案节点、可信节点和普通节点具体包括以下步骤:首先将预置区块链系统发送提案数据请求的目标节点确定为提案节点;然后统计所有区块链系统中所有节点历史信息,并根据这些历史信息计算出每个节点的可信度积分;其次,将所有节点的可信度积分降序排序;最后,将降序排序后的前2/3的节点作为可信节点,后1/3的节点为普通节点。
需要说明的是预置区块链系统中的任何一个节点都可以进行提案,并成为提案节点;所有节点历史信息包括每个节点的历史共识信息、请求发起以及信息验证等,根据节点的历史信息加权计算可以得到每个节点可信度积分;根据可信度积分的高低,进行由高到低的排序,取前面2/3的具有较高可信度积分的节点作为可信任的节点,即可信节点,后面1/3的节点则为普通节点;需要注意的是此处2/3这一比例的选择视具体情况而定,这个比例的改变并不影响区块链共识方法的快速执行过程。
步骤202、控制提案节点向预置区块链系统中的所有可信节点广播提案信息。
其中,提案信息对应于预置区块链系统向提案节点发送的提案数据请求。
步骤203、若提案节点在第一预置时间内接收到所有可信节点返回的响应于提案信息的第一反馈信息,则在第一反馈信息不存在反对票时,共识成功。
请参阅图3,图3为第一共识过程中的提案节点接收可信节点的反馈信息,其中提案节点为N0,可信节点为N1、N2、N3、N4;普通节点为N5、N6。可以理解到可信节点为所有节点的一部分,未接收到广播提案信息的节点即为普通节点,实线箭头表示广播方向,虚线箭头表示接收共识结果方向。
需要说明的是,在提案节点将提案信息广播至可信节点的时候,会触发广播计时操作,使得提案节点在第一预置时间内接收到所有可信节点返回的响应于提案信息的第一反馈信息,在第一反馈信息中不包括反对票的时候,那么说明系统中2/3的可信节点对提案信息表示赞成,说明共识成功。
需要说明的是,在第一反馈信息中包括反对票的时候,还可将提案信息发送到普通节点继续进行投票操作;如果提案节点在第三预置时间内接收到所有普通节点返回的响应于提案信息的第三反馈信息,则在第一反馈信息和第三反馈信息的赞成票数量之和大于或等于第二预置数量时,共识成功;也就是说,如果存在可信节点投了反对票,那么就需要普通节点继续进行投票,如果在时间限定范围内,可信节点的赞成票和普通节点的赞成票能够达到第二预置数量也可以共识成功,本实施例中的第二预置数量为总节点数量的2/3。
步骤204、若提案节点在第一预置时间内未接收到所有可信节点返回的响应于提案信息的第一反馈信息,则将提案信息广播至所有普通节点。
需要说明的是,当提案节点在预置时间内没有接收到可信节点的反馈信息的时候,系统会自动将这类可信节点的反馈信息标记成反对票,然后将提案信息广播至所有的普通节点继续投票;所以不论可信节点的反馈信息中存在反对票还是可信节点未作出反馈,都需要普通节点继续进行投票操作。
步骤205、若提案节点在第二预置时间内接收到所有普通节点返回的响应于提案信息的第二反馈信息,则在第一反馈信息和第二反馈信息的赞成票数量之和大于或等于第一预置数量时,共识成功。
请参阅图4,为第二共识过程中的提案节点在接收可信节点的反馈信息后继续向普通节点广播提案信息,其中提案节点为N0,可信节点为N1、N2、N3、N4;普通节点为N5、N6,实线箭头表示广播方向,虚线箭头表示接收共识结果方向。
需要说明的是,普通节点返回的第二反馈信息中的赞成票数量需要与第一反馈信息中的赞成票数量进行求和,然后判定这个和是否大于或者等于第一预置数量,如果是就共识成功;这个第一预置数量在本实施例中与步骤203中的第二预置数量相同,均为总节点数量的2/3。
需要说明的是,在提案节点在第二预置时间内没有接收到所有普通节点返回的响应于提案信息的第二反馈信息时,即存在普通节点没有针对提案信息作出反馈,这个时候将这类普通节点的反馈信息标记成反对票,然后统计判断第一反馈信息和第二反馈信息的赞成票数量之和是否大于或等于总节点数量的2/3,如果是,共识成功;标记的反对票也属于返回的信息,并不影响赞成票数量的统计,也不影响赞成比例的计算。
需要说明的是,本实施例中的第一预置时间、第二预置时间以及第三预置时间设定为相同到大小,提案节点将提案信息向所述可信节点广播时,会同时触发广播计时操作,当计时时长超过预置时间时,则将未作反馈的节点的反馈信息标记为反对票。可以根据节点可信度积分的不同设定不同的预置时间,并不影响方案的执行,在此不作限定。
需要说明的是,在本实施例中所有的节点均可进行提案,成为提案节点,并发起投票,进行共识判定,但是实际的普通节点中存在恶意节点,当恶意节点发起提案时,其提案信息的真实度存在疑义,因此,可以在节点进行提案请求的时候,加入管理节点对作出提案请求的节点进行验证,只有通过验证的节点才可以进行提案请求。
为了便于理解,请参与图5,本申请中还提供了一种区块链快速共识方法的实施例三,包括:
步骤301、确定预置区块链系统中的提案节点、可信节点和普通节点。
需要说明的是,确定预置区块链系统中的提案节点、可信节点和普通节点具体包括以下步骤:首先将预置区块链系统发送提案数据请求的目标节点确定为提案节点;然后统计所有区块链系统中所有节点历史信息,并根据这些历史信息计算出每个节点的可信度积分;其次,将所有节点的可信度积分降序排序;最后,将降序排序后的前2/3的节点作为可信节点,后1/3的节点为普通节点。
需要说明的是预置区块链系统中的任何一个节点都可以进行提案,并成为提案节点;所有节点历史信息包括每个节点的历史共识信息、请求发起以及信息验证等,根据节点的历史信息加权计算可以得到每个节点可信度积分;根据可信度积分的高低,进行由高到低的排序,取前面2/3的具有较高可信度积分的节点作为可信任的节点,即可信节点,剩余的节点则为普通节点;需要注意的是此处2/3这一比例的选择视具体情况而定,这个比例的改变并不影响区块链共识方法的快速执行过程。
步骤302、确定出一个管理节点,并通过管理节点验证提案节点的提案信息的真实性。
所有的节点都可以进行提案请求,但是每一个提案节点都必须将提案信息先发送至管理节点进行验证,主要是验证所提案信息的真实性,只有验证成功,相应的提案节点才能将提案信息广播至可信节点进行投票。这样的验证管理可以有效地减少普通节点中存在恶意节点对虚假提案信息发起共识,保障了共识事件的有效性,提高了共识结果的可信度,同时也能节约区块链系统中的资源。
需要说明的是,管理节点是从可信节点中选取的,但是也不能保证其可信度永久不变,所以为了避免垄断情况的发生,需要周期性的更换管理节点,从而提高系统的稳定性以及可靠性。
步骤303、通过管理节点验证的提案节点向预置区块链系统中的所有可信节点广播提案信息。
其中,提案信息对应于预置区块链系统向提案节点发送的提案数据请求。
步骤304、若提案节点在第一预置时间内接收到所有可信节点返回的响应于提案信息的第一反馈信息,则在第一反馈信息不存在反对票时,共识成功。
需要说明的是,在提案节点将提案信息广播至可信节点的时候,会触发广播计时操作,使得提案节点在第一预置时间内接收到所有可信节点返回的响应于提案信息的第一反馈信息,在第一反馈信息中不包括反对票的时候,那么说明系统中2/3的可信节点对提案信息表示赞成,说明共识成功。
需要说明的是,在第一反馈信息中包括反对票的时候,还可将提案信息发送到普通节点继续进行投票操作;如果提案节点在第三预置时间内接收到所有普通节点返回的响应于提案信息的第三反馈信息,则在第一反馈信息和第三反馈信息的赞成票数量之和大于或等于第二预置数量时,共识成功;也就是说,如果存在可信节点投了反对票,那么就需要普通节点继续进行投票,如果在时间限定范围内,可信节点的赞成票和普通节点的赞成票能够达到第二预置数量也可以共识成功,本实施例中的第二预置数量为总节点数量的2/3。
步骤305、若提案节点在第一预置时间内未接收到所有可信节点返回的响应于提案信息的第一反馈信息,则将提案信息广播至所有普通节点。
需要说明的是,当提案节点在预置时间内没有接收到可信节点的反馈信息的时候,系统会自动将这类可信节点的反馈信息标记成反对票,然后将提案信息广播至所有的普通节点继续投票;所以不论可信节点的反馈信息中存在反对票还是可信节点未作出反馈,都需要普通节点继续进行投票操作。
步骤306、若提案节点在第二预置时间内接收到所有普通节点返回的响应于提案信息的第二反馈信息,则在第一反馈信息和第二反馈信息的赞成票数量之和大于或等于第一预置数量时,共识成功。
需要说明的是,普通节点返回的第二反馈信息中的赞成票数量需要与第一反馈信息中的赞成票数量进行求和,然后判定这个和是否大于或者等于第一预置数量,如果是就共识成功;这个第一预置数量在本实施例中与步骤203中的第二预置数量相同,均为总节点数量的2/3。
需要说明的是,在提案节点在第二预置时间内没有接收到所有普通节点返回的响应于提案信息的第二反馈信息时,即存在普通节点没有针对提案信息作出反馈,这个时候将这类普通节点的反馈信息标记成反对票,然后统计判断第一反馈信息和第二反馈信息的赞成票数量之和是否大于或等于总节点数量的2/3,如果是,共识成功;标记的反对票也属于返回的信息,并不影响赞成票数量的统计,也不影响赞成比例的计算。
需要说明的是,本实施例中的第一预置时间、第二预置时间以及第三预置时间设定为相同到大小,也可以根据节点信任度的不同设定不同的预置时间,并不影响方案的执行,在此不作限定。
为了便于理解,请参与图6,本申请中还提供了一种区块链快速共识装置的实施例,包括:
节点划分单元401,用于将预置区块链系统发送提案数据请求的目标节点确定为提案节点;统计区块链系统中所有节点历史信息;根据历史信息计算每个节点的可信度积分;对所有节点的可信度积分降序排序;将降序排序后的前2/3的节点作为可信节点,剩余节点为普通节点。
管理单元402,用于控制管理节点对每一个提案节点发出的提案信息的真实性进行验证,验证成功则进行提案,管理节点从可信节点中选取,且周期性更换。
第一广播单元403,用于控制提案节点向预置区块链系统中的所有可信节点广播提案信息,提案信息对应于预置区块链系统向提案节点发送的提案数据请求;
第一反馈单元404,用于若提案节点在第一预置时间内接收到所有可信节点返回的响应于提案信息的第一反馈信息,则在第一反馈信息不存在反对票时,共识成功;
第二广播单元405,用于若提案节点在第一预置时间内未接收到所有可信节点返回的响应于提案信息的第一反馈信息,则将提案信息广播至所有普通节点;
第二反馈单元406,用于若提案节点在第二预置时间内接收到所有普通节点返回的响应于提案信息的第二反馈信息,则在第一反馈信息和第二反馈信息的赞成票数量之和大于或等于预置数量时,共识成功。
第三广播单元407,用于若在第一反馈信息存在反对票,则将提案信息广播至所有普通节点;
第三反馈单元408,若提案节点在第三预置时间内接收到所有普通节点返回的响应于提案信息的第三反馈信息,则在第一反馈信息和第三反馈信息的赞成票数量之和大于或等于第二预置数量时,共识成功。
计时单元409,用于在提案节点将提案信息广播至可信节点时,触发广播计时操作,提案节点在第一预置时间内接收到所有可信节点返回的响应于提案信息的第一反馈信息。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以通过一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种区块链快速共识方法,其特征在于,包括:
控制提案节点向预置区块链系统中的所有可信节点广播提案信息,所述提案信息对应于所述预置区块链系统向所述提案节点发送的提案数据请求;
若所述提案节点在第一预置时间内接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则在所述第一反馈信息不存在反对票时,共识成功;
若所述提案节点在所述第一预置时间内未接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则将所述提案信息广播至所有普通节点;
若所述提案节点在第二预置时间内接收到所述所有普通节点返回的响应于所述提案信息的第二反馈信息,则在所述第一反馈信息和所述第二反馈信息的赞成票数量之和大于或等于第一预置数量时,共识成功。
2.根据权利要求1所述的区块链快速共识方法,其特征在于,所述若所述提案节点在第一预置时间内接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则在所述第一反馈信息不存在反对票时,共识成功,还包括:
若所述第一反馈信息存在反对票,则将所述提案信息广播至所述所有普通节点;
若所述提案节点在第三预置时间内接收到所述所有普通节点返回的响应于所述提案信息的第三反馈信息,则在所述第一反馈信息和所述第三反馈信息的赞成票数量之和大于或等于第二预置数量时,共识成功。
3.根据权利要求1所述的区块链快速共识方法,其特征在于,所述控制提案节点向预置区块链系统中的所有可信节点广播提案信息之前,还包括:
将所述预置区块链系统中发送提案数据请求的目标节点确定为提案节点;
统计所述区块链系统中所有节点历史信息;
根据所述历史信息计算每个节点的可信度积分;
对所有节点的所述可信度积分降序排序;
将所述降序排序后的前2/3的节点作为可信节点,后1/3的节点作为普通节点。
4.根据权利要求1所述的区块链快速共识方法,其特征在于,所述若所述提案节点在第一预置时间内接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则在所述第一反馈信息不存在反对票时,共识成功,之前还包括:
在所述提案节点将所述提案信息向所述可信节点广播时,触发广播计时操作。
5.根据权利要求1所述的区块链快速共识方法,其特征在于,所述控制提案节点向预置区块链系统中的所有可信节点广播提案信息之前,还包括:
控制管理节点对每一个所述提案节点发出的所述提案信息的真实性进行验证,验证成功则广播提案信息,其中,所述管理节点从所述可信节点中选取,且周期性更换。
6.根据权利要求2所述的区块链快速共识方法,其特征在于,所述第一预置时间、所述第二预置时间与所述第三预置时间均相等。
7.一种区块链快速共识装置,其特征在于,包括:
第一广播单元,用于控制提案节点向预置区块链系统中的所有可信节点广播提案信息,所述提案信息对应于所述预置区块链系统向所述提案节点发送的提案数据请求;
第一反馈单元,用于若所述提案节点在第一预置时间内接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则在所述第一反馈信息不存在反对票时,共识成功;
第二广播单元,用于若所述提案节点在所述第一预置时间内未接收到所述所有可信节点返回的响应于所述提案信息的第一反馈信息,则将所述提案信息广播至所有普通节点;
第二反馈单元,用于若所述提案节点在第二预置时间内接收到所述所有普通节点返回的响应于所述提案信息的第二反馈信息,则在所述第一反馈信息和所述第二反馈信息的赞成票数量之和大于或等于预置数量时,共识成功。
8.根据权利要求7中所述的区块链快速共识装置,其特征在于,还包括:
第三广播单元,用于若所述第一反馈信息存在反对票,则将所述提案信息广播至所述所有普通节点;
第三反馈单元,用于若所述提案节点在第三预置时间内接收到所述所有普通节点返回的响应于所述提案信息的第三反馈信息,则在所述第一反馈信息和所述第三反馈信息的赞成票数量之和大于或等于第二预置数量时,共识成功。
9.根据权利要求7中所述的区块链快速共识装置,其特征在于,还包括:
节点划分单元,用于将所述预置区块链系统中发送提案数据请求的目标节点确定为提案节点;
统计所述区块链系统中所有节点历史信息;
根据所述历史信息计算每个节点的可信度积分;
对所有节点的所述可信度积分降序排序;
将所述降序排序后的前2/3的节点作为可信节点,后1/3的节点作为普通节点。
10.根据权利要求7中所述的区块链快速共识装置,其特征在于,还包括:
管理单元,用于控制管理节点对每一个所述提案节点发出的所述提案信息的真实性进行验证,验证成功则进行提案,其中,所述管理节点从可信节点中选取,且周期性更换;
计时单元,用于在所述提案节点将所述提案信息向所述可信节点广播时,触发广播计时操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894864.5A CN110661656B (zh) | 2019-09-20 | 2019-09-20 | 一种区块链快速共识方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894864.5A CN110661656B (zh) | 2019-09-20 | 2019-09-20 | 一种区块链快速共识方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110661656A CN110661656A (zh) | 2020-01-07 |
CN110661656B true CN110661656B (zh) | 2022-03-04 |
Family
ID=69037528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910894864.5A Active CN110661656B (zh) | 2019-09-20 | 2019-09-20 | 一种区块链快速共识方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110661656B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414420B (zh) * | 2020-03-17 | 2023-05-26 | 重庆邮电大学 | 一种改进的pbft区块链共识方法 |
CN111683118B (zh) * | 2020-05-16 | 2023-07-11 | 中信银行股份有限公司 | 基于区块链的共识方法、装置、主节点设备及从节点设备 |
CN111930840B (zh) * | 2020-08-06 | 2024-09-13 | 平安科技(深圳)有限公司 | 基于Paxos算法的共识机制优化方法、系统以及区块链网络 |
CN112202875B (zh) * | 2020-09-28 | 2024-07-02 | 北京八分量信息科技有限公司 | 基于区块链节点权重进行安全检测的方法、装置及相关产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167661A (zh) * | 2018-09-27 | 2019-01-08 | 福建福链科技有限公司 | 一种应用于联盟链的拜占庭容错共识方法及终端 |
WO2019072263A2 (en) * | 2018-11-07 | 2019-04-18 | Alibaba Group Holding Limited | FACILITATION OF BLOCK CHAIN CONSENSUS AND NODE SYNCHRONIZATION FOR PRACTICAL TOLERANCE TO ARBITRARY FAILURES |
CN109785130A (zh) * | 2018-12-17 | 2019-05-21 | 金蝶软件(中国)有限公司 | 区块链随机共识方法、装置、计算机设备和存储介质 |
-
2019
- 2019-09-20 CN CN201910894864.5A patent/CN110661656B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167661A (zh) * | 2018-09-27 | 2019-01-08 | 福建福链科技有限公司 | 一种应用于联盟链的拜占庭容错共识方法及终端 |
WO2019072263A2 (en) * | 2018-11-07 | 2019-04-18 | Alibaba Group Holding Limited | FACILITATION OF BLOCK CHAIN CONSENSUS AND NODE SYNCHRONIZATION FOR PRACTICAL TOLERANCE TO ARBITRARY FAILURES |
CN109785130A (zh) * | 2018-12-17 | 2019-05-21 | 金蝶软件(中国)有限公司 | 区块链随机共识方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110661656A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110661656B (zh) | 一种区块链快速共识方法及装置 | |
CN110800005B (zh) | 分片式、许可式、分布式分类账 | |
CN107220130B (zh) | 一种在区块链的节点处实现的信息共识方法、装置及系统 | |
CN109102287B (zh) | 区块链记账方法、装置、设备及存储介质 | |
CN111343208B (zh) | 基于区块链的数据检测方法、装置及计算机可读存储介质 | |
CN107493340B (zh) | 区块链网络中的数据分发校验方法、装置及系统 | |
CN109802941A (zh) | 一种登录验证方法、装置、存储介质和服务器 | |
Yuan et al. | Efficient Byzantine consensus mechanism based on reputation in IoT blockchain | |
CN113326516A (zh) | 区块链共识方法、区块链系统及计算机设备 | |
WO2021233109A1 (zh) | 基于区块链的消息处理方法、装置、设备以及存储介质 | |
CN113014635A (zh) | 区块链系统的节点类型划分方法、装置及区块链系统 | |
WO2022267715A1 (zh) | 一种预言机节点筛选方法、装置、存储介质及电子装置 | |
CN110717761B (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN109921897B (zh) | 工作量证明计算的触发方法、装置、计算设备及存储介质 | |
CN111865595A (zh) | 一种区块链的共识方法及装置 | |
CN112927414A (zh) | 基于联盟区块链的业务公识系统及方法 | |
CN109472591A (zh) | 基于区块链的哈希值预测方法及其装置、电子设备 | |
CN112261145B (zh) | 一种新区块链生成方法及装置 | |
CN114157482A (zh) | 一种业务访问控制方法、装置、控制设备及存储介质 | |
CN115392912B (zh) | 随机数生成方法、系统、设备及存储介质 | |
Noreen et al. | Advanced DAG-Based Ranking (ADR) Protocol for Blockchain Scalability. | |
CN117527266B (zh) | 异步网络共识方法、装置、电子设备及可读存储介质 | |
US20180197362A1 (en) | Method for generating winning numbers and apparatus | |
CN116074310B (zh) | 基于环签名的改进的委托权益证明的区块链共识方法 | |
CN113301118B (zh) | 区块链共识节点的确定方法、共识方法、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |