故障监听方法、装置、设备及计算机可读存储介质与流程

文档序号:17989179发布日期:2019-06-22 00:38阅读:134来源:国知局
故障监听方法、装置、设备及计算机可读存储介质与流程

本发明涉及区块链领域,尤其涉及一种故障监听方法、装置、设备及计算机可读存储介质。



背景技术:

区块链(blockchain)是比特币的一个重要概念,本质上是一个去中心化的数据库,同时作为比特币的底层技术,记载所有的交易记录。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链在网络上是公开的,可以在每一个离线比特币钱包数据中查询。比特币钱包的功能依赖于与区块链的确认,一次有效检验称为一次确认。通常一次交易要获得数个确认才能进行。

由于每一个区块的块头都包含了前一个区块的交易信息压缩值,这就使得从创世块(第一个区块)到当前区块连接在一起形成了一条长链。由于如果不知道前一区块的“交易缩影”值,就没有办法生成当前区块,因此每个区块必定按时间顺序跟随在前一个区块之后。这种所有区块包含前一个区块引用的结构让现存的区块集合形成了一条数据长链。从第一个区块开始,到最新产生的区块为止,区块链上存储了系统全部的历史数据。区块链为我们提供了数据库内每一笔数据的查找功能。区块链上的每一条交易数据,都可以通过“区块链”的结构追本溯源,一笔一笔进行验证。区块+链=时间戳,这是区块链数据库的最大创新点。区块链数据库让全网的记录者在每一个区块中都盖上一个时间戳来记账,表示这个信息是这个时间写入的,形成了一个不可篡改、不可伪造的数据库。

但是,采用上述方式进行新区块生成时,往往无法对区块链中的主节点是否发生故障进行判定,而若当前主节点发生故障,则会影响整个区块链网络中的区块生成。



技术实现要素:

本发明提供一种故障监听方法、装置、设备及计算机可读存储介质,用于解决现有的区块链在新区块生成的过程中,无法对主节点是否发生故障进行判断的技术问题。

本发明的第一个方面是提供一种故障监听方法,包括:

根据新区块的添加状况判断当前主节点是否发生故障;

若是,则向时间戳服务器发送视图更换请求,所述视图更换请求中包括所述主节点的故障信息;

接收时间戳服务器反馈的包括时间戳的视图更换请求,将所述包括时间戳的视图更换请求广播至区块链中,所述包括时间戳的视图更换请求是所述时间戳服务器验证所述视图更换请求合法后反馈的;

确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;

若是,则根据预设的判断规则判断区块链对所述包括时间戳的视图更换请求是否达成共识;

若是,则将预设的备用节点设置为当前的主节点。

本发明的另一个方面是提供一种故障监听装置,包括:

第一判断模块,用于根据新区块的添加状况判断当前主节点是否发生故障;

发送模块,用于若是,则向时间戳服务器发送视图更换请求,所述视图更换请求中包括所述主节点的故障信息;

接收模块,用于接收时间戳服务器反馈的包括时间戳的视图更换请求,将所述包括时间戳的视图更换请求广播至区块链中,所述包括时间戳的视图更换请求是所述时间戳服务器验证所述视图更换请求合法后反馈的;

确定模块,用于确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;

第二判断模块,用于若是,则根据预设的判断规则判断区块链对所述包括时间戳的视图更换请求是否达成共识;

设置模块,用于若是,则将预设的备用节点设置为当前的主节点。

本发明的又一个方面是提供一种故障监听设备,包括:存储器,处理器;

存储器;用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为由所述处理器执行如上述第一方面所述的故障监听方法。

本发明的又一个方面是提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述第一方面所述的故障监听方法。

本发明提供的故障监听方法、装置、设备及计算机可读存储介质,通过根据新区块的添加状况判断当前主节点是否发生故障;若是,则向时间戳服务器发送视图更换请求,视图更换请求中包括主节点的故障信息;接收时间戳服务器反馈的包括时间戳的视图更换请求,将包括时间戳的视图更换请求广播至区块链中,包括时间戳的视图更换请求是时间戳服务器验证视图更换请求合法后反馈的;确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;若是,则根据预设的判断规则判断区块链对包括时间戳的视图更换请求是否达成共识;若是,则将预设的备用节点设置为当前的主节点,能够及时确定主节点的状态并在发生故障的情况下及时进行视图的切换。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明基于的网络架构示意图;

图2为本发明实施例一提供的故障监听方法的流程示意图;

图3为本发明实施例三提供的故障监听方法的流程示意图;

图4为本发明实施例三提供的故障监听方法的流程示意图;

图5为本发明实施例四提供的故障监听装置的结构示意图;

图6为本发明实施例五提供的故障监听设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例所获得的所有其他实施例,都属于本发明保护的范围。

由于每一个区块的块头都包含了前一个区块的交易信息压缩值,这就使得从创世块(第一个区块)到当前区块连接在一起形成了一条长链。由于如果不知道前一区块的“交易缩影”值,就没有办法生成当前区块,因此每个区块必定按时间顺序跟随在前一个区块之后。这种所有区块包含前一个区块引用的结构让现存的区块集合形成了一条数据长链。从第一个区块开始,到最新产生的区块为止,区块链上存储了系统全部的历史数据。区块链为我们提供了数据库内每一笔数据的查找功能。区块链上的每一条交易数据,都可以通过“区块链”的结构追本溯源,一笔一笔进行验证。区块+链=时间戳,这是区块链数据库的最大创新点。区块链数据库让全网的记录者在每一个区块中都盖上一个时间戳来记账,表示这个信息是这个时间写入的,形成了一个不可篡改、不可伪造的数据库。但是,采用上述方式进行新区块生成时,往往无法对区块链中的主节点是否发生故障进行判定,而若当前主节点发生故障,则会影响整个区块链网络中的区块生成。为了解决上述技术问题,本发明提供了一种故障监听方法、装置、设备及计算机可读存储介质。

需要说明的是,本申请提供故障监听方法、装置、设备及计算机可读存储介质可运用在任意一种区块链节点的监听的场景中。

图1为本发明基于的网络架构示意图,如图1所示,本发明基于的网络架构至少包括:至少一个节点1以及时间戳服务器2。其中,各节点1分别于时间戳服务器2通信连接,从而二者能够进行信息交互。

图2为本发明实施例一提供的故障监听方法的流程示意图,如图1所示,所述方法包括:

步骤201、根据新区块的添加状况判断当前主节点是否发生故障;

步骤202、若是,则向时间戳服务器发送视图更换请求,所述视图更换请求中包括所述主节点的故障信息;

步骤203、接收时间戳服务器反馈的包括时间戳的视图更换请求,将所述包括时间戳的视图更换请求广播至区块链中,所述包括时间戳的视图更换请求是所述时间戳服务器验证所述视图更换请求合法后反馈的;

步骤204、确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;

步骤205、若是,则根据预设的判断规则判断区块链对所述包括时间戳的视图更换请求是否达成共识;

步骤206、若是,则将预设的备用节点设置为当前的主节点。

本实施例的执行主体为区块链中的任意一个节点,在区块链中,若当前主节点发生故障,则会影响整个区块链网络中的区块生成,因此,为了提高区块链的出块速度,需要对主节点是够发生故障进行监听。具体地,可以理解的是,若当前新区快的添加状况出现异常,则可以判定当前主节点可能出现故障,故可以根据新区快的添加状况判断当前主节点是否发生故障。相应地,若主节点发生故障,则需要进行视图的切换。因此,可以向时间戳服务器发送视图切换请求,其中,该视图切换请求可以为当前节点通过自身的私钥进行加密后发送的,该视图切换请求中还包括主节点的故障信息,包括故障原因,故障节点标识等。时间戳服务器接收到该视图切换请求之后,首先可以通过该节点对应的公钥对该视图切换请求进行验证,并在验证其合法时,对该视图切换请求打上时间戳,并将包括时间戳的视图切换请求反馈至该节点。相应地,该节点可以接收到该包含时间戳的视图切换请求之后,可以将该包含时间戳的视图切换请求广播至区块链中。可以理解的是,若时间戳服务器根据该节点对应的公钥对该视图切换请求进行验证后,确定该视图切换请求不合法,则可以不对该视图切换请求进行处理。若区块链中的任意一个节点在区块链网络中接收到包括时间戳的视图更换请求的数量超过预设的阈值时,则可以根据预设的判断规则判断当前区块链是否对该视图切换请求是否达成共识。可以理解的是,若对该视图切换请求达成共识,则可以将预设的备用节点设置为当前的主节点,从而当前的主节点能够快速地对当前的新区快进行添加,提高了区块生成的效率。

本实施例提供的故障监听方法,通过根据新区块的添加状况判断当前主节点是否发生故障;若是,则向时间戳服务器发送视图更换请求,视图更换请求中包括主节点的故障信息;接收时间戳服务器反馈的包括时间戳的视图更换请求,将包括时间戳的视图更换请求广播至区块链中,包括时间戳的视图更换请求是时间戳服务器验证视图更换请求合法后反馈的;确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;若是,则根据预设的判断规则判断区块链对包括时间戳的视图更换请求是否达成共识;若是,则将预设的备用节点设置为当前的主节点,当主节点发生错误时,系统会在一定阈值时间内完成视图的切换。整个视图切换过程根据区块链中最优区块时间戳采用超时触发,在区块链可容忍的延迟的范围,完成主节点的切换,不需要节点间相互通信,减少了通信消耗

图3为本发明实施例三提供的故障监听方法的流程示意图,在上述任一实施例的基础上,所述方法包括:

步骤301、在满足添加新区块的情况下,判断所述主节点是否超过预设的时间阈值未执行区块的添加,若是,则判断当前主节点发生故障;

步骤302、若是,则向时间戳服务器发送视图更换请求,所述视图更换请求中包括所述主节点的故障信息;

步骤303、接收时间戳服务器反馈的包括时间戳的视图更换请求,将所述包括时间戳的视图更换请求广播至区块链中,所述包括时间戳的视图更换请求是所述时间戳服务器验证所述视图更换请求合法后反馈的;

步骤304、确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;

步骤305、若是,则根据预设的判断规则判断区块链对所述包括时间戳的视图更换请求是否达成共识;

步骤306、若是,则将预设的备用节点设置为当前的主节点。

在本实施例中,若当前主节点发生故障,则会影响整个区块链网络中的区块生成,因此,为了提高区块链的出块速度,需要对主节点是够发生故障进行监听。可以理解的是,若当前新区快的添加状况出现异常,则可以判定当前主节点可能出现故障,故可以根据新区快的添加状况判断当前主节点是否发生故障。具体地,在满足添加新区块的情况下,可以对当前新区块的产生状况进行监听,判断该主节点是否超过预设的时间阈值未执行新区块的添加操作,若是,则表征该主节点发生故障。其中,该满足添加新区块的条件可以是区块体交易数量达到预设阈值等。

本实施例提供的故障监听方法,通过在满足添加新区块的情况下,判断所述主节点是否超过预设的时间阈值未执行区块的添加,若是,则判断当前主节点发生故障,从而能够精准地确定当前主节点是否发生故障,进而能够保障区块链的出块速度及效率。

图4为本发明实施例三提供的故障监听方法的流程示意图,在上述任一实施例的基础上,如图4所示,所述方法还包括:

步骤401、根据新区块的添加状况判断当前主节点是否发生故障;

步骤402、若是,则向时间戳服务器发送视图更换请求,所述视图更换请求中包括所述主节点的故障信息;

步骤403、接收时间戳服务器反馈的包括时间戳的视图更换请求,将所述包括时间戳的视图更换请求广播至区块链中,所述包括时间戳的视图更换请求是所述时间戳服务器验证所述视图更换请求合法后反馈的;

步骤404、确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;

步骤405、若是,则根据预设的判断规则判断区块链对所述包括时间戳的视图更换请求是否达成共识;

步骤406、若是,则将预设的备用节点设置为当前的主节点;

步骤407、若超过预设的时间阈值未生成新的视图,则返回执行根据新区块的添加状况判断当前主节点是否发生故障的步骤,直至新的视图生成。

在本实施例中,检测到主节点发生故障,且区块链对视图切换请求达成共识后,可以实现对视图的切换,为了保证视图正常切换,需要对视图切换的过程进行监控,具体地,可以确定视图生成的时间,若检测到超过预设的时间阈值为生成新的视图,则可以返回执行根据新区块的添加状况判断当前主节点是否发生故障的步骤,直至新的视图生成。

本实施例提供的故障监听方法,通过若超过预设的时间阈值未生成新的视图,则返回执行根据新区块的添加状况判断当前主节点是否发生故障的步骤,直至新的视图生成,从而能够在检测到主节点发生故障后,保证视图的正常切换。

进一步地,在上述任一实施例的基础上,所述方法包括:

根据新区块的添加状况判断当前主节点是否发生故障;

若是,则向时间戳服务器发送视图更换请求,所述视图更换请求中包括所述主节点的故障信息;

接收时间戳服务器反馈的包括时间戳的视图更换请求,将所述包括时间戳的视图更换请求广播至区块链中,所述包括时间戳的视图更换请求是所述时间戳服务器验证所述视图更换请求合法后反馈的;

确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;

若是,则确定当前全部所述包括时间戳的视图更换请求中数量超过预设的比例的第一视图更换请求的时间戳;

确定所述第一视图更换请求对应的时间戳与所述当前全部所述包括时间戳的视图更换请求的时间戳的方差之间的差值绝对值是否小于预设的第一差值阈值;

和/或,

确定各节点发送的包括时间戳的视图更换请求中的无新区块添加的起始时间与所述主节点无新区块添加的起始时间之间的差值绝对值是否小于预设的第二差值阈值;

和/或,

确定各节点发送的包括时间戳的视图更换请求中的无新区块添加的终止与所述主节点无新区块添加的终止时间之间的差值绝对值是否小于预设的第三差值阈值;

若是,则将预设的备用节点设置为当前的主节点。

在本实施例中,若区块链中的任意一个节点在区块链网络中接收到包括时间戳的视图更换请求的数量超过预设的阈值时,则可以根据预设的判断规则判断当前区块链是否对该视图切换请求是否达成共识。具体地,可以通过以下三种方式实现对是否达成共识的判断:确定所述第一视图更换请求对应的时间戳与所述当前全部所述包括时间戳的视图更换请求的时间戳的方差之间的差值绝对值是否小于预设的第一差值阈值;确定各节点发送的包括时间戳的视图更换请求中的无新区块添加的起始时间与所述主节点无新区块添加的起始时间之间的差值绝对值是否小于预设的第二差值阈值;确定各节点发送的包括时间戳的视图更换请求中的无新区块添加的终止与所述主节点无新区块添加的终止时间之间的差值绝对值是否小于预设的第三差值阈值。需要说明的是,上述三种实施方式可以单独实施,也可以结合实施,本发明在此不做限制。

本实施例提供的故障监听方法,通过确定所述第一视图更换请求对应的时间戳与所述当前全部所述包括时间戳的视图更换请求的时间戳的方差之间的差值绝对值是否小于预设的第一差值阈值;确定各节点发送的包括时间戳的视图更换请求中的无新区块添加的起始时间与所述主节点无新区块添加的起始时间之间的差值绝对值是否小于预设的第二差值阈值;确定各节点发送的包括时间戳的视图更换请求中的无新区块添加的终止与所述主节点无新区块添加的终止时间之间的差值绝对值是否小于预设的第三差值阈值,从而能够判断区块链中是否就视图切换请求达成共识,进而能够实现视图的切换。

进一步地,在上述任一实施例的基础上,所述方法还包括:

根据新区块的添加状况判断当前主节点是否发生故障;

若是,则向时间戳服务器发送视图更换请求,所述视图更换请求中包括所述主节点的故障信息;

接收时间戳服务器反馈的包括时间戳的视图更换请求,将所述包括时间戳的视图更换请求广播至区块链中,所述包括时间戳的视图更换请求是所述时间戳服务器验证所述视图更换请求合法后反馈的;

确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;

若是,则根据预设的判断规则判断区块链对所述包括时间戳的视图更换请求是否达成共识;

若是,则将预设的备用节点设置为当前的主节点;

删除预存的原主节点的证书列表。

在本实施例中,检测到主节点发生故障,且区块链对视图切换请求达成共识,并实现备用节点的切换之后,可以将预存的原主节点的证书列表进行删除。

本实施例提供的故障监听方法,通过将预设的备用节点设置为当前的主节点之后,删除预存的原主节点的证书列表,从而能够在实现主节点以及视图的切换之后,减小占用内存。

图5为本发明实施例四提供的故障监听装置的结构示意图,如图5所示,所述装置包括:

第一判断模块51,用于根据新区块的添加状况判断当前主节点是否发生故障;

发送模块52,用于若是,则向时间戳服务器发送视图更换请求,所述视图更换请求中包括所述主节点的故障信息;

接收模块53,用于接收时间戳服务器反馈的包括时间戳的视图更换请求,将所述包括时间戳的视图更换请求广播至区块链中,所述包括时间戳的视图更换请求是所述时间戳服务器验证所述视图更换请求合法后反馈的;

确定模块54,用于确定接收到包括时间戳的视图更换请求的数量是否超过预设的第一阈值;

第二判断模块55,用于若是,则根据预设的判断规则判断区块链对所述包括时间戳的视图更换请求是否达成共识;

设置模块56,用于若是,则将预设的备用节点设置为当前的主节点。

进一步地,在上述任一实施例的基础上,所述判断模块包括:

故障判定单元,用于在满足添加新区块的情况下,判断所述主节点是否超过预设的时间阈值未执行区块的添加,若是,则判断当前主节点发生故障。

进一步地,在上述任一实施例的基础上,所述装置还包括:

循环模块,用于若超过预设的时间阈值未生成新的视图,则返回执行根据新区块的添加状况判断当前主节点是否发生故障的步骤,直至新的视图生成。

进一步地,在上述任一实施例的基础上,所述第二判断模块包括:

第一确定单元,用于确定当前全部所述包括时间戳的视图更换请求中数量超过预设的比例的第一视图更换请求的时间戳;

第一处理单元,用于确定所述第一视图更换请求对应的时间戳与所述当前全部所述包括时间戳的视图更换请求的时间戳的方差之间的差值绝对值是否小于预设的第一差值阈值;

和/或,

第二处理单元,用于确定各节点发送的包括时间戳的视图更换请求中的无新区块添加的起始时间与所述主节点无新区块添加的起始时间之间的差值绝对值是否小于预设的第二差值阈值;

和/或,

第三处理单元,用于确定各节点发送的包括时间戳的视图更换请求中的无新区块添加的终止与所述主节点无新区块添加的终止时间之间的差值绝对值是否小于预设的第三差值阈值。

进一步地,在上述任一实施例的基础上,所述装置还包括:

删除模块,用于删除预存的原主节点的证书列表。

图6为本发明实施例五提供的故障监听设备的结构示意图,如图6所示,所述设备包括:存储器61,处理器62;

存储器61;用于存储所述处理器62可执行指令的存储器61;

其中,所述处理器62被配置为由所述处理器62执行如上述任一实施例所述的故障监听方法。

本发明又一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述任一实施例所述的故障监听方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1