一种稳定可靠的区块链拜占庭共识流程设计方法技术

技术编号:22817168 阅读:39 留言:0更新日期:2019-12-14 13:10
本发明专利技术涉及区块链底层技术,是一种稳定可靠的区块链拜占庭共识流程设计方法,其特征包含以下几点:(1)系统在等待收集其他节点发来的数据时,包括但不限于交易数据,区块数据,投票数据等,设置超时时间,超时后进入超时处理流程;(2)超时处理根据已收集到的数据区分容错范围内处理和容错范围外的处理;(3)共识流程内的通信数据携带数据对应的高度信息,数据接收时会对高度进行筛选,不符合高度要求的数据不进入共识,不同的通信数据拥有不同的缓存池,使用高度作为key进行存储;(4)系统内任意异常都经过了妥善处理,不会影响共识流程。本发明专利技术设计了一种区块链共识流程优化方法,使得原本复杂高效的区块链共识系统稳定可靠。

A stable and reliable Byzantine consensus process design method for blockchain

【技术实现步骤摘要】
一种稳定可靠的区块链拜占庭共识流程设计方法
本专利技术涉及区块链底层共识流程的优化设计,特别是一种稳定可靠的区块链拜占庭共识流程设计方法。
技术介绍
区块链技术不断被应用推动发展,从几十分钟建一个块的比特币到现在1秒一个块的新型区块链,应用对区块链的要求越来越高。在这么苛刻环境下区块链的共识系统显得极不稳定和可靠。现有的基于共识算法实现的区块链系统,其共识步骤包含以下几步:(1)每个节点创建交易映射图并广播;(2)每个节点收集齐所有节点的交易映射图后,通过运算取到公共交易交集;(3)建块节点创建区块并广播;(4)非建块节点收到块后进行验证并投票,同时将投票结果广播出去;(5)每个节点收集齐所有节点转发的投票信息,根据拜占庭共识算法计算得出最终投票结果(成功或者失败)。以上步骤虽然实现了分布式区块链系统的共识流程,但稳定性较差,实际的网络环境可能会出现各种各样的问题,网络延迟,网络断线都可能会使得区块链的共识流程异常中止。区块链各个节点是完全独立运行的进程,在共识过程中都是相互等待结果的串行流程计算,如果某个节点出现假死或者恶意假死,那么整个区块链就会陷入瘫痪状态。例如,在第二步骤中,某两个节点间网络通信不畅,导致这两个节点的交易映射图的数量均缺少一个,则系统卡在等待数据的阶段,不能往下运行。所有需要检查通信数据数量的步骤都存在此问题。另外,理想情况下的多个区块链节点应该工作在共识流程同一高度的同一步骤,并且同步运行,但由于分布式的区块链系统并没有中心化的流程控制,在实际运行中,各个节点可能工作在不同高度,或者工作在同一高度的不同步骤,因此要使用一定的手段来确保共识流程中的通信消息没有发生混乱,且各个节点的整体步调大致相同。本专利技术提供了一些区块链底层共识流程的优化设计,用于解决区块链系统中可能存在的问题,并使系统更加稳定可靠,本专利技术同样适用于PBFT、CBFT等共识算法,本文明仅以PBFT为例进行说明。
技术实现思路
本专利技术针对现有区块链共识系统存在的问题,提供了一些可靠性的解决方案。本专利技术提出一种稳定可靠的区块链拜占庭共识流程设计方法,其特征包含以下几点:(1)系统在等待收集其他节点发来的数据,包括但不限于交易数据,区块数据,投票数据等时,设置超时时间,超时后进入超时处理流程;(2)超时处理根据已收集到的数据区分容错范围内处理和容错范围外的处理;(3)共识流程内的通信数据携带数据对应的高度信息,数据接收时会对高度进行筛选,不符合高度要求的数据不进入共识;(4)系统内任意异常都经过了妥善处理,不会影响共识流程。进一步的,对于特征(1),具体为:(1)超时机制是指在每个步骤中规定了最长运行时间,如果正常时间内完成处理那么程序是正常的,如果当前步骤的运行时间达到了最长运行时间而处理尚未完成,那么当前步骤的处理终止,进入超时处理流程;(2)所有涉及到节点间通信,需要等待返回信息的处理都应使用超时机制;(3)如果进入了超时处理流程,不管超时处理流程如何设置,处理完成后立即执行到下一步骤。进一步的,对于特征(2),具体为:(1)超时处理根据已收集到的数据区分容错范围内处理和容错范围外的处理;(2)容错范围内的处理逻辑应该与未超时的处理逻辑相符;(3)容错范围外的处理不应使共识流程停止。系统在一个轮次共识完成后,不管是超时结束还是正常结束,节点都会立即准备进入下一轮共识,这样循环下去,具体为:(1)当前节点等待区块链节点的交易信息时,设置阈值超时机制,不管超时与否本节点都会进入下一步计算;(2)当前节点在等待建块节点的区块信息时,设置阈值超时机制,不管超时与否本节点都会进入下一步计算;(3)当前节点在等待其他节点投票信息时,设置阈值超时机制,不管超时与否本节点都会进入下一步计算;(4)当前节点走完这一轮共识后,不管是超时完成还是正常完成,结果成功还是失败,当前节点都会进入到下一轮共识计算。进一步的,对于特征(3),具体为(1)共识流程内的通信数据携带数据对应的高度信息,数据接收时会对高度进行筛选;(2)当前节点可以接受当前高度以上的交易信息,当前节点可以接受当前高度以上的交易信息,使用高度作为key存入对应的缓存池;(3)每轮次共识时从交易缓存中取出当前高度的交易信息。进一步的,对于特征(4),具体为:各个节点在任何情况下都能保证系统正常运行,包括但不限于以下情况:(1)节点网络出现故障又恢复后,节点正常运行,正常共识,(2)节点进程被意外停掉后又重新启动,节点能正常运行,正常参与共识,(3)节点内部出现任何异常,都有相应异常处理流程,不影响节点的正常运行,(4)把系统中可能会出现的全部异常进行分类:系统级别异常和业务级别异常。系统级别异常将节点强制退出区块链生态系统;对业务级别异常,系统采用适当的方式处理,不影响系统运行。本专利技术通过使用超时机制、高度标记的缓存池及异常分类处理等方法,优化了区块链的共识流程,使系统更加稳定可靠。附图说明:图1是经典的区块链共识流程图,TXPool是系统级别的交易缓存池,从start到处理投票结果是一次共识流程。其中流程中的TXCache是这次共识中交易TX缓存。图2是交易缓存设计图,TXPool是系统级别的交易缓存池,存储着当前高度以上的交易数据,TXCache是共识级别的交易缓存池,生命周期和共识是一样的,共识start时候就存在,一次共识结束后也跟着消失。具体实施方式:在以下的叙述中,为了使读者更好的理解本申请而提出了许多技术细节,但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也是本申请各权利要求所要求保护的技术方案。为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的实施方式作进一步地详细描述。如图1所示本专利技术是针对区块链共识系统的稳定可靠而专利技术的技术,设计到区块链数据结构、算法设计等领域,具体实现步骤如下:假设节点数量为m,当前高度为h,每轮共识最多处理交易数为N,当前轮次扫描到交易数量为n。从start起开始一轮共识。节点从交易池TXPool中取出N个交易,如果交易池中有交易但数量不足N,则最多等待t1时间,超过t1时间交易数仍然不足N则退出等待。将取出的n个交易(0<n<=N)标记上高度h放入TXCache缓存池,且将这n个交易从TXPool中删除。将n个交易转换为交易映射图,携带当前高度h信息一起广播至其他各个节点。发出交易映射图后当前节点等待接收其他节点发来的映射图。接收映射图时检查高度,只有高度大于等于h的数据才进行接收,接收数据使用高度作为key放入映射图缓存池中。节点从映射图缓存池中获取key为本文档来自技高网
...

【技术保护点】
1.一种稳定可靠的区块链拜占庭共识流程设计方法,其特征包含以下几点:/n(1)系统在等待收集其他节点发来的数据时,包括但不限于交易数据,区块数据,投票数据等,设置超时时间,超时后进入超时处理流程;/n(2)超时处理根据已收集到的数据区分容错范围内处理和容错范围外的处理;/n(3)共识流程内的通信数据携带数据对应的高度信息,数据接收时会对高度进行筛选,不符合高度要求的数据不进入共识,不同的通信数据拥有不同的缓存池,使用高度作为key进行存储;/n(4)系统内任意异常都经过了妥善处理,不会影响共识流程。/n

【技术特征摘要】
1.一种稳定可靠的区块链拜占庭共识流程设计方法,其特征包含以下几点:
(1)系统在等待收集其他节点发来的数据时,包括但不限于交易数据,区块数据,投票数据等,设置超时时间,超时后进入超时处理流程;
(2)超时处理根据已收集到的数据区分容错范围内处理和容错范围外的处理;
(3)共识流程内的通信数据携带数据对应的高度信息,数据接收时会对高度进行筛选,不符合高度要求的数据不进入共识,不同的通信数据拥有不同的缓存池,使用高度作为key进行存储;
(4)系统内任意异常都经过了妥善处理,不会影响共识流程。


2.根据权利要求1所述的一种稳定可靠的区块链拜占庭共识流程设计方法,其特征在于:系统在共识的每个步骤中,设置超时机制具体如下:
(1)超时机制是指在每个步骤中规定了最长运行时间,如果正常时间内完成处理那么程序是正常的,如果当前步骤的运行时间达到了最长运行时间而处理尚未完成,那么当前步骤的处理终止,进入超时处理流程;
(2)所有涉及到节点间通信,需要等待返回信息的处理都应使用超时机制;
(3)如果进入了超时处理流程,不管超时处理流程如何设置,处理完成后立即执行到下一步骤。


3.根据权利要求1所述的一种稳定可靠的区块链拜占庭共识流程设计方法,其特征在于:
(1)超时处理根据已收集到的数据区分容错范围内处理和容错范围外的处理;
(2)容错范围内的处理逻辑应该与未超时的处理逻辑相符;
(3)容错范围外的处理不应使共识流程停止。


4.根据权利要求1所述的一种稳定可靠的区块链拜占庭共识流程设计方法,其特征在于:系统在一个轮次共识完成...

【专利技术属性】
技术研发人员:蔡维德
申请(专利权)人:北京天德科技有限公司
类型:发明
国别省市:北京;11

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

1