首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 用于管理区块链节点的计算资源的方法、设备和系统

用于管理节点的计算资源的方法、设备和系统

阅读:1发布:2022-11-29

专利汇可以提供用于管理节点的计算资源的方法、设备和系统专利检索,专利查询,专利分析的服务。并且本公开的 实施例 涉及管理 区 块 链 节点 的计算资源的方法、设备及系统。在区块链节点处安装并执行状态监控 智能合约 ,该状态监控智能合约被配置用于监控至少一个区块链节点的计算资源的利用状态。根据来自区块链节点的计算资源的利用状态,管理 服务器 可以向区块链节点相应的用户发送警告,还可以确定对计算资源的调整量,并生成对计算资源的配置 请求 。区块链节点基于该配置请求,执行对计算资源的重新配置。本公开的实施例通过在状态监控中有效利用智能合约,提供了公开透明、安全可靠、易于升级的区块链节点状态监控的解决方案,并基于该监控方案实现了区块链节点处自动的计算资源的按需分配和重新配置。,下面是用于管理节点的计算资源的方法、设备和系统专利的具体信息内容。

1.一种用于管理节点的计算资源的方法,包括:
在管理服务器处,发送用以指令至少一个区块链节点安装状态监控智能合约请求,所述状态监控智能合约被配置用于监控所述至少一个区块链节点的计算资源的利用状态;
响应于接收到包括所述至少一个区块链节点的所述计算资源的所述利用状态的至少一个监控报告,执行以下至少一项:
向与所述至少一个区块链节点相关联的用户发送警告,所述警告至少指示所述至少一个区块链节点的所述计算资源的所述利用状态;以及
基于所述至少一个监控报告,对所述计算资源进行配置。
2.根据权利要求1所述的方法,其中对所述计算资源进行配置包括:
基于所述至少一个监控报告,确定对所述计算资源的调整量;
基于所述调整量,生成针对所述计算资源的配置请求;以及
向所述至少一个区块链节点发送所述配置请求。
3.根据权利要求2所述的方法,其中所述计算资源包括用于区块链数据的存储容量,并且其中确定所述调整量包括:
至少基于所述至少一个监控报告所指示的所述存储容量的利用状态,确定待分配给所述至少一个区块链节点的附加存储设备。
4.根据权利要求3所述的方法,其中生成所述配置请求包括:
确定所述至少一个区块链节点的现有存储设备的逻辑卷;以及
基于所述附加存储设备的类型,生成用以指示将所述附加存储设备与所确定的逻辑卷相关联的配置请求。
5.根据权利要求2所述的方法,其中所述计算资源包括用于区块链数据的存储容量,并且其中确定所述调整量包括:
至少基于所述至少一个监控报告所指示的所述存储容量的利用状态,确定所述至少一个区块链节点的现有存储设备中待被分配以供使用的附加存储容量。
6.根据权利要求2所述的方法,其中所述计算资源包括所述至少一个区块链节点处的网络带宽,并且其中确定所述调整量包括:
至少基于所述至少一个监控报告所指示的所述网络带宽的利用状态,确定针对所述至少一个区块链节点的网络带宽的调整量。
7.根据权利要求2所述的方法,其中所述管理服务器包括基于平台的区块链即服务(BaaS)管理服务器,并且其中发送所述配置请求包括:
利用所述云平台的应用程序接口,向所述至少一个区块链节点发送所述配置请求。
8.根据权利要求2所述的方法,还包括:
基于所述计算资源的所述调整量,确定与所述至少一个区块链节点相关联的附加计费。
9.根据权利要求1所述的方法,还包括:
确定对所述计算资源进行配置是否被所述用户许可;以及
响应于对所述计算资源进行配置被所述用户许可,执行对所述计算资源的配置。
10.一种用于管理区块链节点的计算资源的方法,包括:
在区块链节点处,执行状态监控智能合约,以获取所述区块链节点处的计算资源的利用状态;
向管理服务器报告所述利用状态,以使得所述管理服务器生成针对所述计算资源的配置请求,所述配置请求至少指示对所述计算资源的调整量;以及
响应于接收到所述配置请求,重新配置所述计算资源。
11.根据权利要求10所述的方法,其中所述计算资源包括用于区块链数据的存储容量并且所述配置请求指示待扩展的附加网络存储设备,其中所述重新配置包括:
将所指示的附加网络存储设备配置到一逻辑卷,所述逻辑卷与所述区块链节点处的现有网络存储设备相关联。
12.根据权利要求10所述的方法,其中所述计算资源包括用于区块链数据的存储容量并且所述配置请求指示待扩展的附加本地存储设备,其中所述重新配置包括:
将所指定的附加本地存储设备配置到一逻辑卷,所述逻辑卷与所述区块链节点处的现有本地存储设备相关联。
13.根据权利要求10所述的方法,其中所述计算资源包括用于区块链数据的存储容量并且所述配置请求指示待扩展的附加存储容量,其中所述重新配置包括:
从所述区块链节点的现有存储设备中分配所述附加存储容量,以供所述区块链节点使用。
14.根据权利要求10所述的方法,其中所述计算资源包括所述区块链节点处的网络带宽并且所述配置请求指示网络带宽的调整量,其中所述重新配置包括:
调整所述区块链节点处的所述网络带宽以与所述调整量适配。
15.一种用于管理区块链节点的计算资源的设备,包括:
处理器;以及
存储器,耦合至所述处理器并且存储有指令,所述指令在由所述处理器执行时使所述设备执行包括以下的动作:
在管理服务器处发送用以指令至少一个区块链节点安装状态监控智能合约的请求,所述状态监控智能合约被配置用于监控至少一个区块链节点的计算资源的利用状态;
响应于接收到包括所述至少一个区块链节点的所述计算资源的所述利用状态的至少一个监控报告,执行以下至少一项:
向与所述至少一个区块链节点相关联的用户发送警告,所述警告至少指示所述至少一个区块链节点的所述计算资源的所述利用状态;以及
基于所述至少一个监控报告,对所述计算资源进行配置。
16.根据权利要求15所述的设备,其中对所述计算资源进行配置包括:
基于所述至少一个监控报告,确定对所述计算资源的调整量;
基于所述调整量,生成针对所述计算资源的配置请求;以及
向所述至少一个区块链节点发送所述配置请求。
17.根据权利要求16所述的设备,其中所述计算资源包括用于区块链数据的存储容量,并且其中确定所述调整量包括:
至少基于所述至少一个监控报告所指示的所述存储容量的利用状态,确定待分配给所述至少一个区块链节点的附加存储设备。
18.根据权利要求17所述的设备,其中生成所述配置请求包括:
确定所述至少一个区块链节点的现有存储设备的逻辑卷;以及
基于所述附加存储设备的类型,生成用以指示将所述附加存储设备与所确定的逻辑卷相关联的配置请求。
19.根据权利要求16所述的设备,其中所述计算资源包括用于区块链数据的存储容量,并且其中确定所述调整量包括:
至少基于所述至少一个监控报告所指示的所述存储容量的利用状态,确定所述至少一个区块链节点的现有存储设备中待被分配以供使用的附加存储容量。
20.根据权利要求16所述的设备,其中所述计算资源包括所述至少一个区块链节点处的网络带宽,并且其中确定所述调整量包括:
至少基于所述至少一个监控报告所指示的所述网络带宽的利用状态,确定针对所述至少一个区块链节点的网络带宽的调整量。
21.根据权利要求16所述的设备,其中所述管理服务器包括基于云平台的区块链即服务(BaaS)管理服务器,并且其中发送所述配置请求包括:
利用所述云平台的应用程序接口,向所述至少一个区块链节点发送所述配置请求。
22.根据权利要求16所述的设备,所述动作还包括:
基于所述计算资源的所述调整量,确定与所述至少一个区块链节点相关联的附加计费。
23.根据权利要求15所述的设备,所述动作还包括:
确定对所述计算资源进行配置是否被所述用户许可;以及
响应于对所述计算资源进行配置被所述用户许可,执行对所述计算资源的配置。
24.一种用于管理监控区块链节点的计算资源的设备,包括:
处理器;以及
存储器,耦合至所述处理器并且存储有指令,所述指令在由所述处理器执行时使设备执行包括以下的动作:
在区块链节点处执行状态监控智能合约,以获取所述区块链节点处的计算资源的利用状态;
向管理服务器报告所述利用状态,以使得所述管理服务器生成针对所述计算资源的配置请求,所述配置请求至少指示对所述计算资源的调整量;以及
响应于接收到所述配置请求,重新配置所述计算资源。
25.根据权利要求24所述的设备,其中所述计算资源包括用于区块链数据的存储容量并且所述配置请求指示待扩展的附加网络存储设备,其中所述重新配置包括:
将所指示的附加网络存储设备配置到一逻辑卷,所述逻辑卷与所述区块链节点处的现有网络存储设备相关联。
26.根据权利要求24所述的设备,其中所述计算资源包括用于区块链数据的存储容量并且所述配置请求指示待扩展的附加本地存储设备,其中所述重新配置包括:
将所指示的附加本地存储设备配置到一逻辑卷,所述逻辑卷与所述区块链节点处的现有本地存储设备相关联。
27.根据权利要求24所述的设备,其中所述计算资源包括区块链数据的存储容量并且所述配置请求指示待扩展的附加存储容量,其中所述重新配置包括:
从所述区块链节点的现有存储设备中分配所述附加存储容量,以供所述区块链节点使用。
28.根据权利要求24所述的设备,其中所述计算资源包括所述区块链节点处的网络带宽并且所述配置请求指示网络带宽的调整量,其中所述重新配置包括:
调整所述区块链节点处的所述网络带宽以与所述调整量适配。
29.一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求1-9中任一项所述的方法。
30.一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求10-14中任一项所述的方法。

说明书全文

用于管理节点的计算资源的方法、设备和系统

技术领域

[0001] 本公开的实施例总体上涉及信息技术领域,并且具体地,涉及用于管理区块链节点的计算资源的方法、设备和系统。

背景技术

[0002] 区块链是一种源自比特币的去中心化分布式记账技术,其通过将加密区块数据按照时间顺序叠加而生成持久的不可修改的记录,并且将记录存储在区块链网络的各个节点中,使得参与到区块链中的各个节点共同维护一个可靠数据库。由此,区块链具有去中心化、不可篡改、过程透明可追踪等技术优势,其被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。
[0003] 根据区块链参与方的不同,区块链通常被分为公有链、联盟链和私有链三种类型。公有链对外开放,用户无需任何授权就可以访问区块链网络和区块数据,发起各种交易。联盟链限制了只有联盟中的成员才能参与,区块链上的操作权限根据联盟定制的相关规则来确定。私有链一般在私有组织内部使用,区块链上的操作权限根据私有组织的自行规定执行。
[0004] 在诸多应用场景中,尤其是企业级的区块链(诸如联盟链和私有链)使用场景中,区块链的企业用户及时掌握其区块链各个节点的服务状态将是非常有利的。通过所掌握的区块链节点的服务状态的知识,使企业用户优化区块链上的各种应用成为可能。
[0005] 一般而言,区块链节点的各种应用及相应的操作的实现依赖于其可以利用的计算资源。这些可以利用并且可以被配置的计算资源例如可以包括数据存储设备、易失性存储器、CPU、网络带宽等。如果企业用户能够获知与区块链节点的计算资源的利用状态有关的信息,这将支持企业用户根据需要而成本有效地配置区块链节点所利用的计算资源。
[0006] 有鉴于此,期望的是提供一种基于公开透明、安全可靠的区块链节点状态监控而管理区块链节点处的计算资源的解决方案。发明内容
[0007] 总体上,本公开的实施例提出了用于管理区块链节点的计算资源的方法、设备和系统。
[0008] 在本公开的第一方面,提供一种用于管理区块链节点的计算资源的方法。该方法包括:在管理服务器处,发送用以指令至少一个区块链节点安装状态监控智能合约请求,状态监控智能合约被配置用于监控至少一个区块链节点的计算资源的利用状态;响应于接收到包括至少一个区块链节点的计算资源的利用状态的至少一个监控报告,执行以下至少一项:向与至少一个区块链节点相关联的用户发送警告,警告至少指示至少一个区块链节点的计算资源的利用状态;以及基于至少一个监控报告,对计算资源进行配置。在某些实施例中,对计算资源进行配置包括:基于至少一个监控报告,确定对计算资源的调整量;基于调整量,生成针对计算资源的配置请求;以及向区块链节点发送配置请求。
[0009] 在本公开的第二方面,提供一种用于管理监控区块链节点的计算资源的方法。该方法包括:在区块链节点处,执行状态监控智能合约,以获取区块链节点处的计算资源的利用状态;向管理服务器报告利用状态,以使得管理服务器生成针对计算资源的配置请求,配置请求至少指示对计算资源的调整量;以及响应于接收到配置请求,重新配置计算资源。
[0010] 根据本公开的第三方面,提供一种用于管理区块链节点的计算资源的设备,该设备包括:处理器;以及存储器,耦合至处理器并且存储有指令,指令在由处理器执行时使设备执行包括以下的动作:在管理服务器处发送用以指令至少一个区块链节点安装状态监控智能合约的请求,状态监控智能合约被配置用于监控至少一个区块链节点的计算资源的利用状态;响应于接收到包括至少一个区块链节点的计算资源的利用状态的至少一个监控报告,执行以下至少一项:向与至少一个区块链节点相关联的用户发送警告,警告至少指示至少一个区块链节点的计算资源的利用状态;以及基于至少一个监控报告,对计算资源进行配置。。
[0011] 根据本公开的第四方面,提供一种用于管理监控区块链节点的计算资源的设备。该设备包括:处理器;以及存储器,耦合至处理器并且存储有指令,指令在由处理器执行时使设备执行包括以下的动作:在区块链节点处,执行状态监控智能合约,以获取区块链节点处的计算资源的利用状态;向管理服务器报告利用状态,以使得管理服务器生成针对计算资源的配置请求,配置请求至少指示对计算资源的调整量;以及响应于接收到配置请求,重新配置计算资源。
[0012] 根据本公开的第五方面,提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行根据本公开的第一方面和第二方面所描述的方法。附图说明
[0013] 结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
[0014] 图1示出了BaaS平台系统架构的示意图;
[0015] 图2示出了区块链节点状态监控系统的示意图;
[0016] 图3示出了根据本公开的实施例的基于智能合约的区块链节点的示意性框图
[0017] 图4示出了根据本公开实施例的BaaS平台区块链节点的计算资源管理过程的示例流程图
[0018] 图5示出了根据本公开实施例的可以在管理服务器处执行的方法的示例流程图;
[0019] 图6示出了根据本公开一个实施例的存储容量扩展过程的示例流程图;
[0020] 图7示出了根据本公开另一实施例的存储容量扩展过程的示例流程图;
[0021] 图8示出了根据本公开实施例的可以在区块链节点处执行的方法的示例流程图;以及
[0022] 图9示出了根据本公开的一些实施例的设备的框图。

具体实施方式

[0023] 现将结合附图对本公开的实施例进行具体的描述。应当注意的是,附图中对相似的部件或者功能组件可能使用同样的数字标示。所附附图仅仅旨在说明本公开的实施例。本领字段的技术人员可以在不偏离本公开精神和保护范围的基础上从下述描述得到替代的实施方式。
[0024] 如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以被理解为“至少一个其它实施例”。此外,在下文描述通信交互过程中所使用的“传输”、“发送”或“接收”不限于直接的通信过程,也旨在包括经由中间节点的通信过程。
[0025] 如前所述,对于面向企业的区块链,企业用户获知区块链节点的状态将是有利的。区块链节点的状态例如是节点的服务状态、计算资源的负荷或利用状态等。计算资源的利用状态例如包括CPU的利用率、数据存储设备的利用率、易失性存储器的利用状态、存储输入/输出(I/O)效率、网络带宽等。基于区块链节点状态,可以优化区块链上的各种应用。
[0026] 具体而言,区块链节点在各种应用中,需要通过执行复杂的计算操作(例如哈希计算)来生成信息、对业务进行确认等。例如,区块链节点需要通过哈希计算对区块链编号进行确认,通过回溯确定交易清单有效等。同时,区块链存储的记录数据会不断增长,占用区块链节点的存储空间。因此,区块链节点的操作(或计算)行为的效率与节点处的计算资源的配置有着密切的关系。通过监控区块链各节点的状态来管理区块链的计算资源,不仅能够动态地配置资源,有效提高区块链应用的性能,而且还能够为企业用户提供成本有效的应用解决方案。
[0027] 目前,基于的区块链即服务(BaaS,Blockchain as a Service)成为区块链技术的一个应用热点。用户(例如各个企业)通过对BaaS服务提供商所提供的BaaS平台进行设置,使其在云上创建相应的虚拟机实例并且安装部署多节点的区块链,从而获得符合自己应用需求的区块链,以高效地开发区块链业务。BaaS平台不仅降低了安装、配置、管理以及使用区块链的难度和成本,还能够为用户提供个性化的服务。
[0028] 本文中仅以基于云平台的实施例来示例说明区块链节点状态监控方案。本领域技术人员可以理解,本公开的实施例并不限于应用于基于私有云、公有云或者非基于云平台的区块链。
[0029] 图1示出了BaaS平台系统100的示意架构图。如图所示,BaaS平台系统100基于云110而架设,其包括BaaS平台120、多个区块链网络130、140、150以及示意示出的存储装置
170和区块链用户160。BaaS平台120可以为用户160提供公有链、联盟链或私有链服务,也充当面向用户160的户。BaaS平台120还例如提供数据管理和数据分析等多种功能,从而满足用户特定的色和行业需求。存储装置170用于存储BaaS平台系统100的各种配置数据、用户信息、日志数据等等。
[0030] 区块链网络130、140和150可以是用户特定的,各自包括若干个区块链节点。在云应用环境中,各区块链节点可以对应于虚拟机实例,虚拟机实例中运行相应的节点应用程序。各个区块链网络具有相应的区块链应用,诸如金融、征信、物联网、经济贸易结算、资产管理等领域的各种应用。
[0031] 需要注意的是,尽管区块链网络130、140、150被示意为各自独立,但各区块链网络也可以包括共同的区块链节点。例如,某个区块链节点可以既属于区块链网络130又属于区块链网络140。另外,图中区块链网络、用户以及存储装置的数量仅是示意,其可以是任意数量。
[0032] BaaS平台的重要功能之一是区块链节点的状态监控,以帮助用户及时掌握区块链各个节点的状态,诸如服务状态以及CPU、内存、I/O等的计算资源的负荷。
[0033] 图2示出了现有的区块链节点状态监控系统200的示意图。系统200可以是基于云210而架设,其包括状态监控服务器220及多个区块链节点(例如,区块链节点230和240)。
[0034] 在各个区块链节点上安装有监控代理,例如分别在区块链节点230和240中安装监控代理235和245。监控代理235和245用于收集节点的状态,并且将状态定时汇报给状态监控服务器220。可替代地,状态监控服务器220可以定时向监控代理235和245收集状态。
[0035] 如上的这种监控方案存在着信任和安全问题。一般而言,企业对区块链节点的安全性和隐私保护的要求非常高,而BaaS平台提供的监控代理对企业用户来说是不透明的应用程序,监控代理难于受用户信任而实施。另一方面,直接运行于区块链节点中的监控代理容易造成安全隐患,给用户的数据安全、隐私安全带来危险。此外,在需要升级和维护监控代理的情况下,例如发现监控代理的漏洞或者错误,升级和维护也非常不方便。
[0036] 有鉴于此,本公开的实施例提出基于智能合约(Smart Contract)的区块链节点状态监控以及基于状态监控而管理区块链节点处的计算资源的解决方案。智能合约是一套以数字形式定义的承诺,包括合约参与方约定的权利和义务。数字形式是指承诺需要以可读代码形式写入机器中,只要参与方达成协定,智能合约建立的权利和义务即由机器或网络系统执行得以保证。
[0037] 基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对智能合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明、可跟踪且不可攥改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。
[0038] 图3示出了根据本公开的实施例的基于智能合约的区块链节点300的示意框图。在本实施例中,区块链节点300包括区块链服务模块320以及计算资源管理模块330。可以理解,为了便于描述本公开的实施例,未具体示出和描述所熟知的区块链节点300的其他部件和过程以免不必要地模糊本公开实施例的方面。
[0039] 区块链服务模块320利用区块链产生的数据,提供基于区块链的搜索查询、任务提交等一系列操作服务。区块链服务模块320还可以通过多个智能合约来提供区块链服务。具体地,由智能合约引擎模块323验证和运行各个智能合约,将运行结果写入区块链区块(如果智能合约有写操作),并返回给区块链应用。为了防止恶意或者错误的智能合约对区块链节点产生破坏,智能合约引擎模块323将智能合约放置在沙盒(sandbox)321中运行,使得智能合约没有权限访问沙盒外部的资源和信息。
[0040] 在本示例中,区块链服务模块320还通过状态监控智能合约322来提供节点状态监控服务。为此,对智能合约引擎模块323进行扩展,提供状态采集接口324,并且使得状态监控智能合约322在沙盒321中也可以调用这些接口,从而获取区块链节点300的状态。状态采集接口324例如可以是用于获取CPU使用率、存储器使用率等等的接口。取决于区块链节点的智能合约引擎的具体实现,这些状态采集接口324可以是函数调用接口,也可以是远程服务(例如,HTTP RESTful)调用接口,或者其他方式。
[0041] 上层区块链应用(例如状态监控服务器)可以将状态监控智能合约322安装部署到区块链节点300上,并且其可以发送指令(例如,通过远程调用接口)以在区块链节点300处执行状态监控智能合约322。由智能合约引擎模块324来验证和运行状态监控智能合约322。状态监控智能合约322可以调用状态采集接口323,读取节点状态并返回给状态监控服务器
320。可选地,取决于具体的状态监控业务需求,如果状态监控智能合约322有写操作,还可以将状态数据写入区块链中,在区块链中留下不可篡改的历史凭证。
[0042] 需要注意的是,为了保障状态采集接口324的安全性和可信任性,这些接口可以是经标准化的。由于标准状态采集接口和智能合约引擎都是区块链系统的功能模块,例如,通过开放状态采集接口的定义和开发文档,使得开发者和用户均可以获知、验证并保证这些功能模块的安全性。
[0043] 此外,在标准状态采集接口324安全可靠的情况下,由于没有对沙盒321开放其他权限,因而状态监控智能合约322在沙盒321中运行对区块链节点300而言仍然是安全的。
[0044] 计算资源管理模块330被配置用于管理区块链节点300处的计算资源。根据本公开的实施例,当所监测的区块链节点300的计算资源达到预定准则或条件,计算资源管理模块330可以根据配置要求实现对区块链节点300处的计算资源的配置或重新配置。下文将根据具体实施例详细描述计算资源管理模块330的操作。
[0045] 作为示例,图3中示出了计算资源管理模块330可以包括存储容量管理模块331、网络带宽管理模块332、CPU内核管理模块333以及存储读写管理模块334,其分别实现对相应计算资源的管理和配置。
[0046] 可以看到,本公开的实施例还提供安全、高效的状态监控解决方案的更新和升级。一方面,在状态监控智能合约需要升级的情况下,由于这种升级和普通的智能合约升级相同,因而可以复用区块链平台原有的智能合约升级方案。将经用户重新审核签名的更新后的状态监控智能合约重新安装部署到区块链节点上,以实现状态监控智能合约的升级。另一方面,在标准系统状态采集接口或者其内部实现需要升级的情况下,由于这种升级是区块链服务软件的升级,可以遵循原有的服务软件升级方案。
[0047] 为了便于理解本公开的实施例,以BaaS平台的具体应用为例,图4示出了根据本公开实施例的BaaS平台区块链节点的计算资源管理过程400的示例流程图。
[0048] 在图4中示出了BaaS平台用户450、BaaS平台455、BaaS平台状态监控服务器460、智能合约引擎465、状态监控智能合约470和计算资源管理模块475。可以理解,仅为了促进描述而将每个对象或功能模块示出,其中某些对象或功能模块可以存在于同一个物理实体中,或者某些对象或功能模块可以存在于基于云的虚拟环境中。例如,BaaS平台状态监控服务器460可以与BaaS平台455均是物理实体并且可以处于同一物理实体中,或者可以均在基于云的虚拟环境中。智能合约引擎465、状态监控智能合约470和计算资源管理模块475类似于结合图3所描述的智能合约引擎模块323、状态监控智能合约322和计算资源管理模块330,其可以是在云上所创建的虚拟机中。因此,图4所示的分立对象或模块仅是示意,本公开在此方面不做限制。
[0049] 如图所示,BaaS平台用户450向BaaS平台455发送(402)创建区块链平台的请求。该请求可以包括用户对区块链的需求,例如区块链节点数目、节点的计算资源需求、共识算法等等。BaaS平台455根据BaaS平台用户450的请求,利用云平台资源,为BaaS平台用户450创建(404)一定数量的区块链节点(例如虚拟机实例),从而形成用户可以开展其业务的区块链平台。
[0050] 根据本公开的实施例,BaaS平台提供商可以根据标准系统状态采集接口开发状态监控智能合约470,并提供给BaaS平台用户450。状态监控智能合约470由区块链的BaaS平台用户450审阅认可通过并且签名(406),然后根据需要,向BaaS平台455和状态监控服务器460请求(408)节点状态监控服务。
[0051] 可选地,BaaS平台用户450可以随着该请求将其监控需求、告警条件、计算资源是否自动配置、计费要求等告知BaaS平台455,以便根据监控情况获知想要的信息以及进行后续的处理。例如,BaaS用户450可以设置其希望监控各区块链节点处的用于区块链数据的存储容量,当该存储容量的剩余低于10%时告警,以及当出现告警时,BaaS平台455自动进行存储容量扩展。
[0052] 状态监控服务器460根据BaaS平台用户450的相关信息,将状态监控智能合约安装部署到BaaS平台用户450的区块链的各个节点上。作为示例,状态监控服务器460将状态监控智能合约安装(410)到BaaS平台用户450的某个区块链节点,该节点处的智能合约引擎465启动(412)初始化状态监控智能合约,以保证状态监控智能合约470的正常运行。
[0053] 在一些实施例中,状态监控服务器460可以为若干个用户(例如企业)提供区块链节点状态监控服务,每个用户均可“拥有”若干个区块链节点。在一个实施例中,状态监控服务器460定期执行(414)状态监控智能合约,例如,其轮流远程调用各个区块链节点上的状态监控智能合约。根据本公开的一些实施例,状态查询请求可以是来自于状态监控服务器460的定期或不定期的状态查询指令,例如用以执行状态监控智能合约470的指令;状态查询请求也可以是区块链节点310处所触发的定期或不定期的主动状态查询。
[0054] 区块链节点上的智能合约引擎465在沙盒中执行状态监控智能合约470,状态监控智能合约470调用(416)状态查询接口。智能合约引擎465通过标准系统状态采集接口读取CPU使用率、内存使用率、存储I/O等信息,并且返回(420)给状态监控智能合约470,进而返回(422)给状态监控服务器。
[0055] 可以理解,节点状态可以指示区块链节点的服务状态,例如当节点状态指示状态监控智能合约322无法正确运行,则说明区块链服务工作状态不正常。节点状态还可以指示区块链节点的计算资源的状况、区块链节点的运行时长等工作性能。
[0056] 状态监控服务器460根据告警条件,确定(424)各个区块链节点所监控的节点状态是否满足报告条件。当满足时,向BaaS平台455发送(425)监控报告。监控报告中至少包括相应的区块链节点的节点状态。可选地,监控报告中可以包括关于节点状态详细的信息,例如在监控报告涉及数据存储设备的利用状态时,可以详细报告各个存储设备的利用状态、存储容量随时间的变化等信息。
[0057] 在一些实施例中,状态监控服务器460(或者Baa平台455)分析接收到的节点状态,可以为用户提供各种分析报告。此外,根据预定的报告策略,在接收到监控报告时,Baa平台455可以向用户发送(426)警告,以提示用户区块链节点运行状况。例如,当节点状态指示区块链节点的服务状态错误,或者节点状态指示区块链节点的计算资源的负荷大于预定阈值,向用户发送警告。
[0058] 根据本公开的一个实施例,预定的报告策略例如可以是计算资源的使用量超过阈值,或者计算资源的剩余量低于预警值。例如,在报告策略为区块链数据所使用的存储设备的剩余容量低于10%即报警的情况下,当状态监控服务器监测到区块链节点处的区块链数据所使用的存储设备的剩余容量低于10%,则向BaaS平台455发送监控报告,以将区块链节点需要扩展存储容量的相关信息告知BaaS平台455。
[0059] 在一些实施例中,BaaS平台455接收到监控报告,如果监控报告中存在计算资源相关信息,可以检查(428)与该监控报告相应的BaaS平台用户450是否启用了自动配置计算资源。然后,至少基于监控报告,确定(430)计算资源的调整量,并且向区块链节点发送(432)计算资源配置请求。可选地,该配置请求可以经由状态监控服务器460发送。下文还将具体描述BaaS平台455处的操作。
[0060] 根据配置请求,区块链节点的计算资源管理模块475配置(434)计算资源,并向BaaS平台455发送(436)配置响应。可选地,该配置响应可以经由状态监控服务器460发送。
[0061] 在一个实施例中,BaaS平台455接收到区块链节点反馈的配置响应后,确定(438)该资源配置的附加计费,以便针对BaaS平台用户450所消费的资源累计费用。随后,BaaS平台455可以向BaaS平台用户450发送(440)配置响应,其可以包括关于资源配置的各种信息,例如重新配置后的区块链节点的计算资源的概况、附加计费等。可选地,BaaS平台455可以向计费系统发送所确定的附加计费。
[0062] 可以理解,虽然图4示出了过程400的示例步骤顺序,但是在一些实施方式中,过程400可以包括附加的步骤、较少的步骤、不同的步骤或与图4中所描绘的那些不同地顺序布置的步骤。附加地或者备选地,可以并行执行过程400的两个或两个以上步骤。
[0063] 图5图示了根据本公开的实施例的用于管理区块链节点的计算资源的方法500的流程图。应当理解,方法500例如可以在以上参考图4所描述的BaaS平台455处执行。
[0064] 在510,管理服务器(例如BaaS平台455)发送用以指令至少一个区块链节点安装状态监控智能合约的请求。状态监控智能合约如上所描述,其可以被配置用于监控区块链节点的计算资源的利用状态。
[0065] 在520,当接收到包括该至少一个区块链节点的计算资源的利用状态的至少一个监控报告时,管理服务器可以执行以下中的至少一项:向与该至少一个区块链节点相关联的用户发送警告;以及基于至少一个监控报告,对计算资源进行配置。该警告至少指示区块链节点的计算资源的利用状态,并且可以通过短消息或者邮件或者其他形式发送给用户。
[0066] 根据本公开的实施例,该监控报告可以来自于状态监控服务器或者来自于区块链节点,并且监控报告可以是单独的关于某个监控项的消息,也可以是包括关于多个监控项的组合消息。此外,如上所描述的,监控报告还可以包括关于节点状态详细的信息,例如在监控报告涉及数据存储设备的利用状态时,可以详细报告各个存储设备的利用状态、存储容量随时间的变化等信息。
[0067] 在一些实施例中,当管理服务器接收到至少包括计算资源的利用状态的监控报告时,管理服务器可以根据企业用户的配置,向用户发送警告,以告知计算资源的当前利用状态。在另一些实施例中,管理服务器还可以根据用户是否许可对区块链节点进行配置,来根据管理服务器所获知的计算资源的信息而对区块链节点处的计算资源进行配置。在其他一些实施例中,例如在某些区块链应用的紧急情况下,管理服务器可以根据接收到的监控报告,采用适度的策略对区块链节点处的计算资源进行配置。
[0068] 下面结合图4具体描述管理服务器对区块链节点处的计算资源的配置过程。管理服务器例如BaaS平台455可以基于接收到的至少一个监控报告,确定对计算资源的调整量。
[0069] 在一个实施例中,BaaS平台455可以分析针对某个区块链节点的多个监控报告,根据监控报告中所指示的计算资源的利用状态的变化趋势和/或加速度来确定计算资源的调整量。或者,根据BaaS平台用户450所设置的调整策略等,考虑监控报告所指示的计算资源的利用状态,来确定计算资源的调整量。
[0070] 根据本公开的一个实施例,当监控报告涉及用于区块链数据的存储容量时,BaaS平台455确定要分配给区块链节点的附加存储设备。例如,基于所确定存储容量的调整量,考虑区块链节点现有的存储设备,确定为区块链节点配置附加的网络存储还是本地存储。
[0071] 根据本公开的另一实施例,当监控报告涉及用于区块链数据的存储容量时,BaaS平台455确定区块链节点的现有存储设备中被分配以供使用的附加存储容量。换言之,在支持扩容已有的存储设备的情况下,确定直接扩容已有的存储设备的调整量。
[0072] 在本公开的一些实施例中,至少基于至少一个监控报告所指示的网络带宽的利用状态,确定针对区块链节点的网络带宽的调整量。或者,根据监控报告中所指示的易失性存储器的使用情况,确定针对区块链节点的易失性存储器的调整量。或者,根据监控报告中所指示的CPU内核的使用情况,确定针对区块链节点的CPU内核数目的调整。
[0073] 接下来,基于计算资源的调整量,管理服务器生成针对计算资源的配置请求。该配置请求中包含指示区块链节点处的配置操作的信息。然后向区块链节点发送配置请求。例如,可以利用云平台的应用程序接口(API),向区块链节点发送配置请求。相应地,在区块链节点处,根据该配置请求自动地执行对计算资源的重新配置。
[0074] 根据本公开的实施例,在需要对作为虚拟机实例的区块链节点处的存储容量进行扩展的情况下,本公开的实施例提供对云平台的多种底层存储扩容方式的支持。
[0075] 图6和图7分别示出了区块链节点网络存储扩展过程600和本地存储扩展过程700的示意图。图6示出了当区块链节点处需要对现有网络存储640进行扩展的场景。网络存储640可以是区块链节点660现正使用的存储设备,其可以是任何类型的网络存储设备。
[0076] 根据本公开的实施例,网络存储设备可以动态挂载到区块链节点660,通过逻辑卷管理服务模块630,可以将新挂载的网络存储650和已有的网络存储640划分到统一的逻辑卷。从文件系统的角度看,相同的逻辑卷可以支持统一的文件系统挂载点,对于上层的区块链服务来看是透明的。由此,通过新添加网络存储的方式支持区块链节点的存储容量扩展。
[0077] 在一个实施例中,BaaS平台455确定为区块链节点660扩展其网络存储。BaaS平台455检测区块链节点660现有网络存储设备640的逻辑卷,并且基于所确定的待挂载的附加网络存储设备650,生成用以指示将附加存储设备650与所确定的逻辑卷相关联的配置请求。相应地,区块链节点660根据接收到的配置请求,通过逻辑卷管理服务模块630将网络存储设备650关联到与网络存储设备640相同的逻辑卷,并由统一文件系统挂载模块620挂载到相应的挂载点。
[0078] 图7示出了当区块链节点处需要对现有本地存储740进行扩展的场景。本地存储740可以是区块链节点760现正使用的存储设备,其可以是任何类型的存储设备。
[0079] 根据本公开的实施例,本地存储设备可以动态挂载到区块链节点760,通过逻辑卷管理服务模块730,可以将新挂载的本地存储750和已有的本地存储740划分到统一的逻辑卷。从文件系统的角度看,相同的逻辑卷可以支持统一的文件系统挂载点,对于上层的区块链服务来看是透明的。由此,通过新添加网络存储的方式支持区块链节点的存储容量扩展。具体的扩展过程与图6中所示的过程类似,在此不再赘述。
[0080] 在另一实施例中,对网络存储或本地存储的扩展可以不需要通过逻辑卷管理服务模块,而是通过直接扩展现有的网络存储设备或本地存储设备。例如,BaaS平台455至少基于上述的至少一个监控报告所指示的存储容量的利用状态,确定区块链节点的现有存储设备中待被分配以供使用的附加存储容量。然后通过配置请求传送给区块链节点,以使得区块链节点重新配置存储设备。
[0081] 以上以存储容量扩展为例具体描述了管理服务器处的操作。可以理解,统一文件系统挂载模块620或720与逻辑卷管理服务模块630或730可以是容量存储管理模块331的一部分,其利用区块链节点处的操作系统所支持的服务来进行存储容量的管理。此外,其他计算资源项的配置和调整可以以类似的方式进行,实现对计算资源的自动调整和配置。
[0082] 图8图示了根据本公开的实施例的用于管理区块链节点的计算资源的方法800的流程图。应当理解,方法800例如可以在以上参考图3、图6或图7所描述的区块链节点300、660或760处执行。
[0083] 在810,在区块链节点处执行状态监控智能合约,以获取区块链节点处的计算资源的利用状态,如以上结合图4所描述的。在820,向管理服务器报告计算资源的利用状态,以使得管理服务器生成针对计算资源的配置请求。该配置请求至少指示对计算资源的调整量。然后在830,在区块链节点处接收到配置请求,重新配置计算资源。
[0084] 根据本公开的一个实施例,当配置请求涉及存储容量的重新配置时,区块链节点根据配置请求所指示的待扩展的附加网络存储设备,利用逻辑卷管理服务将所指定的附加网络存储设备配置到一逻辑卷,该逻辑卷与区块链节点处的现有网络存储设备相关联。然后由统一文件系统挂载模块挂载到相应的挂载点。
[0085] 在一些实施例中,区块链节点根据配置请求所指示的待扩展的附加本地存储设备,将所指定的附加本地存储设备配置到一逻辑卷,该逻辑卷与区块链节点处的现有本地存储设备相关联。然后由统一文件系统挂载模块挂载到相应的挂载点。
[0086] 在另一些实施例中,区块链节点根据配置请求指示待扩展的附加存储容量,从区块链节点的现有存储设备中分配该附加存储容量,以供区块链节点使用。以上所描述的存储容量配置过程,与参考图6和图7所描述的存储容量扩展过程类似,在此不再赘述。
[0087] 在一些实施例中,当配置请求涉及区块链节点处的网络带宽时,区块链节点根据配置请求指示的网络带宽的调整量,调整区块链节点处的网络带宽以与所述调整量适配。当配置请求涉及区块链节点处的其他计算资源的配置时,区块链节点处相应的配置模块实现对这些计算资源的自动重新配置。
[0088] 图9图示了可以用来实施本公开的实施例的电子设备700的示意性框图。应当理解,电子设备900可以用以实现图4所描述的服务器或区块链节点,或者电子设备900也可以用以实现图4所描述的服务器或区块链节点节点中的任一个模块。如图9所示,设备900包括中央处理单元(CPU)901(例如处理器),其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
[0089] 设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0090] 上文所描述的各种方法或过程,例如方法500、800或过程400,可由处理单元901执行。例如,在一些实施例中,方法500、800或过程400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的500、800或过程400中的一个或多个动作或步骤。
[0091] 本公开的实施例提供的基于智能合约的区块链节点系统状态监控方案具有诸多优点。一是该监控方案易于实施。智能合约是区块链自身所支持的机制,因而不需要另外开发独立的系统监控代理服务。其次,该监控方案安全可靠。利用状态监控智能合约公开透明、不可篡改的优点,保证用户数据隐私安全,并且容易获取用户的支持认可。而且,该方案也保证了区块链节点原有的安全性,不会造成额外的安全险。另外,该监控方案升级维护方便。可以复用区块链平台自身具备的服务软件升级和智能合约升级功能,从而不需要专门为状态监控系统额外开发升级方案。另一方面,基于以上的监控方案,实现了计算资源自动的按需分配和重新配置,有效节约区块链节点的使用成本。
[0092] 一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
[0093] 作为示例,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本公开所描述的各种示例性的逻辑块、模块和电路。通用处理器可以是微处理器,或者,处理器也可以是任何普通的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。
[0094] 作为示例,本公开的实施例可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
[0095] 用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
[0096] 在本公开的上下文中,机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
[0097] 另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。
[0098] 尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中限定的主题并不限于上文描述的特定特征或动作。相反,上文描述的特定特征和动作是作为实现权利要求的示例形式而被公开的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈