具体实施方式
下面将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在可以包括多数形式,除非所述下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。还应当理解,本文中所使用的词语“如果”,取决于语境,可以被解释成为“在……时”或“当……时”或“响应于确定”。
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。
而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。部署在区块链上的智能合约可以是字节码的形式。
例如图1所示,Bob将一个包含创建智能合约信息的交易(Transaction)发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图1中的“0x68e12cf284…”代表了这个合约的地址,交易的data字段保存的可以是字节码,交易的to字段为一个空的账户。节点间通过共识机制达成一致后,这个合约成功创建,后续用户可以调用这个合约。
合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码和账户存储将保存在该合约账户中。智能合约的行为由合约代码控制,而智能合约的账户存储(Storage)则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
前述提到,包含创建智能合约的交易的data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,采用诸如SolIDity、Serpent、LLL语言等高级语言。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
以SolIDity语言为例,用其编写的合约与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储中的值,用于保存合约的状态。
在相关技术中,各节点设备与各桥接设备通常被部署在多个机房中,为了实现对节点设备和桥接设备的监控,通常在各机房中部署监控组件,但由于监控组件的响应速度受限,在遇到紧急情况时难以及时发现故障和进行告警,从而将影响故障解决效率,影响客户体验。
有鉴于此,本申请提出一种运行状态监控方法。该方法利用桥接设备周期性监控桥接设备和节点设备的运行状态,并定期向监控设备反馈状态数据,从而可以在桥接设备进行业务子系统与区块链网络桥接的过程中实现对区块链业务系统的状态监控,提升了发现异常状态的及时性,进而提升故障解决效率,提升客户体验。
请参见图2,图2为本申请示出的一种运行状态监控方法的方法流程图。
如图2所示,所述方法可以包括:
S202,周期性采集自检数据以及所述区块链网络中与所述桥接设备对应的节点设备的运行数据。
S204,根据所述自检数据以及所述运行数据,确定自身运行状态以及所述节点设备的运行状态。
S206,将表征自身运行状态与所述节点设备的运行状态的状态数据发布至所述区块链,以使监控设备从所述区块链中获取所述状态数据,并基于所述状态数据进行区块链业务系统运行状态监控。
所述方法可以应用于区块链业务系统中的桥接设备。所述桥接设备用于桥接所述区块链业务系统包括的业务子系统与区块链网络(以下简称区块链)。所述桥接设备可以是手机、IPAD、个人计算机等设备,在本申请中不作特别限定。
所述桥接设备可以包括桥接客户端。所述区块链网络可以包括若干节点设备。所述桥接客户端可以与节点设备中搭载的通信端进行数据交互,进而使桥接设备与节点设备可以进行数据交互。
请参见图3,图3为本申请示出的一种汇款业务系统架构示意图。
如图3所示,所述汇款业务系统包括业务子系统与区块链网络两部分。所述业务子系统可以包括若干提供汇款服务的业务节点设备,和与区块链网络进行桥接的桥接设备。所述桥接设备中可以搭载桥接客户端。
当业务子系统需要发起花一笔汇款时,可以通过桥接设备的桥接客户端构建汇款交易。所述桥接客户端可以将构建完成的汇款交易发送至区块链中的任一节点设备。所述区块链中的各节点完成该汇款交易的共识后,可以将该汇款交易发布至区块链。
再例如,所述业务子系统中某一桥接设备订阅了区块链中的回执事件。当区块链中的节点设备在完成针对回执事件的共识后,可以将所述回执事件发送至所述订阅了该回执事件的桥接客户端,以完成回执事件的推送。
所述与所述桥接设备对应的节点设备,可以理解为在区块链网络中,桥接设备负责监控的节点设备。
在一些实施例中,业务子系统中的桥接设备与区块链网络中的节点设备之间的对应关系可以是多对多的关系。也即,一个桥接设备可以与多个节点设备进行数据交互,一个节点设备也可以与多个桥接设备进行数据交互。
在一些实施例中,为了提升发现异常的及时性,可以是一个桥接设备监控预设数量的节点设备。其中所述预设数量可以根据业务需求进行设定。例如,所述预设数量可以是2。由此可以限定桥接设备监控的节点设备的数量,进而提升发现异常的及时性。
所述自检数据和所述节点设备的运行数据,可以是根据业务需求进行设定的任意类型的数据。在一些实施例中,所述自检数据和所述节点设备的运行数据可以是桥接设备的电量、内存占用率、CPU温度、CPU使用率等指标数据,由此可以实现对桥接设备和节点设备的多角度监控。在一些例子中,所述自检数据和所述节点设备的运行数据可以是心跳数据。即桥接设备和节点设备可以发起一个心跳包表明自身运行正常。
在一些实施例中,在执行S202时,通过桥接客户端启动一个定时器,周期性的采集桥接设备的自检数据和对应节点设备的运行数据。
在获取自检数据和运行数据后,可以执行S204。
在一些实施例中,可以对所述自检数据以及所述运行数据表征的各项指标与标准指标进行比较,如果所述自检数据与所述运行数据表征的各项指标均正常,则可以确定桥接设备与节点设备运行状态正常。
如果所述自检数据与所述运行数据表征的各项指标中的任一异常,则可以确定桥接设备或节点设备运行状态异常。具体地,可以根据异常的指标确定是桥接设备还是节点设备异常。
当确定为设备运行状态后,可以基于运行状态构建表征自身运行状态与所述节点设备的运行状态的状态数据。
所述状态数据可以包括任意类型的数据信息。
在一些实施例中,如果所述自身运行状态与所述节点设备对应的运行状态均正常,所述状态数据包括表征运行状态正常的心跳数据;
如果所述自身运行状态与所述节点设备对应的运行状态中的至少一项为异常,所述状态数据包括表征运行状态异常的告警数据。
通过所述心跳数据可以定时向监控设备发送设备运行正常的数据,以使监控设备可以监控到设备运行正常的信息。通过所述告警数据可以定时向监控设备发送设备运行异常的数据,以使监控设备可以监控到设备异常信息并做出故障排查。
在一些实施例中,在执行S206时,所述桥接设备可以通过桥接客户端构建状态报告事件存证交易。其中,所述存证交易可以包括针对节点设备和桥接设备的运行状态数据。然后所述桥接客户端可以将所述存证交易发布至区块链,当区块链中的各节点完成共识后,可以将该状态数据以状态报告事件形式打包至区块并存证至区块链,以使监控设备从所述区块链中获取所述状态数据,并基于所述状态数据进行区块链业务系统运行状态监控。
所述监控设备,可以是任意设备。在一些实施例中,为了提升异常响应效率,所述监控设备可以是从各桥接设备中选出的设备。所述监控设备中可以搭载监控客户端。所述监控设备可以在所述区块链中订阅任一类型的事件。所述区块链中的节点设备在监控到该类型的事件后可以将该事件发送至监控客户端。
在一些实施例中,所述节点设备中可以开发用于监控事件的程序。该程序可以从区块链中进行拉块,并对块内数据进行解析,当发现预设类型的事件后,可以将该事件发送给订阅该类事件的监控设备。
在一些实施例中,所述区块链网络可以部署用于生成事件的智能合约。所述智能合约包括事件生成逻辑,以基于所述状态数据生成状态报告事件。
在一些实施例中,所述桥接设备可以通过桥接客户端构建针对所述智能合约的合约调用交易。其中所述合约调用交易包括针对桥接设备和节点设备的状态数据。所述桥接客户端可以将所述合约调用交易发布至区块链。所述区块链网络中的节点设备在对该交易共识后,调用所述智能合约包括的事件生成逻辑,基于所述状态数据生成状态报告事件。
在一些实施例中,所述节点设备可以通过所述智能合约中的账户地址获取所述智能合约包括的事件生成逻辑,并在本地虚拟机(EVM)中运行该逻辑,基于所述状态数据生成状态报告事件。然后等到各节点设备针对该状态报告事件达成共识后,可以将该事件打包至区块存证至区块链中。区块链中的节点设备中可以开发用于监控事件的程序。该程序可以从区块链中进行拉块,并对块内数据进行解析,当发现预设类型的事件后,可以将该事件发送给订阅该类事件的监控设备。
在一些实施例中,当所述监控设备接收到所述状态报告事件后,可以通过解析事件获取所述状态数据,如果所述状态数据包括心跳数据,确定所述区块链网络运行正常;如果所述状态数据包括告警数据,确定所述区块链网络运行异常,并根据告警数据指示的异常数据进行故障排查。
在所述技术方案中,利用桥接设备周期性采集自检数据以及所述区块链网络中与所述桥接设备对应的节点设备的运行数据,并根据所述自检数据以及所述运行数据,确定自身运行状态以及所述节点设备的运行状态,然后将表征自身运行状态与所述节点设备的运行状态的状态数据发布至所述区块链,以使监控设备从所述区块链中获取所述状态数据,并基于所述状态数据进行区块链业务系统运行状态监控。因此,可以在桥接设备进行业务子系统与区块链网络桥接的过程中实现对区块链业务系统的状态监控,提升了发现异常状态的及时性,从而提升故障解决效率,提升客户体验。
在一些实施例中,当所述监控设备在解析出表征自身运行状态与所述节点设备的运行状态的状态数据后,可以将该状态数据发送至监控平台。所述监控平台对所述状态数据进行解析,获取心跳数据或告警数据;如果所述状态数据包括心跳数据,确定所述区块链网络运行正常;如果所述状态数据包括告警数据,确定所述区块链网络运行异常,并根据告警数据指示的异常数据进行故障排查。
由此一方面可以由监控平台对区块链业务系统运行状态进行监控,并及时处理异常;另一方面,可以将运行状态监控与区块链业务分在两个系统中进行,保证业务之间不会进行相互干扰。例如,故障排查人员在查阅区块链业务系统运行状态信息时,仅需访问监控平台即可,无需访问桥接设备,进而保证区块链业务的保密性与安全性。
在一些实施例中,如果所述监控平台在预设时长内未收到目标桥接设备对应的状态数据,发起针对所述目标设备以及与所述目标设备对应的节点设备的排查请求以进行故障排查。
所述目标桥接设备可以是指所述监控平台监控的区块链业务系统中的任一桥接设备。
所述预设时长可以是根据业务需求进行设定的时长。
在所述监控平台中可以在接收到目标桥接设备的状态数据后,可以启动定时器,其中,所述定时器设定的时长为所述预设时长。所述监控平台可以判断在定时器时间达到后,是否收到所述目标桥接设备新发送的状态数据。如果收到则确定状态数据表征的设备运行状态。反之,则可以确认所述目标桥接设备或与所述目标桥接设备连接的节点设备可能发生断链,进而可以根据所述目标桥接设备以及所述节点设备的相关信息(例如设备位置信息,编号信息等)通过诸如短息或电话通知的方式告知排查人员进行设备故障排查。
由此监控平台可以及时的发现诸如设备断链等异常并及时进行处理,从而提升故障解决效率,提升客户体验。
在一些实施例中,为了提升数据保密性,防止因数据泄露带来的损失,在执行S206时,可以对所述状态数据进行加密,得到加密后的状态数据;然后再将加密后的状态数据发布至所述区块链。
在一些实施例中,可以通过硬件加密的方式进行加密。所述桥接设备中可以搭载TEE(Trusted Execution Environment,可信安全执行环境)。该TEE中可以搭载与监控设备对应的加密秘钥。所述TEE中搭载了与桥接客户端对应的可信程序。当所述桥接客户端在构建状态数据时,可以通过所述加密秘钥对所述原始状态数据进行加密,得到加密后的状态数据,然后再将加密后的状态数据发布至所述区块链。
所述监控设备中搭载的TEE中包括与监控设备对应解密秘钥。所述监控设备在监听到加密状态数据后,可以通过解密秘钥对该状态数据进行解密,从而可以根据状态数据进行区块链业务系统运行状态的监控。
在所述实施例中,由于TEE中的秘钥对外是不可知的,因此通过该种方式加密可以增加数据传输安全性,防止因数据泄露带来的损失。另外,当所述监控设备发生诸如被黑客攻击等危害时,还可以向区块链发起账户注销交易,以清除TEE中加载的加密秘钥和解密秘钥,进而使监控设备中的状态数据无法被解密,从而通过一种双保险措施,进一步加强数据保密性与安全性。
在一些实施例中,可以通过信封加密方式进行数据加密。当桥接客户端获取到状态数据后,可以利用与所述桥接设备对应的主密钥生成密文密钥;然后利用所述密文密钥对所述状态数据进行加密,得到密文数据;之后,通过与所述监控设备对应的公钥,对所述密文数据和所述密文密钥对应的组合数据进行加密,得到加密后的状态数据,并将加密后的状态数据发布至所述区块链。
所述组合数据,是指将密文数据与密文秘钥组合而成的数据。例如,可以将密文秘钥添加至密文数据之前形成组合数据。
所述监控设备在监听到该加密状态数据后,可以利用自身持有的私钥对加密状态数据进行解密,得到组合数据。然后可以对组合数据进行拆解得到密文秘钥和密文数据。之后可以使用密文秘钥对所述密文数据进行解密,得到状态数据,进而实现根据状态数据进行区块链业务系统运行状态的监控。
在所述实施例中,通过信封加密的方式,可以将状态数据定向发送至监控设备,并只能让监控设备进行解密,进而实现数据安全传输,防止因数据泄露带来的损失。
以下结合对汇款业务系统进行监控的场景进行实施例说明。
请参见图4,图4为本申请示出的一种运行状态监控场景示意图。
如图4所示,汇款业务系统包括业务子系统与区块链网络(以下简称区块链)两部分。所述业务子系统可以包括若干提供汇款服务的业务节点设备,和与区块链网络进行桥接的桥接设备。所述区块链网络包括多个相互连接的节点设备。图4未示出业务设备。
在本例中,所述桥接设备通过桥接客户端采集桥接设备与区块链中的节点设备的运行数据。在本例中,所述桥接客户端与所述节点设备中搭载的通信端通过TCP协议进行连接。在本例中,为了保证异常发现及时性,桥接客户端与监控唯一节点设备。
所述业务子系统包括的桥接设备k被指定为监控设备。所述监控设备中搭载了监控客户端。所述监控设备可以订阅区块链中发布的状态报告事件,所述区块链中的节点设备在监听到状态报告事件后可以将该事件发送至监控客户端以由客户端对该事件进行解析获取表征桥接设备和节点设备运行状态的状态数据。所述监控设备在区块链中完成注册后可以获取专属公私钥对。其中,公钥可以广播给业务系统中的各设备。
所述监控设备与监控平台通信连接,所述监控设备可以将获取的状态数据发送至监控平台,以由监控平台对业务系统运行状态进行统一监控。
请参见图5,图5为本申请示出的一种运行状态监控过程交互图。
如图5所示,业务子系统中的任意桥接客户端(以下以客户端1为例进行说明)可以执行S51,周期性的采集桥接设备1的自检数据和对应节点设备1的运行数据。在本例中,所述自检数据为心跳数据。所述运行数据除了包括节点设备1的心跳数据外还包括所述区块链网络中与该节点设备1连接的节点设备1的第一标识集合。
然后所述客户端可以执行S52,根据所述自检数据和运行数据确定桥接设备1和节点设备1的运行状态。
在一些实施例中,所述客户端可以将所述第一标识集合中的各第一标识分别与维护的第二标识集合中的各第二标识进行匹配;其中,所述第二标识集合包括所述区块链网络中,与所述节点设备1应当连接的节点设备1的第二标识。
如果各第一标识与各第二标识一一匹配,确定所述节点设备1运行正常;
反之,确定所述节点设备1运行异常,并根据所述各第二标识集合中,与所述第一标识集合中的第一标识不匹配的第二标识,构建告警数据。
在本例中,假设桥接设备1运行正常,则客户端可以检测到桥接设备1发送的心跳数据。假设节点设备1与节点设备M断开连接,则客户端通过将第一标识集合和维护的第二标识集合中的标识进行匹配,可以确定节点设备M的标识匹配不成功,则可以将节点设备M和所述节点设备1的设备标识打包至告警数据,并添加异常为断开连接的标识。
在得到告警数据后,所述客户端可以执行S53,利用监控设备对应的公钥,以及自身对应的主密钥,对该告警数据进行信封加密,得到加密告警数据。
然后可以执行S54,将该加密告警数据打包成事件(状态报告事件)存证交易发布至区块链中。
所述区块链中的节点设备1可以执行S55,对事件存证交易进行共识,并在共识通过后将该加密告警数据以事件打包至区块进行发布。
所述节点设备1中可以部署用于事件监听的SDK,所述节点设备1可以执行S56,通过SDK周期性的从区块链中获取新生成的区块,并对各区块进行解析,如果监听到状态报告事件后,可以将该事件发送至订阅该事件的监控客户端。
所述监控客户端在获取订阅事件后可以执行S57,对该事件进行解析获取加密告警数据,并利用持有私钥对加密告警数据进行解密得到密文数据和密文密码。之后可以利用密文密码对密文数据进行解密,得到告警数据。
之后所述监控客户端可以执行S58,将告警数据发送至监控平台。
所述监控平台可以执行S59,对告警数据进行处理得到所述客户端对应的桥接设备1和节点设备1的工作状态,并进行状态记录。
在本例中,监控平台通过对告警数据解析,可以根据节点设备M的标识,以及表征断开连接的标识可知,节点设备M与该节点设备1之间的断开了连接,因此可以根据节点设备M与该节点设备1所处的位置信息,编号信息等信息,生成告警信息,并以短信或电话的形式通知响应的故障排查人员。由此通过利用桥接设备实现对桥接设备和节点设备的运行状态的采集与上报,并利用监控平台进行运行状态解析与报警可以及时的发现区块链业务系统出现的异常,并有针对性的作出排查处理,进而提升故障解决效率,提升客户体验。
在本例中,桥接设备与节点设备通过TCP协议连接。如果所述桥接设备检测到与节点设备之间的TCP连接异常,则根据异常数据构建告警数据并发布至所述区块链,以使监控设备从所述区块链中获取所述告警数据,并基于所述告警数据进行故障排查。
在汇款业务中,需要通过桥接客户端向区块链网络发布交易,以推进汇款业务的正常运行,如果由于桥接客户端与节点设备之间的连接出现诸如丢包,不稳定,单向导通等异常时,造成汇款业务数据的丢失这将造成非常严重的后果。在本例中所述桥接客户端可以周期性检测与节点设备之间的TCP连接状态,并在出现异常时,及时的向构建告警数据上报区块链,以使监控设备可以获取告警数据后发送至监控平台进行故障排除。由此可以避免由于桥接设备与节点设备之间的连接不稳定导致的业务数据丢失等问题,确保了业务正常进行。
与所述任一实施例相对应的,本申请还提出一种运行状态监控装置。该装置应用于区块链业务系统中的桥接设备。
请参见图6,图6为本申请示出的一种运行状态监控装置的结构示意图。
如图6所示,所述装置60可以包括:
采集模块61,周期性采集自检数据以及所述区块链网络中与所述桥接设备对应的节点设备的运行数据;
确定模块62,根据所述自检数据以及所述运行数据,确定自身运行状态以及所述节点设备的运行状态;
发布模块63,将表征自身运行状态与所述节点设备的运行状态的状态数据发布至所述区块链,以使监控设备从所述区块链中获取所述状态数据,并基于所述状态数据进行区块链业务系统运行状态监控。
在示出的一些实施例中,如果所述自身运行状态与所述节点设备对应的运行状态均正常,所述状态数据包括表征运行状态正常的心跳数据;如果所述自身运行状态与所述节点设备对应的运行状态中的至少一项为异常,所述状态数据包括表征运行状态异常的告警数据。
在示出的一些实施例中,所述发布模块63用于:
对所述状态数据进行加密,得到加密后的状态数据;
将加密后的状态数据发布至所述区块链。
在示出的一些实施例中,所述发布模块63用于:
利用与所述桥接设备对应的主密钥生成密文密钥;
利用所述密文密钥对所述状态数据进行加密,得到密文数据;
通过与所述监控设备对应的公钥,对所述密文数据和所述密文密钥对应的组合数据进行加密,得到加密后的状态数据。
在示出的一些实施例中,所述发布模块63用于:
根据表征自身运行状态与所述节点设备的运行状态的状态数据,生成状态报告事件;
将所述状态报告事件发布至所述区块链,以使所述区块链中的节点设备在完成共识后,将所述状态报告事件中发送至订阅该状态报告事件的监控设备。
在示出的一些实施例中,所述区块链网络部署了智能合约;
所述发布模块63用于:向所述区块链网络发送智能合约调用交易;其中,所述调用交易包括所述状态数据;以使所述区块链网络中的节点设备在对该交易共识后,调用所述智能合约包括的事件生成逻辑,基于所述状态数据生成状态报告事件。
在示出的一些实施例中,所述运行数据包括所述区块链网络中与所述节点设备连接的节点设备的第一标识集合;所述确定模块62包括:
将所述第一标识集合中的各第一标识分别与维护的第二标识集合中的各第二标识进行匹配;其中,所述第二标识集合包括所述区块链网络中,与所述节点设备应当连接的节点设备的第二标识;
如果各第一标识与各第二标识一一匹配,确定所述节点设备运行正常;
反之,确定所述节点设备运行异常,并根据所述各第二标识集合中,与所述第一标识集合中的第一标识不匹配的第二标识,构建告警数据。
在示出的一些实施例中,所述桥接设备与所述节点设备通过TCP协议连接;所述装置60还包括:
告警模块,若检测到与所述节点设备之间的TCP连接异常,根据异常数据构建告警数据并发布至所述区块链,以使监控设备从所述区块链中获取所述告警数据,并基于所述告警数据进行故障排查。
在示出的一些实施例中,所述基于所述状态数据进行区块链业务系统运行状态监控,包括:
将所述状态数据发送至监控平台;
所述监控平台对所述状态数据进行解析,获取心跳数据或告警数据;
如果所述状态数据包括心跳数据,确定所述区块链网络运行正常;
如果所述状态数据包括告警数据,确定所述区块链网络运行异常,并根据告警数据指示的异常数据进行故障排查。
在示出的一些实施例中,所述装置60还包括:
故障排查模块,如果所述监控平台在预设时长内未收到目标桥接设备对应的状态数据,发起针对所述目标设备以及与所述目标设备对应的节点设备的排查请求以进行故障排查。
本申请示出的运行状态监控装置的实施例可以应用于电子设备上。相应地,本申请公开了一种电子设备,所述电子设备部署于区块链。该设备可以包括:处理器。
用于存储处理器可执行指令的存储器。
其中,所述处理器被配置为调用所述存储器中存储的可执行指令,实现如所述任一实施例示出的运行状态监控方法。
请参见图7,图7为本申请示出的一种电子设备的硬件结构示意图。
如图7所示,该电子设备可以包括用于执行指令的处理器,用于进行网络连接的网络接口,用于为处理器存储运行数据的内存,以及用于存储汇款装置对应指令的非易失性存储器。
其中,运行状态监控装置的实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
可以理解的是,为了提升处理速度,运行状态监控装置对应指令也可以直接存储于内存中,在此不作限定。
本申请提出一种计算机可读存储介质。所述存储介质存储有计算机程序,所述计算机程序用于执行所述任一实施例示出的运行状态监控方法。
本领域技术人员应明白,本申请一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本申请一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)所述实施的计算机程序产品的形式。
本申请中的“和/或”表示至少具有两者中的其中一个,例如,“A和/或B”可以包括三种方案:A、B、以及“A和B”。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
所述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、可以包括本申请中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本申请中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体所述以被数据处理装置执行或控制参数处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号所述,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本申请中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机可以包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件可以包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将可以包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质可以包括所有形式的非易失性存储器、媒介和存储器设备,例如可以包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本申请包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本申请内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,所述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上仅为本申请一个或多个实施例的较佳实施例而已,并不用以限制本申请一个或多个实施例,凡在本申请一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请一个或多个实施例保护的范围之内。