CN114327973A - 一种区块链故障处理方法、装置及设备 - Google Patents
一种区块链故障处理方法、装置及设备 Download PDFInfo
- Publication number
- CN114327973A CN114327973A CN202111580693.2A CN202111580693A CN114327973A CN 114327973 A CN114327973 A CN 114327973A CN 202111580693 A CN202111580693 A CN 202111580693A CN 114327973 A CN114327973 A CN 114327973A
- Authority
- CN
- China
- Prior art keywords
- fault
- blockchain
- node
- block chain
- index data
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 3
- 238000012545 processing Methods 0.000 claims abstract description 132
- 238000000034 method Methods 0.000 claims abstract description 92
- 230000004044 response Effects 0.000 claims description 27
- 238000004458 analytical method Methods 0.000 claims description 16
- 239000000126 substance Substances 0.000 claims description 6
- 230000008569 process Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Retry When Errors Occur (AREA)
Abstract
本说明书实施例中公开了一种区块链故障处理方法、装置及设备。该方案可以包括:使用链下设备获取区块链节点的运行指标数据,并在基于该运行指标数据确定该区块链节点为故障状态后,根据该运行指标数据,确定针对该故障状态的故障处理策略;以及通过该链下设备向区块链节点发送故障处理指令,以令区块链节点执行该故障处理策略。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种区块链故障处理方法、装置及设备。
背景技术
区块链(Blockchain)是一种分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点,这些特点使得区块链技术具备了更广泛的应用前景。目前,区块链技术已经开始逐渐应用到数据管理、物流、传媒等领域。而在应用的过程中,人们对于区块链网络的运行稳定性的要求也越来越高。
基于此,如何快速且准确地解决区块链故障成为了亟待解决的技术问题。
发明内容
本说明书实施例提供的一种区块链故障处理方法、装置及设备,用于快速且准确地解决区块链故障。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供的一种区块链故障处理方法,包括:
链下设备从区块链节点处获取所述区块链节点的运行指标数据;
根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息;
若所述运行状态信息表示所述区块链节点为故障状态,则根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略;
生成用于指示执行所述故障处理策略的故障处理指令;
发送所述故障处理指令至所述区块链节点。
本说明书实施例提供的一种区块链故障处理方法,包括:
区块链节点获取链下设备发送的故障处理指令;所述故障处理指令是所述链下设备基于所述区块链节点的运行指标数据确定所述区块链节点处于故障状态后,生成的用于指示执行针对所述故障状态的故障处理策略的指令;
响应于所述故障处理指令,执行所述故障处理策略。
本说明书实施例提供的一种区块链故障处理装置,包括:
获取模块,用于链下设备从区块链节点处获取所述区块链节点的运行指标数据;
第一确定模块,用于根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息;
第二确定模块,用于若所述运行状态信息表示所述区块链节点为故障状态,则根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略;
指令生成模块,用于生成用于指示执行所述故障处理策略的故障处理指令;
发送模块,用于发送所述故障处理指令至所述区块链节点。
本说明书实施例提供的一种区块链故障处理装置,包括:
获取模块,用于区块链节点获取链下设备发送的故障处理指令;所述故障处理指令是所述链下设备基于所述区块链节点的运行指标数据确定所述区块链节点处于故障状态后,生成的用于指示执行针对所述故障状态的故障处理策略的指令;
故障处理模块,用于响应于所述故障处理指令,执行所述故障处理策略。
本说明书实施例提供的一种区块链故障处理设备,所述设备为链下设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
从区块链节点处获取所述区块链节点的运行指标数据;
根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息;
若所述运行状态信息表示所述区块链节点为故障状态,则根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略;
生成用于指示执行所述故障处理策略的故障处理指令;
发送所述故障处理指令至所述区块链节点。
本说明书实施例提供的一种区块链故障处理设备,所述设备处部署有区块链节点,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取链下设备发送的故障处理指令;所述故障处理指令是所述链下设备基于所述区块链节点的运行指标数据确定所述区块链节点处于故障状态后,生成的用于指示执行针对所述故障状态的故障处理策略的指令;
响应于所述故障处理指令,执行所述故障处理策略。
本说明书中提供的至少一个实施例能够实现以下有益效果:
使用链下设备获取区块链节点的运行指标数据,在基于该运行指标数据确定该区块链节点为故障状态后,根据该运行指标数据确定针对该故障状态的故障处理策略,使得确定出的故障处理策略更为准确,后续,链下设备还可以生成并发送用于指示执行该故障处理策略的故障处理指令至区块链节点。相较于目前将故障处理应用程序部署于区块链节点处的方案,本说明书实施例中提供的方案,能够在区块链节点宕机的情况下,也能令区块链节点及时执行更为准确的故障处理策略,以快速且准确地解决区块链故障,有利于提升区块链网络的运行稳定性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中的一种区块链故障处理方法的整体方案流程示意图;
图2为本说明书实施例提供的一种区块链故障处理方法的流程示意图;
图3为本说明书实施例提供的另一种区块链故障处理方法的流程示意图;
图4为本说明书实施例提供的对应于图2及3中的区块链故障处理方法的泳道流程示意图;
图5为本说明书实施例提供的对应于图2的一种区块链故障处理装置的结构示意图;
图6为本说明书实施例提供的对应于图3的一种区块链故障处理装置的结构示意图;
图7为本说明书实施例提供的对应于图2的一种区块链故障处理设备的结构示意图;
图8为本说明书实施例提供的对应于图3的一种区块链故障处理设备的结构示意图。
具体实施方式
为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
在本说明书实施例中,区块链(Block chain),可以理解为是多个区块顺序存储构成的数据链,每个区块的区块头都包含有本区块的时间戳、前一个区块信息的哈希值和本区块信息的哈希值,由此实现区块与区块之间的相互验证,构成不可篡改的区块链。每个区块都可以理解为是一个数据块(存储数据的单元)。区块链作为一种去中心化的数据库,是一串使用密码学方法相互关联产生的数据块,每一个数据块中包含了一次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块与区块首尾相连形成的链,即为区块链。若需要修改块内数据,则需要修改此区块之后所有区块的内容,并将区块链网络中所有节点备份的数据进行修改。因此,区块链具有难以篡改、删除的特点,在数据已保存至区块链后,其作为一种保持内容完整性的方法具有可靠性。
现有技术中,区块链节点可以指通过运行区块链相应程序,以向用户提供区块链节点服务的设备,而区块链网络则可以由彼此互连的区块链节点构成。目前,通常会在部署有区块链节点的设备处预置用于处理故障的应用程序,例如,假定部署有区块链节点的设备采用了Linux操作系统,则可以在该设备中部署Linux Supervisor这一进程管理应用程序作为处理故障的应用程序,以便在区块链节点服务发生宕机故障时,由LinuxSupervisor去重新启动区块链节点服务,从而解决区块链节点的宕机故障,保障区块链网络运行的稳定性。
目前的区块链故障解决方案,由于处理故障的应用程序与区块链相应程序部署于同一设备处,此时,若该设备出现问题,则不仅会导致区块链节点故障,还会对处理故障的应用程序的运行造成影响,从而使得处理故障的应用程序可能无法重启区块链节点服务,影响故障处理效率。且目前的区块链故障解决方案中,通常仅会通过重启区块链节点服务以解决故障,故障解决手段单一,可能无法从根本上解决区块链故障,影响故障解决准确性及有效性。
为了解决现有技术中的缺陷,本方案给出了以下实施例:
图1为本说明书实施例中的一种区块链故障处理方法的整体方案流程示意图。
如图1所示,区块链网络中可以包含多个能够彼此相互通信的区块链节点,例如,第一区块链节点101、第二区块链节点102、第三区块链节点103、第四区块链节点 104、第五区块链节点105等,在实际应用中,该区块链网络中还可能包含图1中未示出的其他区块链节点,对此不作具体限定。链下设备106可以与区块链网络中的各个区块链节点进行通信,从而使得链下设备106能够从各个区块链节点处获取该区块链节点的运行指标数据。
假定,链下设备106获取到了第一区块链节点101的运行指标数据,则链下设备106可以根据该运行指标数据,确定第一区块链节点101的运行状态信息,若该运行状态信息表示第一区块链节点101为故障状态,则链下设备106可以根据该运行指标数据,确定针对该故障状态的故障处理策略;以及,生成用于指示执行该故障处理策略的故障处理指令;并发送该故障处理指令至第一区块链节点101。
第一区块链节点101在接收到链下设备106发送的该故障处理指令后,可以响应于该故障处理指令,执行链下设备106针对第一区块链节点101的故障状态确定出的故障处理策略,以实现故障自愈。
本说明书实施例中提供的区块链故障处理方法,通过利用链下设备进行故障检测并生成故障处理指令,使得在部署有区块链节点的设备发生了故障的情况下,也能及时发现并解决区块链故障,有利于提升区块链故障的处理实时性;且通过结合区块链节点的当前的运行指标数据,去针对性的确定当前所需采取的故障处理策略,也有利于从根本上解决区块链故障,以保证故障解决的准确性及有效性。
接下来,将针对说明书实施例提供的一种区块链故障处理方法结合附图进行具体说明:
图2为本说明书实施例提供的一种区块链故障处理方法的流程示意图。从程序角度而言,该流程的执行主体可以为链下设备,或者,链下设备处搭载的用于解决区块链故障的应用程序(简称为“故障处理应用”)。如图2所示,该流程可以包括以下步骤:
步骤202:链下设备从区块链节点处获取所述区块链节点的运行指标数据。
在本说明书实施例中,链下设备可以指未用于实现区块链节点的设备,即无需提供区块链节点服务的设备。其中,区块链节点服务既可以指能够在本地或通过网络为用户提供一些功能的区块链相应程序,也可以指区块链相应程序所能为用户提供的功能。在实际应用中,区块链节点既可以运行在物理硬件上,也可以运行在虚拟机或容器Docker 中。在后一种情况下,区块链节点可以与其他区块链节点共享物理硬件。
在本说明书实施例中,链下设备处可以搭载有故障处理应用,以便于通过该故障处理应用去检测区块链网络中存在的故障,并解决其所检测出的故障。通过在链下设备处部署故障处理应用,可以对故障处理应用与区块链节点服务进行解耦,有利于提升故障检出率及故障处理成功率。
值得注意的是,链下设备处搭载的故障处理应用与现有技术中在部署有区块链节点的设备处预置的用于处理故障的应用程序(如Linux Supervisor)通常是不同的。这是由于,现有技术中,用于处理故障的应用程序通常为部署有区块链节点的设备的操作系统处的守护进程(Daemon),该用于处理故障的应用程序通常会在部署有区块链节点的设备的后台运行,并且该用于处理故障的应用程序不受任何终端控制。而链下设备处搭载的故障处理应用可以是受终端或用户控制的应用程序,且该故障处理应用可以在链下设备处的前台运行。
在本说明书实施例中,链下设备可以采用区块链即服务(Blockchain as aService,英文缩写BaaS)平台实现,该区块链即服务平台(简称为BaaS平台)可以用于管理步骤 202中提及的区块链节点所属的区块链网络。当然,链下设备还可以通过其他能够与区块链网络进行交互的设备实现,对此不作具体限定。
在实际应用中,BaaS平台可以将区块链框架嵌入云计算平台,利用云服务基础设施的部署和管理优势,为用户提供便捷、高性能的区块链生态环境和生态配套服务,以帮助用户快速轻松的搭建各类业务场景下的区块链网络及去中心化应用(DecentralizedApplication,英文缩写DAPP)。用户还可以使用BaaS平台对基于该BaaS平台搭建的区块链网络进行便捷的管理。基于此,链下设备处搭载的故障处理应用可以利用软件开发工具包(Software Development Kit,英文缩写:SDK)实现,通过将故障处理SDK集成到BaaS平台,以提升用户的操作便捷性。
在本说明书实施例中,链下设备(如BaaS平台)与各个区块链节点之间可以预先设置进行通信的应用程序接口(Application Programming Interface,英文简写:API),以便建立链下设备与各个区块链节点之间的通信通道。
基于此。步骤202:链下设备从区块链节点处获取所述区块链节点的运行指标数据,具体可以包括:
链下设备向区块链节点处的预设应用程序接口发送运行指标数据获取请求。
接收所述区块链节点响应于该运行指标数据获取请求而反馈的所述区块链节点的运行指标数据。
在本说明书实施例中,区块链节点的运行指标数据可以指能够用于反映区块链节点的运行状的指标数据,或者,能够影响区块链节点的运行状态的指标数据;例如,区块链节点的性能指标数据、区块链节点的计算资源指标数据等。
其中,区块链节点的性能指标数据可以指能够反映或影响区块链节点服务的性能的数据,该区块链节点的性能指标数据可以包括但不限于:区块链节点服务的进程工作状态(存活或者未存活)、区块尺寸(block size)、区块高度、出块时刻、出块耗时、事务吞吐量、事务响应时间、交易池容量、交易队列容量、交易失败率、待处理交易量等。
而区块链节点的计算资源指标数据可以指能够反映或影响区块链节点的可用系统资源的数据,区块链节点的计算资源指标数据可以包括但不限于:分配给区块链节点使用的存储资源总量、CPU资源总量、网络资源(如、网络带宽)总量等,以及,CPU利用率、CPU空闲百分比、物理内存消耗量、硬盘空闲程度等。
步骤204:根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息。
在本说明书实施例中,由于区块链节点的运行指标数据中的部分指标数据,能够直接反映区块链节点的运行状态,例如,若区块链节点服务的进程工作状态为未存活,则可以反映区块链节点处于故障状态,或者,若出块耗时超出合理范围,也可以反映区块链节点处于故障状态等,因此,链下设备在获取到区块链节点的运行指标数据后,可以根据该区块链节点的运行指标数据,初步判断区块链节点的是否发生故障。
在本说明书实施例中,区块链节点处于故障状态时,该区块链节点既可以不再具有处理区块链交易的能力,也可以仍旧具有处理区块链交易的能力,但通常情况下,处于故障状态的区块链节点对于区块链交易的处理能力是低于该区块链节点应有的对于区块链交易的处理能力的。
步骤206:若所述运行状态信息表示所述区块链节点为故障状态,则根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略。
本说明书实施例中,若基于该区块链节点的运行状态信息初步确定该区块链节点为故障状态,为从根本上解决该区块链节点的故障,还需要基于该区块链节点的运行状态信息进行故障原因分析,以确定针对该区块链节点的故障状态的有效的故障处理策略。
在实际应用中,针对部分区块链故障,可以预先在链下设备处的故障处理应用中设置对应的故障处理策略,从而在区块链故障发生时,可以不依靠人工介入,而由故障处理应用自动进行故障解决处理,实现无人工干预情况下的自愈恢复;有利于降低区块链网络维护成本和业务影响时间,提升区块链产品的服务体验。
当然,若步骤204中确定出的运行状态信息表示该区块链节点为非故障状态(即正常工作状态),则可以跳转至结束,而无需继续执行步骤206及后续故障处理操作。
步骤208:生成用于指示执行所述故障处理策略的故障处理指令。
步骤210:发送所述故障处理指令至所述区块链节点。
本说明书实施例中,链下设备处的故障处理应用在生成用于指示执行故障处理策略的故障处理指令后,还需要发送该故障处理指令至所述区块链节点,以令区块链节点执行故障处理策略,从而解决该区块链节点处的故障,令该区块链节点由故障状态转变至非故障状态,并继续提供区块链节点服务。
图2中的方法,通过使用链下设备获取区块链节点的运行指标数据,并在基于该运行指标数据确定该区块链节点为故障状态后,根据该运行指标数据确定针对该故障状态的故障处理策略,以及生成并发送用于指示执行该故障处理策略的故障处理指令至区块链节点。相较于目前将故障处理应用程序部署于区块链节点处的方案,图2中的方法,能够在区块链节点宕机的情况下,也能令区块链节点及时执行故障处理策略,以快速解决区块链故障,有利于提升区块链网络的运行稳定性。
且图2中方法,还通过对区块链节点的运行指标数据的分析,以确定对该区块链节点当前故障状态具有针对性的故障处理策略,以便从根源解决该区块链节点处的故障,不仅令故障解决方式更加多样化,还有利于提升故障解决的准确性及有效性。
基于图2中的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
本说明书实施例中,由于区块链节点的运行指标数据中的部分指标数据,能够直接反映区块链节点的运行状态,因此,可以针对已识别的区块链故障类型预先设置对应的发生条件,以基于该发生条件,初步判断区块链节点的运行状态。
基于此,步骤204:根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息,具体可以包括:
针对任意一种预设故障类型,判断所述区块链节点的运行指标数据是否满足所述预设故障类型的发生条件,得到判断结果。
若所述判断结果表示所述区块链节点的运行指标数据满足所述预设故障类型的发生条件,则生成表示所述区块链节点为故障状态的运行状态信息,该运行状态信息还可以用于表示所述区块链节点的故障类型为所述预设故障类型。此时,还可以生成报警信息以提示运维人员该区块链节点发生了该预设故障类型的故障。
而若所述判断结果表示所述区块链节点的运行指标数据不满足所述预设故障类型的发生条件,则可以生成表示所述区块链节点为非故障状态的运行状态信息,并跳转至结束,等待下一周期的区块链故障检测、处理操作的执行。
本说明书实施例中,可以在链下设备处设置多种预设故障类型,并为每种预设故障类型设置对应的发生条件。其中,不同预设故障类型的发生条件通常并不完全一致。用户可以根据实际情况自行设置预设故障类型及其对应的发生条件的具体内容,对此不做具体限定。
例如,若预设故障类型为区块链节点处无服务进程,该预设故障类型的发生条件可以为:区块链节点服务的进程工作状态这一运行状态信息为未存活。
若预设故障类型为区块链节点块高落后故障,该预设故障类型的发生条件可以为:该区块链节点的区块高度与所属区块链网络的区块高度之差超过第一阈值,和/或,该区块链节点的出块耗时大于第二阈值,和/或,当前时刻距离该区块链节点的最近一次出块时刻之间的时间差大于第三阈值。
而若预设故障类型为区块链节点交易积压故障,该预设故障类型的发生条件可以为:该区块链节点处的待处理交易队列已满,和/或,该区块链节点处的交易池内的待处理交易量大于第四阈值,和/或,该区块链节点处的待处理交易队列处于已满状态的持续时长大于第五阈值,和/或,该区块链节点处的交易池内的待处理交易量大于第四阈值的持续时长大于第六阈值。
在实际应用中,若在预设时间段内多次确定该区块链节点发生了相同的预设故障类型指示的故障,即在预设时间段内接收到的针对该区块链节点的多个报警信息内容相同,可以对报警信息进行降噪去重处理,以降低区块链节点执行故障处理策略的频率。
本说明书实施例中,为从根源解决区块链故障,还可以针对各个预设故障类型设置相应的故障分析策略,以确定区块链节点处发生的预设故障类型的故障原因,并为各个故障原因设置相应的故障处理策略,以便于有效解决区块链故障。
基于此,在基于区块链节点的运行状态信息确定该区块链节点存在的预设故障类型后,步骤206:根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略,具体可以包括:
获取目标待分析数据;所述目标待分析数据包括所述区块链节点的运行指标数据及所述区块链节点所属区块链网络的运行指标数据。
利用所述预设故障类型对应的故障分析策略,对所述目标待分析数据进行分析,得到所述区块链节点的故障原因。
从故障处理策略集合中,确定所述故障原因对应的故障处理策略。
本说明书实施例中,在对区块链节点处存在的预设故障类型进行原因分析时,可能需要判断是单节点故障还是区块链网络整体故障,以便采取相应故障处理策略去提升故障解决的有效性。因此,在进行故障原因分析时,不仅需要使用区块链节点的运行指标数据,还有可能需要使用该区块链节点所属区块链网络的运行指标数据。
其中,该区块链节点所属区块链网络的运行指标数据可以包括但不限于:该区块链网络的区块高度、出块时刻、出块耗时、事务吞吐量、事务响应时间、交易失败率、链上交易量、链上地址总数、新增地址数、活跃地址数、全网算力等。
本说明书实施例中,针对不同预设故障类型的对应的故障分析策略、故障原因及故障处理策略通常并不完全一致。用户可以根据实际情况自行设置,对此不做具体限定。为便于理解,对此进行举例说明。
实施例一
假定,针对区块链节点处无服务进程这一预设故障类型,故障原因可以包括:区块链节点宕机,具体的,如部署有区块链节点的设备正在重启或已关闭,或者,区块链节点服务宕机。故障分析策略可以为:检测部署有区块链节点的设备的工作状态是否正在重启或已关闭;检测区块链节点服务进程是否存在。故障处理策略可以为:若故障原因为部署有区块链节点的设备正在重启,则等待该设备重启完成;若故障原因为部署有区块链节点的设备已关闭,则启动该设备;若故障原因为区块链节点服务宕机,则重启该区块链节点处的区块链相应程序,即重启区块链节点服务。
基于此,若所述区块链节点的故障原因为所述区块链节点宕机,则步骤步骤208:生成用于指示执行所述故障处理策略的故障处理指令,可以包括:
生成用于指示重启所述区块链节点的指令;其中,该指令具体可以用于指示部署有区块链节点的设备重启,和/或,指示区块链节点服务重启。
本说明书实施例中,区块链节点既可以部署于实体设备(如,计算机、服务器) 处,也可以部署于虚拟设备(如、虚拟机、容器Docker、云服务器)处,基于部署该区块链节点的设备的类型的不同,针对故障处理指令的生成及执行也会存在一定的区别。
例如,若区块链节点部署于实体设备中,则该故障处理指令可以用于指示重启该实体设备,或者,指示重启该实体设备中的区块链节点服务。对应的,步骤210:发送故障处理指令至所述区块链节点,具体可以包括:发送所述故障处理指令至该实体设备处。
若区块链节点部署于容器Docker中,则该故障处理指令可以用于指示重启该容器Docker;对应的,步骤210:发送所述故障处理指令至所述区块链节点,具体可以包括:发送所述故障处理指令至该容器Docker所属的容器管理平台,以令该容器管理平台控制该容器Docker重启。
而若区块链节点部署于云服务器中,则该故障处理指令可以用于指示重启该云服务器;对应的,步骤210:发送所述故障处理指令至所述区块链节点,具体可以包括:发送所述故障处理指令至该云服务器所属的云服务器集群管理平台,以令该云服务器集群管理平台控制该云服务器重启。
实施例二
假定,针对区块链节点块高落后这一预设故障类型,故障原因可以包括:区块链节点的服务的配置信息设置的不合理,具体的,如区块链节点的预设区块同步间隔过长,或者,区块链节点处理的单个区块的预设区块尺寸(block size)偏小。故障分析策略可以为:确定该区块链节点的出块耗时平均值与该区块链节点的预设区块同步间隔的差值,检测该差值是否大于第七阈值;检测该区块链节点的块高持续未增长的时长是否大于第八阈值。故障处理策略可以为:若故障原因为区块链节点的预设区块同步间隔过长,则缩小区块链节点的预设区块同步间隔;若故障原因为区块链节点处理的单个区块的预设区块尺寸(block size)偏小,则增大区块链节点处理的单个区块的预设区块尺寸(block size)。
基于此,若区块链节点的故障原因为该区块链节点的服务的配置信息设置的不合理,则步骤208:生成用于指示执行所述故障处理策略的故障处理指令,可以包括:
生成用于指示调整所述区块链节点的服务的配置信息的指令;或者,
生成用于调用所述区块链网络处部署的目标智能合约的区块链交易,所述目标智能合约用于调整所述区块链节点的服务的配置信息。
其中,用于指示调整区块链节点的服务的配置信息的指令,可以由链下设备通过区块链节点处的预设应用程序接口API直接发送给该区块链节点,以令区块链节点调整该区块链节点的配置文件中的针对区块链节点服务的配置信息。即步骤210:发送所述故障处理指令至所述区块链节点,具体可以包括:基于所述区块链节点的预设应用程序接口发送所述故障处理指令至所述区块链节点。
在实际应用中,还可以通过调用智能合约的方式去调整区块链节点的服务的配置信息,此时,步骤210:发送所述故障处理指令至所述区块链节点,具体可以包括:将用于调用所述区块链网络处部署的目标智能合约的区块链交易发送至该区块链节点。
实施例三
假定,针对区块链节点交易积压这一预设故障类型,故障原因可以包括:区块链节点处的计算资源量不足,具体的,如区块链节点处的CPU资源量不足等;以及,区块链节点的服务的配置信息设置的不合理,具体的,如待处理交易队列容量偏小等。故障分析策略可以为:检测该区块链节点的CPU利用率是否大于第九阈值,检测该区块链节点的待处理交易队列占用率是否大于第十阈值等。故障处理策略可以为:若故障原因为区块链节点处的CPU资源量不足,则增加给该区块链节点分配的CPU资源量;若故障原因为待处理交易队列容量偏小,则增加待处理交易队列容量。
基于此,针对区块链节点的故障原因为该区块链节点的服务的配置信息设置的不合理的情况,步骤208的实现方式可以参照实施例二中的实现方式,对此不做赘述。
而若所述区块链节点的故障原因为所述区块链节点处的计算资源量不合理,则步骤 208:生成用于指示执行所述故障处理策略的故障处理指令,具体可以包括:
生成用于指示调整所述区块链节点的计算资源量的指令。
在实际应用中,若区块链节点部署于实体设备中,则步骤210:发送所述故障处理指令至所述区块链节点,具体可以包括:发送所述故障处理指令至该实体设备处,以令该实体设备为区块链节点服务分配更多的计算资源量。或者,还可以生成提示信息,以便运维人员为该实体设备人工增加计算资源量。
而若区块链节点部署于容器Docker中,则步骤210:发送所述故障处理指令至所述区块链节点,具体可以包括:发送所述故障处理指令至该容器Docker所属的容器管理平台,以令该容器管理平台增加为该容器Docker分配的计算资源量。
而若区块链节点部署于云服务器中,则步骤210:发送所述故障处理指令至所述区块链节点,具体可以包括:发送所述故障处理指令至该云服务器所属的云服务器集群管理平台,以令该云服务器集群管理平台增加为该云服务器分配的计算资源量。
实施例四
针对多种预设故障类型的故障原因可能均包括:区块链网络故障,例如,针对区块链节点交易积压、区块链节点块高落后等故障。则针对上述预设故障类型的故障原因为区块链网络故障时的故障分析策略还可以包括:确定区块链网络出块是否正常,具体的,可以检测区块链网络的出块耗时是否大于第一目标值、检测区块链网络的交易失败率是否大于第二目标值等。故障处理策略可以为:等待区块链网络故障解除,和/或,重启区块链网络中的处于故障状态的区块链节点。
基于此,若区块链节点的故障原因为区块链网络故障,则步骤208:生成用于指示执行所述故障处理策略的故障处理指令,可以包括:
生成用于指示重启所述区块链网络中的处于故障状态的区块链节点的指令。
在实际应用中,生成用于指示重启所述区块链网络中的处于故障状态的区块链节点的指令之前,还可以采用图2中的步骤202-204相同的原理去确定出区块链网络中的各个处于故障状态的区块链节点。
具体的,所述链下设备可以获取所述区块链网络中的其他区块链节点的运行指标数据。根据所述其他区块链节点的运行指标数据,确定所述其他区块链节点的运行状态信息,得到所述区块链网络中的处于故障状态的区块链节点。
在本说明书实施例中,单个区块链节点处可能存在多种预设故障类型,因此,需要针对每种预设故障类型均进行相应的故障原因分析,并确定出各个预设故障类型对应的故障处理策略,以结合多种故障处理策略生成最终的故障处理策略。
在实际应用中,在确定最终的故障处理策略时,可以按照故障处理策略对应的执行优先级由高到低的顺序,或者,按照预设故障类型对应的处理优先级由高到低的顺序,对确定出的各个预设故障类型对应的各个故障处理策略进行排序,按照排序执行各个故障处理策略,或者,仅执行前N个故障处理策略,以优先执行效果较好的故障处理策略,或者优先处理可能会导致更多损失的故障,从而提升图2中方案的实用性。
在实际应用,部分故障处理策略可能会有重合,因此,还可以对各个预设故障类型对应的各个故障处理策略进行去重操作,以对去重后的故障处理策略进行排序,从而避免重复执行相同故障处理策略。
基于与图2中所示的方案同样的思路,本说明书实施例还提供了另一种区块链故障处理方法。图3为本说明书实施例提供的另一种区块链故障处理方法的流程示意图。该流程的执行主体可以为区块链节点。如图3所示,该流程可以包括:
步骤302:区块链节点获取链下设备发送的故障处理指令;所述故障处理指令是所述链下设备基于所述区块链节点的运行指标数据确定所述区块链节点处于故障状态后,生成的用于指示执行针对所述故障状态的故障处理策略的指令。
在本说明书实施例中,步骤302中区块链节点获取到的故障处理指令可以为图2中步骤208所生成的故障处理指令,对于该故障处理指令的生成过程不再赘述。其中,所述链下设备可以包括区块链即服务平台,所述区块链即服务平台可以用于管理所述区块链节点所属的区块链网络。
步骤304:响应于所述故障处理指令,执行所述故障处理策略。
在本说明书实施例中,步骤304具体可以包括:响应于所述故障处理指令,调整所述区块链节点的服务的配置信息,和/或,调整所述区块链节点的计算资源量,和/或,重启所述区块链节点。
图3中的方法,通过使用链下设备获取区块链节点的运行指标数据,并在基于该运行指标数据确定该区块链节点为故障状态后,根据该运行指标数据确定针对该故障状态的故障处理策略,以及生成并发送用于指示执行该故障处理策略的故障处理指令至区块链节点,从而使得区块链节点执行故障处理策略进行自愈恢复。相较于目前将故障处理应用程序部署于区块链节点处的方案,图3中的方法,能够在区块链节点宕机的情况下,也能令区块链节点及时执行故障处理策略,以快速解决区块链故障,有利于提升区块链网络的运行稳定性。
且图3中方法,链下设备还通过对区块链节点的运行指标数据的分析,以确定对该区块链节点当前故障状态具有针对性的故障处理策略,以便从根源解决该区块链节点处的故障,不仅令故障解决方式更加多样化,还有利于提升故障解决的准确性及有效性。
基于图3中的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
步骤302:区块链节点获取链下设备发送的故障处理指令之前,还可以包括:
区块链节点基于预设应用程序接口接收链下设备发送的运行指标数据获取请求。
响应于所述运行指标数据获取请求,发送所述区块链节点的运行指标数据至所述链下设备;其中,所述区块链节点的运行指标数据包括:所述区块链节点的性能指标数据及所述区块链节点的计算资源指标数据。
在本说明书实施例中,该区块链节点响应于所述运行指标数据获取请求发送的运行指标数据,即为图2中步骤202中的链下设备获取到的运行指标数据,对此不作赘述。
图4为本说明书实施例提供的对应于图2及图3中的区块链故障处理方法的泳道流程示意图。如图4所示,该区块链故障处理流程可以涉及链下设备、区块链节点等执行主体。
在故障处理策略确定阶段,链下设备可以向区块链节点处的预设应用程序接口发送运行指标数据获取请求,该区块链节点响应于所述运行指标数据获取请求,发送所述区块链节点的运行指标数据至所述链下设备。链下设备根据所述区块链节点的运行指标数据,确定该区块链节点的运行状态信息。若该运行状态信息表示区块链节点存在预设故障类型,则获取目标待分析数据,针对该区块链节点存在的每种预设故障类型,利用所述预设故障类型对应的故障分析策略,对所述目标待分析数据进行分析,得到所述区块链节点的故障原因;从故障处理策略集合中,确定所述故障原因对应的故障处理策略。
在故障处理策略执行阶段,链下设备生成用于指示执行所述故障处理策略的故障处理指令;发送所述故障处理指令至所述区块链节点。该区块链节点则可以响应于所述故障处理指令,执行所述故障处理策略。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图5为本说明书实施例提供的对应于图2的一种区块链故障处理装置的结构示意图。如图5所示,该装置可以包括:
获取模块502,用于链下设备从区块链节点处获取所述区块链节点的运行指标数据。
第一确定模块504,用于根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息。
第二确定模块506,用于若所述运行状态信息表示所述区块链节点为故障状态,则根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略。
指令生成模块508,用于生成用于指示执行所述故障处理策略的故障处理指令。
发送模块510,用于发送所述故障处理指令至所述区块链节点。
基于图5的装置,本说明书实施例还提供了该装置的一些具体实施方案,下面进行说明。
可选的,所述获取模块502,具体可以用于:
链下设备向区块链节点处的预设应用程序接口发送运行指标数据获取请求。
接收所述区块链节点反馈的所述区块链节点的运行指标数据,所述区块链节点的运行指标数据包括:所述区块链节点的性能指标数据及所述区块链节点的计算资源指标数据。
可选的,所述第一确定模块504,可以包括:
判断单元,用于针对任意一种预设故障类型,判断所述区块链节点的运行指标数据是否满足所述预设故障类型的发生条件,得到判断结果。
运行状态信息生成单元,用于若所述判断结果表示所述区块链节点的运行指标数据满足所述预设故障类型的发生条件,则生成表示所述区块链节点为故障状态的运行状态信息。
可选的,若所述判断结果表示所述区块链节点的运行指标数据满足所述预设故障类型的发生条件,所述运行状态信息还用于表示所述区块链节点的故障类型为所述预设故障类型;则所述第二确定模块506,可以包括:
获取单元,用于获取目标待分析数据;所述目标待分析数据包括所述区块链节点的运行指标数据及所述区块链节点所属区块链网络的运行指标数据。
分析单元,用于利用所述预设故障类型对应的故障分析策略,对所述目标待分析数据进行分析,得到所述区块链节点的故障原因。
故障处理策略确定单元,用于从故障处理策略集合中,确定所述故障原因对应的故障处理策略。
可选的,所述指令生成模块508,可以用于:
若所述区块链节点的故障原因为所述区块链节点的计算资源量,则生成用于指示调整所述区块链节点的计算资源量的指令。
若所述区块链节点的故障原因为所述区块链节点宕机,则生成用于指示重启所述区块链节点的指令。
若所述区块链节点的故障原因为所述区块链网络故障,则生成用于指示重启所述区块链网络中的处于故障状态的区块链节点的指令。
若所述区块链节点的故障原因为针对所述区块链节点的服务的配置信息,则生成用于指示调整所述区块链节点的服务的配置信息的指令;或者,生成用于调用所述区块链网络处部署的目标智能合约的区块链交易,所述目标智能合约用于调整所述区块链节点的服务的配置信息。
可选的,图5中的装置,获取模块502,还可以用于:所述链下设备获取所述区块链网络中的其他区块链节点的运行指标数据。
第一确定模块504,还可以用于:根据其他区块链节点的运行指标数据,确定所述其他区块链节点的运行状态信息,得到所述区块链网络中的处于故障状态的区块链节点。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图6为本说明书实施例提供的对应于图3的一种区块链故障处理装置的结构示意图。如图6所示,该装置可以包括:
获取模块602,用于区块链节点获取链下设备发送的故障处理指令;所述故障处理指令是所述链下设备基于所述区块链节点的运行指标数据确定所述区块链节点处于故障状态后,生成的用于指示执行针对所述故障状态的故障处理策略的指令。
故障处理模块604,用于响应于所述故障处理指令,执行所述故障处理策略。
基于图6的装置,本说明书实施例还提供了该装置的一些具体实施方案,下面进行说明。
可选的,图6中的装置还可以包括:
接收模块,用于区块链节点基于预设应用程序接口接收链下设备发送的运行指标数据获取请求。
发送模块,用于响应于所述运行指标数据获取请求,发送所述区块链节点的运行指标数据至所述链下设备;其中,所述区块链节点的运行指标数据包括:所述区块链节点的性能指标数据及所述区块链节点的计算资源指标数据。
可选的,所述故障处理模块604,具体可以用于:
响应于所述故障处理指令,调整所述区块链节点的服务的配置信息;或者,
响应于所述故障处理指令,调整所述区块链节点的计算资源量;或者,
响应于所述故障处理指令,重启所述区块链节点。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图7为本说明书实施例提供的对应于图2的一种区块链故障处理设备的结构示意图。如图7所示,设备700可以为链下设备,具体可以包括:
至少一个处理器710;以及,
与所述至少一个处理器通信连接的存储器730;其中,
所述存储器730存储有可被所述至少一个处理器710执行的指令720,所述指令被所述至少一个处理器710执行,以使所述至少一个处理器710能够:
从区块链节点处获取所述区块链节点的运行指标数据。
根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息。
若所述运行状态信息表示所述区块链节点为故障状态,则根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略。
生成用于指示执行所述故障处理策略的故障处理指令。
发送所述故障处理指令至所述区块链节点。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图8为本说明书实施例提供的对应于图3的一种区块链故障处理设备的结构示意图。如图8所示,设备800处可以部署有区块链节点,具体可以包括:
至少一个处理器810;以及,
与所述至少一个处理器通信连接的存储器830;其中,
所述存储器830存储有可被所述至少一个处理器810执行的指令820,所述指令被所述至少一个处理器810执行,以使所述至少一个处理器810能够:
获取链下设备发送的故障处理指令;所述故障处理指令是所述链下设备基于所述区块链节点的运行指标数据确定所述区块链节点处于故障状态后,生成的用于指示执行针对所述故障状态的故障处理策略的指令。
响应于所述故障处理指令,执行所述故障处理策略。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图7 及图8所示的设备而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列 (Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字符系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而 HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL (Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字符助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字符多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (25)
1.一种区块链故障处理方法,包括:
链下设备从区块链节点处获取所述区块链节点的运行指标数据;
根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息;
若所述运行状态信息表示所述区块链节点为故障状态,则根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略;
生成用于指示执行所述故障处理策略的故障处理指令;
发送所述故障处理指令至所述区块链节点。
2.如权利要求1所述的方法,所述链下设备从区块链节点处获取所述区块链节点的运行指标数据,具体包括:
链下设备向区块链节点处的预设应用程序接口发送运行指标数据获取请求;
接收所述区块链节点反馈的所述区块链节点的运行指标数据。
3.如权利要求2所述的方法,所述区块链节点的运行指标数据包括:所述区块链节点的性能指标数据及所述区块链节点的计算资源指标数据。
4.如权利要求1所述的方法,所述根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息,具体包括:
针对任意一种预设故障类型,判断所述区块链节点的运行指标数据是否满足所述预设故障类型的发生条件,得到判断结果;
若所述判断结果表示所述区块链节点的运行指标数据满足所述预设故障类型的发生条件,则生成表示所述区块链节点为故障状态的运行状态信息。
5.如权利要求4所述的方法,若所述判断结果表示所述区块链节点的运行指标数据满足所述预设故障类型的发生条件,则所述运行状态信息还用于表示所述区块链节点的故障类型为所述预设故障类型;
则所述根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略,具体包括:
获取目标待分析数据;所述目标待分析数据包括所述区块链节点的运行指标数据及所述区块链节点所属区块链网络的运行指标数据;
利用所述预设故障类型对应的故障分析策略,对所述目标待分析数据进行分析,得到所述区块链节点的故障原因;
从故障处理策略集合中,确定所述故障原因对应的故障处理策略。
6.如权利要求5所述的方法,若所述区块链节点的故障原因为针对所述区块链节点的服务的配置信息,则所述生成用于指示执行所述故障处理策略的故障处理指令,具体包括:
生成用于指示调整所述区块链节点的服务的配置信息的指令;或者,
生成用于调用所述区块链网络处部署的目标智能合约的区块链交易,所述目标智能合约用于调整所述区块链节点的服务的配置信息。
7.如权利要求5所述的方法,若所述区块链节点的故障原因为所述区块链节点的计算资源量,则所述生成用于指示执行所述故障处理策略的故障处理指令,具体包括:
生成用于指示调整所述区块链节点的计算资源量的指令。
8.如权利要求5所述的方法,若所述区块链节点的故障原因为所述区块链节点宕机,则所述生成用于指示执行所述故障处理策略的故障处理指令,具体包括:
生成用于指示重启所述区块链节点的指令。
9.如权利要求5所述的方法,若所述区块链节点的故障原因为所述区块链网络故障,则所述生成用于指示执行所述故障处理策略的故障处理指令,具体包括:
生成用于指示重启所述区块链网络中的处于故障状态的区块链节点的指令。
10.如权利要求9所述的方法,所述生成用于指示重启所述区块链网络中的处于故障状态的区块链节点的指令之前,还包括:
所述链下设备获取所述区块链网络中的其他区块链节点的运行指标数据;
根据所述其他区块链节点的运行指标数据,确定所述其他区块链节点的运行状态信息,得到所述区块链网络中的处于故障状态的区块链节点。
11.如权利要求1-10中任意一项所述的方法,所述链下设备包括区块链即服务平台,所述区块链即服务平台用于管理所述区块链节点所属的区块链网络。
12.一种区块链故障处理方法,包括:
区块链节点获取链下设备发送的故障处理指令;所述故障处理指令是所述链下设备基于所述区块链节点的运行指标数据确定所述区块链节点处于故障状态后,生成的用于指示执行针对所述故障状态的故障处理策略的指令;
响应于所述故障处理指令,执行所述故障处理策略。
13.如权利要求12所述的方法,所述区块链节点获取链下设备发送的故障处理指令之前,还包括:
区块链节点基于预设应用程序接口接收链下设备发送的运行指标数据获取请求;
响应于所述运行指标数据获取请求,发送所述区块链节点的运行指标数据至所述链下设备;其中,所述区块链节点的运行指标数据包括:所述区块链节点的性能指标数据及所述区块链节点的计算资源指标数据。
14.如权利要求12所述的方法,所述响应于所述故障处理指令,执行所述故障处理策略,具体包括:
响应于所述故障处理指令,调整所述区块链节点的服务的配置信息;或者,
响应于所述故障处理指令,调整所述区块链节点的计算资源量;或者,
响应于所述故障处理指令,重启所述区块链节点。
15.如权利要求12-14中任意一项所述的方法,所述链下设备包括区块链即服务平台,所述区块链即服务平台用于管理所述区块链节点所属的区块链网络。
16.一种区块链故障处理装置,包括:
获取模块,用于链下设备从区块链节点处获取所述区块链节点的运行指标数据;
第一确定模块,用于根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息;
第二确定模块,用于若所述运行状态信息表示所述区块链节点为故障状态,则根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略;
指令生成模块,用于生成用于指示执行所述故障处理策略的故障处理指令;
发送模块,用于发送所述故障处理指令至所述区块链节点。
17.如权利要求16所述的装置,所述获取模块,具体用于:
链下设备向区块链节点处的预设应用程序接口发送运行指标数据获取请求;
接收所述区块链节点反馈的所述区块链节点的运行指标数据,所述区块链节点的运行指标数据包括:所述区块链节点的性能指标数据及所述区块链节点的计算资源指标数据。
18.如权利要求16所述的装置,所述第一确定模块包括:
判断单元,用于针对任意一种预设故障类型,判断所述区块链节点的运行指标数据是否满足所述预设故障类型的发生条件,得到判断结果;
运行状态信息生成单元,用于若所述判断结果表示所述区块链节点的运行指标数据满足所述预设故障类型的发生条件,则生成表示所述区块链节点为故障状态的运行状态信息。
19.如权利要求18所述的装置,若所述判断结果表示所述区块链节点的运行指标数据满足所述预设故障类型的发生条件,所述运行状态信息还用于表示所述区块链节点的故障类型为所述预设故障类型;
则所述第二确定模块包括:
获取单元,用于获取目标待分析数据;所述目标待分析数据包括所述区块链节点的运行指标数据及所述区块链节点所属区块链网络的运行指标数据;
分析单元,用于利用所述预设故障类型对应的故障分析策略,对所述目标待分析数据进行分析,得到所述区块链节点的故障原因;
故障处理策略确定单元,用于从故障处理策略集合中,确定所述故障原因对应的故障处理策略。
20.如权利要求19所述的装置,所述指令生成模块用于:
若所述区块链节点的故障原因为所述区块链节点的计算资源量,则生成用于指示调整所述区块链节点的计算资源量的指令;
若所述区块链节点的故障原因为所述区块链节点宕机,则生成用于指示重启所述区块链节点的指令;
若所述区块链节点的故障原因为所述区块链网络故障,则生成用于指示重启所述区块链网络中的处于故障状态的区块链节点的指令;
若所述区块链节点的故障原因为针对所述区块链节点的服务的配置信息,则生成用于指示调整所述区块链节点的服务的配置信息的指令;或者,生成用于调用所述区块链网络处部署的目标智能合约的区块链交易,所述目标智能合约用于调整所述区块链节点的服务的配置信息。
21.一种区块链故障处理装置,包括:
获取模块,用于区块链节点获取链下设备发送的故障处理指令;所述故障处理指令是所述链下设备基于所述区块链节点的运行指标数据确定所述区块链节点处于故障状态后,生成的用于指示执行针对所述故障状态的故障处理策略的指令;
故障处理模块,用于响应于所述故障处理指令,执行所述故障处理策略。
22.如权利要求21所述的装置,所述装置还包括:
接收模块,用于区块链节点基于预设应用程序接口接收链下设备发送的运行指标数据获取请求;
发送模块,用于响应于所述运行指标数据获取请求,发送所述区块链节点的运行指标数据至所述链下设备;其中,所述区块链节点的运行指标数据包括:所述区块链节点的性能指标数据及所述区块链节点的计算资源指标数据。
23.如权利要求21所述的装置,所述故障处理模块,具体用于:
响应于所述故障处理指令,调整所述区块链节点的服务的配置信息;或者,
响应于所述故障处理指令,调整所述区块链节点的计算资源量;或者,
响应于所述故障处理指令,重启所述区块链节点。
24.一种区块链故障处理设备,所述设备为链下设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
从区块链节点处获取所述区块链节点的运行指标数据;
根据所述区块链节点的运行指标数据,确定所述区块链节点的运行状态信息;
若所述运行状态信息表示所述区块链节点为故障状态,则根据所述区块链节点的运行指标数据,确定针对所述故障状态的故障处理策略;
生成用于指示执行所述故障处理策略的故障处理指令;
发送所述故障处理指令至所述区块链节点。
25.一种区块链故障处理设备,所述设备处部署有区块链节点,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取链下设备发送的故障处理指令;所述故障处理指令是所述链下设备基于所述区块链节点的运行指标数据确定所述区块链节点处于故障状态后,生成的用于指示执行针对所述故障状态的故障处理策略的指令;
响应于所述故障处理指令,执行所述故障处理策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111580693.2A CN114327973A (zh) | 2021-12-22 | 2021-12-22 | 一种区块链故障处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111580693.2A CN114327973A (zh) | 2021-12-22 | 2021-12-22 | 一种区块链故障处理方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327973A true CN114327973A (zh) | 2022-04-12 |
Family
ID=81054451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111580693.2A Pending CN114327973A (zh) | 2021-12-22 | 2021-12-22 | 一种区块链故障处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327973A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115049084A (zh) * | 2022-08-16 | 2022-09-13 | 中国工业互联网研究院 | 基于区块链的故障设备溯源方法、装置、设备及存储介质 |
-
2021
- 2021-12-22 CN CN202111580693.2A patent/CN114327973A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115049084A (zh) * | 2022-08-16 | 2022-09-13 | 中国工业互联网研究院 | 基于区块链的故障设备溯源方法、装置、设备及存储介质 |
CN115049084B (zh) * | 2022-08-16 | 2022-11-08 | 中国工业互联网研究院 | 基于区块链的故障设备溯源方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10565077B2 (en) | Using cognitive technologies to identify and resolve issues in a distributed infrastructure | |
US20180246751A1 (en) | Techniques to select virtual machines for migration | |
US10585753B2 (en) | Checkpoint triggering in a computer system | |
CN112988398B (zh) | 一种微服务动态伸缩及迁移方法和装置 | |
WO2016205978A1 (en) | Techniques for virtual machine migration | |
CN103167004A (zh) | 云平台主机系统故障修复方法及云平台前端控制服务器 | |
US20120084445A1 (en) | Automatic replication and migration of live virtual machines | |
US11132293B2 (en) | Intelligent garbage collector for containers | |
CN107544832B (zh) | 一种虚拟机进程的监控方法、装置和系统 | |
CN110825495A (zh) | 一种容器云平台的恢复方法、装置、设备及可读存储介质 | |
CN111381928B (zh) | 一种虚拟机迁移方法、云计算管理平台和存储介质 | |
US9577972B1 (en) | Message inspection in a distributed strict queue | |
CN110750592A (zh) | 数据同步的方法、装置和终端设备 | |
CN106130763A (zh) | 服务器集群及适用于该集群的数据库资源组切换控制方法 | |
CN111651595A (zh) | 一种异常日志处理方法及装置 | |
CN112000353A (zh) | 应用运行方法、装置及存储介质 | |
CN103414739B (zh) | 采用自动漂移的云服务器自动监控系统及方法 | |
CN114064217B (zh) | 一种基于OpenStack的节点虚拟机迁移方法及装置 | |
CN110377664B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN106529281B (zh) | 一种可执行文件处理方法及装置 | |
CN114327973A (zh) | 一种区块链故障处理方法、装置及设备 | |
CN107203437B (zh) | 防止内存数据丢失的方法、装置和系统 | |
CN107436812B (zh) | 一种Linux系统性能优化的方法及装置 | |
CN110908792B (zh) | 一种数据处理方法及装置 | |
CN113961641A (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 |