一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

区块链网络的节点的存储扩容的方法、系统、装置和介质与流程

2023-02-04 12:40:17 来源:中国专利 TAG:


1.本技术涉及区块链,尤其涉及用于区块链网络的节点的存储扩容的方法、系统、装置和介质。


背景技术:

2.区块链技术已经得到大规模应用。区块链网络通常包括大量节点。为了使得用户能够更容易地创建、维护和运营区块链网络,目前已经出现了区块链即服务(blockchain as a service,简称baas)这样的平台服务。
3.在baas服务中,在创建区块链网络时,从资源成本和业务规模角度出发,通常为区块链中的节点分配的存储容量较小。随着区块链网络的发展,可能需要对区块链网络中的节点的存储容量进行存储扩容。
4.在现有方案中,为了对区块链网络进行存储扩容,通常需要首先将整个区块链网络的服务暂停,随后使用复杂的步骤对每个节点进行人工存储扩容,待扩容完毕后再恢复整个区块链网络的服务。这种方式不仅需要牺牲整个区块链网络的在线时间,而且需要大量具备专业知识的专家来操作,且操作中容易出现问题。
5.因此,需要能够避免区块链服务暂停、自动化、高效且可靠的区块链网络节点的存储扩容方案。


技术实现要素:

6.为了克服现有技术的缺陷,本说明书的一个或多个实施例通过自动选择待扩容节点、自动执行存储扩容以及自动执行前置和后置检查等手段避免了区块链服务暂停且提升了存储扩容的效率和可靠性。
7.本说明书的一个或多个实施例通过以下技术方案来实现其上述目的。
8.在一个方面中,提供了一种用于区块链网络的节点的存储扩容的方法,包括:基于所述区块链网络的容错算法自动选择待扩容节点集合;自动校验所选择的待扩容节点集合中的每个待扩容节点的状态,以确定该待扩容节点的状态是否符合存储扩容条件;对符合存储扩容条件的待扩容节点执行自动存储扩容;以及在执行自动存储扩容后,对存储扩容后的节点的状态执行自动检查,以确定所述节点是否正常工作。
9.优选地,其中基于所述区块链网络的容错算法自动选择待扩容节点集合包括:基于所述容错算法自动确定容许的出错节点数量上限;以及从所述区块链网络中选择所述待扩容节点集合,其中所述待扩容节点的数量不大于所述出错节点数量上限。
10.优选地,基于所述区块链网络的容错算法自动选择待扩容节点集合进一步包括:确定所述区块链网络中的已知出错节点的数量,其中所述待扩容节点的数量不大于所述出错节点数量上限与所述已知出错节点的数量之差。
11.优选地,所述待扩容节点的数量不大于所述出错节点数量上限与所述已知出错节点的数量之差的指定比例。
12.优选地,基于所述区块链网络的容错算法自动选择待扩容节点集合包括:基于预定义规则从所述区块链网络中选择待扩容节点以组成所述待扩容节点集合。
13.优选地,所述容错算法为拜占庭容错算法。
14.优选地,自动校验所选择的待扩容节点集合中的每个待扩容节点的状态包括以下的一者或多者:确定该待扩容节点的节点块高和全网块高的差值是否小于指定差值阈值;确定该待扩容节点的交易成功率是否大于指定交易成功率阈值;以及确定该待扩容节点的查询成功率是否大于指定查询成功率阈值。
15.优选地,对符合存储扩容条件的待扩容节点执行自动存储扩容包括:停止该待扩容节点的区块链服务进程;调整该待扩容节点的存储容量;以及在调整该待扩容节点的存储容量后,恢复该待扩容节点的区块链服务进程。
16.优选地,调整该待扩容节点的存储容量包括:调用存储服务的资源服务接口来调整该待扩容节点的磁盘的可用存储容量;卸载该待扩容节点的该磁盘;对该磁盘进行重新分区;对该磁盘执行文件系统扩展;以及挂载该磁盘。
17.优选地,调整该待扩容节点的存储容量还包括:在对待扩容节点执行自动存储扩容前对该待扩容节点执行数据备份;和/或确认该磁盘的文件系统一致性。
18.优选地,该方法进一步包括:在对待扩容节点集合执行存储扩容之后,基于所述容错算法自动选择未被扩容的节点执行存储扩容。
19.优选地,该方法进一步包括:在对所述区块链网络完成存储扩容后,对所述区块链网络的全网状态执行检查,其中所述检查包括对所述区块链网络的全网状态执行检查,其中所述检查包括确定区块链网络的节点的平均块高增长率是否大于平均增长率阈值和/或确定所述区块链网络的交易成功率是否大于区块链交易成功率阈值。
20.优选地,如果所述检查发现错误,则自动向用户发送错误通知。
21.优选地,该方法进一步包括:在对所述区块链网络完成存储扩容后,执行对区块链信息的更新。优选地,执行对区块链信息的更新包括更新以下的一者或多者:vpc部署、交换机id、节点计算资源、节点存储资源和节点网络资源。
22.在另一方面,提供了一种用于区块链网络的节点的存储扩容的系统,包括:节点选择模块,用于基于所述区块链网络的容错算法自动选择待扩容节点集合;校验模块,用于自动校验所选择的待扩容节点集合中的每个待扩容节点的状态,以确定该待扩容节点的状态是否符合存储扩容条件;存储扩容模块,用于对符合存储扩容条件的待扩容节点执行自动存储扩容;以及检查模块,用于在执行自动存储扩容后,对存储扩容后的节点的状态执行自动检查,以确定所述节点是否正常工作。
23.在又另一方面中,提供了一种用于区块链网络的节点的自动存储扩容的装置,包括:存储器;以及处理器,所述处理器被配置成执行上述方法。
24.在又另一方面中,提供了一种存储指令的计算机可读存储介质,该指令当被计算机执行时,使所述计算机执行上述方法。
25.与现有技术相比,本说明书的一个或多个实施例能够实现以下技术效果中的一者或多者:
26.在执行区块链存储扩容时无需停止区块链网络的正常操作;
27.提升了扩容效率;
28.减少了人力成本;和/或
29.减少了出错概率,提升了可靠性。
附图说明
30.以上发明内容以及下面的具体实施方式在结合附图阅读时会得到更好的理解。需要说明的是,附图仅作为所请求保护的发明的示例。在附图中,相同的附图标记代表相同或类似的元素。
31.图1示出根据本说明书实施例的用于区块链网络的节点的存储扩容的示例方法的示意流程图。
32.图2示出根据本说明书实施例的用于自动选择待扩容节点集合的过程的示意流程图。
33.图3示出根据本说明书实施例的用于自动选择待扩容节点集合的另一过程的示意流程图。
34.图4示出根据本说明书实施例的用于对待扩容节点执行自动存储扩容的过程的示意图。
35.图5示出根据本说明书实施例的用于区块链网络的节点的存储扩容的系统的示意图。
36.图6示出用于实现根据本说明书一个或多个实施例的系统的装置的示意框图。
具体实施方式
37.以下具体实施方式的内容足以使任何本领域技术人员了解本说明书的一个或多个实施例的技术内容并据以实施,且根据本说明书所揭露的说明书、权利要求及附图,本领域技术人员可轻易地理解本说明书的一个或多个实施例相关的目的及优点。
38.在区块链服务,尤其是baas服务中,随着业务的增长,常常存在对区块链网络中的节点的存储容量进行存储扩容的需求。需要领会,本文中的“存储扩容”不同于通常说的“区块链扩容”或“扩容”。区块链扩容通常是指区块链的区块大小进行调整、添加交易网络层等操作。在本文中,存储扩容是指对区块链网络中的节点的存储容量进行调整,以扩大该节点可用的存储空间。
39.在现有的区块链节点存储扩容方案中,通常采用以下方式:首先停止整个区块链网络的操作;然后由专家人工地逐个对区块链网络中的节点(可能是所有节点,也可能是部分节点)进行存储扩容;待节点存储扩容完毕后,重启整个区块链网络。这种方案可能存在以下问题:
40.第一,这种传统方案导致服务宕机时间延长。上述方案要求首先停止区块链网络的操作,导致该区块链服务在扩容器件无法工作。如果不停止区块链网络的操作而直接对节点进行存储扩容,可能导致区块链网络中节点在被存储扩容时的停机操作导致该节点的数据不一致,甚至导致整个区块链网络无法运作。
41.第二,这种传统方案要求大量人力资源和专家知识,且浪费大量时间,效率较低。
42.第三,这种传统方案容易引发错误,可靠性较低。
43.参见图1,其示出根据本说明书实施例的用于区块链网络的节点的存储扩容的示
例方法100的示意流程图。
44.如图1所示,方法100可包括:在操作102,可基于该区块链网络的容错算法自动选择待扩容节点集合。优选地,所选择的待扩容节点的数量和特性可基于预设的准则,如下文详细描述的。所选择的该多个待扩容节点可构成待扩容节点集合。
45.参见图2,其示出根据本说明书实施例的用于自动选择待扩容节点集合的过程200的示意流程图。
46.如图2所示,方法200可包括:在操作202,可基于该容错算法自动确定容许的出错节点数量上限。
47.对于区块链网络而言,通常要求在一定数量的节点网络不通、宕机、数据缺失或者存在恶意行为的情况下仍能正常操作。在本文中,上述节点被统称为出错节点。容错算法能被用来确定区块链网络中容许的出错节点数量上限(即容许的出错节点的最大数量)。该容错算法例如可以是拜占庭容错算法(byzantine fault tolerance,简称为bft)。一种最常见的拜占庭容错算法被称为实用拜占庭容错算法(pbft)。例如,对于实用拜占庭容错算法而言,所容许的出错节点数量上限为区块链网络中的所有节点的数量的1/3。
48.还可采用拜占庭容错算法的其它变种,例如giskard bft算法、基于声誉的bft算法(reputation-based byzantine fault-tolerance)、lodestone算法、优化bft算法等等。
49.还可采用其它容错算法,例如paxos算法、raft算法以及本领域技术人员可构想的其它任何适用的算法等等。
50.具体而言,可首先自动确定整个区块链网络的节点总数,然后基于容错算法来确定所容许的出错节点数量上限。例如,对于采用实用拜占庭容错算法的区块链网络而言,可首先自动确定整个区块链网络的节点总数n,然后确定容许的出错节点的数量上限n*1/3。
51.方法200还可包括:在操作204,可从该区块链网络中选择该待扩容节点集合,其中待扩容节点的数量不大于容许的出错节点数量上限。
52.可以领会,通过使所选择的待扩容节点的数量不大于容错算法容许的出错节点数量上限,能够减少由于对节点进行存储扩容(从而使其下线)而导致区块链网络无法正常工作的概率。
53.如上文所述,在采用实用拜占庭容错算法的情况下,容许的出错节点数量上限为区块链网络的节点总数的1/3。在采用其它容错算法的情况下,该容许的出错节点数量上限可能不同。通过将待扩容节点的数量限制为不大于容错算法容许的出错节点数量上限,本发明允许在不停止整个区块链网络运行的情况下执行待扩容节点的存储扩容,同时允许区块链网络的正常工作。
54.应当理解,在实际操作中,对于包括数量巨大且数量实时变化的节点的区块链网络而言,人工方式来确定待扩容节点的数量可能很困难甚至难以完成。在本发明中,通过以上方式,本说明书实施例的方案能自动、实时地确定容许的出错节点的最大数量。
55.参见图3,其示出根据本说明书实施例的用于自动选择待扩容节点集合的另一过程300的示意流程图。
56.如图3所示,过程300可包括:在操作302,可基于该容错算法自动确定容许的出错节点数量上限。
57.操作302的具体细节可参考上文对操作202的描述,在此不再赘述。
58.过程300还可包括:在操作304,可确定该区块链网络中的已知出错节点的数量。
59.如上文所述,出错节点可包括因网络不通、宕机、数据缺失等原因而无法正常工作,这样的节点在本文中可被称为故障节点。出错节点还可包括存在恶意行为的恶意节点。
60.具体而言,例如可通过检查区块链网络中的每个节点是否存在响应来确定一节点是否为故障节点。还可通过请求节点报告其数据完整性来确定一节点是否为故障节点。
61.此外,在优选示例中,还可通过一种或多种方式来确定一节点是否为潜在的恶意节点。例如,如果通过历史数据确定一节点多次作出恶意行为,该节点可被标注为潜在恶意节点。又例如,可通过打分系统来实现对潜在恶意节点的检测。可采用本领域技术人员可构想的任何其它方式来实现对潜在恶意节点的检测,可参见:ieee access杂志第9卷的“blockchain-based wireless sensor networks for malicious node detection:a survey(用于无线节点检测的基于区块链的无线传感器网络:调查)”(参见https://ieeexplore.ieee.org/document/9535517);ieee access杂志第9卷的“blockchain trust model for malicious node detection in wireless sensor networks(无线传感器网络中的恶意节点检测的区块链信任模型)”(参见https://ieeexplore.ieee.org/document/8668748);人工智能、大数据和算法2021国际会议论文“blockchain-based node data detection scheme for the internet of things system(用于物联网系统的基于区块链的节点数据检测方案)”(参见https://www.computer.org/csdl/proceedings-article/caibda/2021/249000a206/1xgbqru8sy8);计算机科学杂志论文“malicious node detection in federated learning via ranking(经由排名的联盟学习中的恶意节点检测)”(参见https://arxiv.org/abs/2110.11736)等。
62.潜在恶意节点可被计入如此处所讨论的已知出错节点。
63.过程300可包括:在操作306,可基于该容许的出错节点数量上限和该已知出错节点的数量,从该区块链网络中选择该待扩容节点集合。优选地,该待扩容节点的数量不大于该容许的出错节点数量上限与该已知出错节点的数量之差,即该容许的出错节点数量上限与该已知出错节点的数量之差。
64.通过将已知出错节点的数量从容许的出错节点数量上限中减去,本说明书实施例能够在即使有节点出错的情况下仍能尽可能地在不影响区块链网络正常工作的情况下执行待扩容节点的存储扩容。
65.更优选地,该待扩容节点的数量不大于容许的出错节点数量上限与该已知出错节点的数量之差的指定比例。也就是说,该待扩容节点的数量不大于容许出错节点与已知出错节点的数量差乘以该指定比例。该指定比例为0和1之间的数。例如,该指定比例可为1/2。或者,该指定比例可为1/3。或者,该指定比例可为1/4。可以领会,该比例越小,在扩容时区块链网络无法正常工作的概率越小,然而存储扩容的效率越低。因此,可根据具体情况来选择该指定比例。
66.在本说明书的优选实施例中,不仅可以确定待扩容节点的数目,而且可以确定具体选择哪些节点作为待扩容节点。
67.在一示例中,可从区块链网络的所有节点中随机选择待扩容节点。在区块链网络较大的情况下,随机选择节点无需花费大量的处理资源,且能够实现所选节点的大致均匀的分布。
68.在另一示例中,可从区块链网络的所有非出错节点中随机选择待扩容节点。例如,可在将出错节点排除后的所有剩余节点中,随机选择待扩容节点。通过将出错节点排除,每次能够选择尽量多的非出错节点来执行存储扩容,从而提升存储扩容的效率。
69.在更优选示例中,不是随机选择待扩容节点,而是可基于预定义规则从区块链网络中选择待扩容节点。
70.预定义规则的一个示例为:可在区块链网络的各个区域中选择相同数量的节点。在一些情况下,区块链网络可分为多个区域。例如,区块链网络可基于地理位置分为多个区域。或者,区块链网络可基于其网络拓扑分为多个区域。通过在各个区域中选择相同或近乎相同数量的节点,能够保证在各个区域中的未下线节点的数量大致相同,从而提升区块链网络正常工作的概率。
71.预定义规则的另一示例为:可按照区块链网络的各个区域中的节点数量成比例地选择节点。例如,假设区块链网络中的区域a中的节点的数量为区块链网络中的区域b中的节点数量的3倍,则在区域a中所选节点的数量可等于或近乎等于区域b中所选节点的数量的3倍。通过这种方式,能够保证各个区域中未下线节点的比例大致相同,同样能提升区块链网络正常工作的概率。
72.预定义规则的另一示例为:可至少部分地基于节点的类型来选择待扩容节点。节点类型例如可以是全节点、共识节点、路由节点、其他服务节点等。例如,可按每种类型的节点的数量成比例地选择待扩容节点。
73.预定义规则的另一示例为:可至少部分地基于节点的剩余容量大小来选择待扩容节点。例如,可优先选择剩余容量较小的节点来执行存储扩容。
74.还可采用以上方案的任何组合。
75.可使用本领域技术人员可构想的其他预定义规则。
76.方法100还可包括:在操作104,在选择了待扩充节点之后,在对每个待扩容节点执行实际存储扩容之前,可首先校验待扩容节点的状态,以确定该待扩容节点是否符合存储扩容条件。此步骤可被称为前置校验步骤。可以想象,如果一个节点的状态为非正常状态,则该节点将不适合进行存储扩容;如果一个节点当前正在执行变更操作,则该节点同样将不适合进行存储扩容;等等。
77.优选地,校验待扩容节点的状态可包括确定该节点的节点块高和全网块高的差值是否小于指定差值阈值。可以理解,如果节点块高和全网块高的差值较大,通常说明该节点并未及时与区块链网络中的其他节点达成同步。因此,如果该差值大于或等于指定差值阈值,则可确定该待扩容节点不适合进行存储扩容。
78.优选地,校验待扩容节点的状态可包括确定该节点的交易成功率是否大于指定交易成功率阈值。可以理解,如果交易成功率小于等于阈值,则该节点可能并未正常工作。因此,如果交易成功率大于指定交易成功率阈值,则可确定该待扩容节点不适合进行存储扩容。
79.优选地,校验待扩容节点的状态可包括确定该节点的查询成功率是否大于指定查询成功率阈值。可以理解,如果查询成功率小于等于阈值,则该节点可能并未正常工作。因此,如果查询成功率大于指定查询成功率阈值,则可确定该待扩容节点不适合进行存储扩容。
80.校验待扩容节点的状态还可包括检查其他条件,例如节点的块高增长率是否大于阈值;节点流量是否正常等等。
81.优选地,校验待扩容节点的状态可包括以上任何两者或多者的组合。更优选地,校验待扩容节点的状态可包括以上所有各项的组合。
82.如果待扩容节点被确定为不适合存储扩容,则可将该待扩容节点将所选择的待扩容节点集合中排除。在一个示例中,在排除待扩容节点之后,可重新选择节点作为待扩容节点,以取代被排除的待扩容节点。在另一示例中,在排除待扩容节点后,不再选择新的节点来代替被排除的待扩容节点。
83.方法100还可包括:在操作106,可对符合存储扩容条件的待扩容节点执行自动存储扩容。
84.在本说明书实施例中,存储扩容操作的执行由计算设备自动执行。通过自动执行节点的存储扩容操作,尤其是可以对大量节点同时执行存储扩容,能够节省人力、提高效率,而且减少了出错的概率。
85.此外,还可以领会,虽然上文的一些操作可由用户手动完成,但也有多个操作可能是用户难以完成或不可能完成的。例如,用户难以实时掌握庞大的区块链网络中的每个节点的状态、所处区域、节点类型等,更加难以实时计算每个节点的相关参数(例如交易成功率、查询成功率、块高差值等),也难以实时地执行出错节点的标识。从实际效果看,在现有方案中,原本难以甚至不可能在不将区块链网络停止工作的情况下执行大量节点的存储扩容,而通过本说明书实施例则可以实现这一点,从而解决了现有技术中没有解决的技术问题。
86.参见图4,其示出根据本说明书实施例的用于对待扩容节点执行自动存储扩容的过程400的示意图。
87.如图4所示,过程400可包括:在操作402,可停止该待扩容节点的区块链服务进程。优选地,还可停止该待扩容节点的与区块链相关联的第三方进程。第三方进程的示例可包括但不限于:节点管控代理进程、主机安全扫描进程、日志采集进程等等。
88.优选地,与强制关机时强制停止区块链服务进程不同,停止该待扩容节点的区块链服务进程例如可包括执行进程停止前的准备操作。该进程停止前的准备操作例如可包括对与该进程(例如区块链服务进程和/或相关第三方进程)相关联的数据执行备份。优选地,可对待扩容节点整体进行数据备份,而不仅仅是包括与区块链相关的服务进程和/或第三方进程进行数据备份。
89.该进程停止前的准备操作还可包括对该进程的状态执行保存。例如,可保存任何与该节点的当前状态有关的参数。
90.该进程停止前的准备操作还可包括与区块链相关的可构想的任何其他操作,例如向区块链网络的其他节点通知本节点将停机以执行存储扩容等等。
91.在停止进程之后,过程400可包括:在操作404,可调整该待扩容节点的磁盘的存储容量。
92.在优选示例中,调整待扩容节点的存储容量可通过以下方式执行。
93.在操作405,可调整该待扩容节点的磁盘的可用存储容量。优选地,可调用存储服务的资源服务接口来调整该可用存储容量。
94.优选地,该存储服务通常是指云存储服务、对象存储服务或者其他形式的分布式存储服务。替代地,该存储服务是指单个计算机的存储服务。
95.通常,存储服务提供方将提供资源服务接口,对于分布式存储服务而言尤其如此。该接口允许用户调整与存储相关联的参数,例如可用存储容量、存储类型等等。因此,可自动调用存储服务所提供的资源服务接口来调整该待扩容节点的磁盘的可用存储容量。例如,假设磁盘的原可用存储容量为10gb,可通过调用资源服务接口来将该可用存储容量调整为20gb等等。在存储扩容情况下,通常该调整是指增加存储容量。然而,在需要时,也可减少存储容量。
96.通常,使用资源服务接口来调整磁盘的可用存储容量仅仅是调整授权给该节点的存储容量,即仅仅是改变了该节点可使用的磁盘的存储容量配额,此时新增的存储容量通常并不能被该节点直接使用。因此,在优选示例中,还需要通过卸载、重新分区、扩展文件系统、挂载磁盘等一系列操作来使得新增后的存储容量能够被该节点使用,如下文所述。
97.优选地,在操作407,可卸载该待扩容节点的该磁盘。为了对磁盘的实际存储容量进行调整,通常首先应当卸载该待扩容节点的磁盘。例如,可调用该节点的相关接口(例如该节点的守护进程的相关接口)或者使用相应的磁盘卸载命令(例如umount命令等)来卸载磁盘。
98.优选地,在操作409,可对该磁盘进行重新分区。在一个示例中,可将新增的可用存储容量与原存储容量合并为新的分区。在另一示例中,可将新增的可用存储容量划分为新的分区。在其他示例中,可使用其他方式来对磁盘进行重新分区。可调用该节点的相关接口(例如该节点的守护进程的相关接口)或者使用相应的重新分区命令(例如fdisk命令等)来对磁盘进行重新分区。
99.优选地,在操作411,可针对该磁盘扩展文件系统。例如,可调用该节点的相关接口(例如该节点的守护进程的相关接口)或者使用相应的格式化命令来设置磁盘的文件系统格式。例如,可首先查看原磁盘的文件系统的类型,然后可根据不同的文件系统类型来选择相应的文件系统扩展命令,例如resize2fs、xfs_growfs、btrfs filesystem resize等。
100.优选地,在操作413,可挂载该磁盘。可调用该节点的相关接口(例如该节点的守护进程的相关接口)或者使用相应的挂载命令(例如mount命令等)来挂载磁盘。
101.优选地,在上述存储扩容过程中,例如在扩展文件系统之前,还可确认文件系统的一致性。可调用该节点的相关接口(例如该节点的守护进程的相关接口)或者使用相应的重新分区命令(例如fsck命令等)来确认文件系统的一致性。
102.可以理解,上面仅仅描述了调整该待扩容节点的存储容量的一个示例。可采用本领域技术人员可构想的任何其他方式来自动调整该待扩容节点的磁盘的存储容量。
103.过程400还可包括:在操作414,在该待扩容节点的存储容量调整完毕后,可自动恢复该待扩容节点的服务进程。优选地,还可恢复相关联的第三方进程。
104.例如,可恢复进程的所保存的状态。此外,在必要时,可恢复经备份的数据。此外,还可执行恢复进程所需的其他必要操作。例如,可重新注册到区块链网络。
105.在以上任何操作过程中,可自动检查操作中是否出现错误。如果出现错误,则可向用户通知该错误的具体信息,并在必要时暂停扩容的执行。在本说明书实施例中,用户可指区块链网络的使用者和/或管理者等。用户在接收到通知之后,可介入该扩容过程以执行人
工处理。
106.通过这种方式,可实现每一个待扩容节点的自动存储扩容。
107.方法100还可包括:在操作108,可在执行自动存储扩容后,对存储扩容后的节点的状态执行自动检查,以确定该节点是否正常工作。优选地,可在每个待扩容节点被存储扩容后,对该待扩容节点执行自动检查。例如,可根据该节点的状态指标判断存储扩容是否被正常执行且该节点已恢复正常工作。例如,与前置校验过程类似,可检查存储扩容后的节点的节点块高和全网块高之差、交易成功率、查询成功率、块高增长率、节点流量中的一者或多者,以便确定该节点是否正常工作。具体过程可参考上文针对前置校验的描述,在此不再赘述。
108.如果在该自动检查中发现错误(即发现节点没有正常工作),可自动向用户发送错误通知。该错误通知例如可包括与该自动检查中的错误相关的具体信息。
109.如果在该自动检查中发现错误,还可暂停扩容过程的执行,以等待用户进行人工处理。
110.通过上述方式,能够执行对所选择的待扩容节点的集合的存储扩容。
111.随后,可迭代选择其他节点来执行存储扩容。也就是说,在对该待扩容节点集合执行存储扩容之后,基于该容错算法自动选择未被扩容的一个或多个节点执行存储扩容。可迭代执行上述存储扩容过程,直到满足完成条件。此时可称为对区块链网络完成存储扩容。
112.该完成条件例如可以是已对区块链网络的所有节点执行存储扩容。该完成条件例如可以是已对区块链网络的全部未出错节点执行存储扩容。该完成条件可以是已对区块链网络的所有节点中一定比例的节点执行存储扩容。
113.优选地,在对区块链网络完成存储扩容之后,对该区块链网络的全网状态执行检查。与前文的前置校验相区分,此处的检查可被称为“后置检查”。后置检查能够进一步确认存储扩容过程中不存在任何问题且该区块链网络正在正常工作。
114.例如,后置检查可包括确定区块链网络的节点的平均块高增长率是否大于平均增长率阈值。如果平均块高增长率小于或等于平均增长率阈值,则说明该区块链网络未能正常工作。
115.又例如,后置检查可包括确定区块链网络的交易成功率是否大于区块链交易成功率阈值。如果平均块高增长率小于或等于平均增长率阈值,则说明该区块链网络未能正常工作。
116.后置检查还可包括检查其他参数,例如区块链网络中的流量是否正常、区块链网络中的出错节点的数量是否大于阈值等等。
117.优选地,后置检查可包括以上任何两者或多者的组合。更优选地,后置检查可包括以上所有各项的组合。
118.如果在该后置检查中发现错误,可自动向用户发送错误通知。该错误通知例如可包括与该后置检查中的错误相关的具体信息。
119.如果在该后置检查中发现错误,还可暂停扩容过程的执行,以等待用户进行人工处理。
120.优选地,在完成对区块链网络的存储扩容后,可执行对区块链信息的更新。具体而言,执行对区块链信息的更新可包括更新以下的一者或多者:vpc部署、交换机id、节点计算
资源、节点存储资源、节点网络资源。
121.vpc是指虚拟私有云。更新部署的私有云是指对区块链节点在vpc上的部署进行调整,以适合各节点的磁盘的存储容量的变化。
122.交换机id是区块链网络中的用于各节点间的数据通信的交换机的标识符。由于存储容量的变化以及相应的vpc的部署的变化,所以通常也可更新交换机id,以反映区块链网络的拓扑的变化。
123.优选地,为适应vpc部署的变化以及网络拓扑的变化,还更新区块链网络中的一个或多个节点的相应资源的分配。节点的资源可包括但不限于:计算资源、存储资源、网络资源等。节点计算资源的示例可包括但不限于:弹性云服务器(ecs)实例、集群id、容器组(pod)id等。节点存储资源的示例可包括但不限于:云盘id、网络附属存储(nas)id等。节点网络资源的示例可包括但不限于:服务器负载均衡(slb)/弹性ip(eip,可包括公网ip和/或内网ip)等。
124.参见图5,其示出根据本说明书实施例的用于区块链网络的节点的存储扩容的系统500的示意图。该系统500可与上文参考图1到图4的方法100-400相对应,其细节可参考上文针对各方法的操作的描述。
125.如图5所示,系统500可包括:节点选择模块502,其可用于基于该区块链网络的容错算法自动选择待扩容节点集合。节点选择模块502的操作的细节可参考上文针对操作102的描述。
126.系统500还可包括:校验模块504,其可用于自动校验所选择的待扩容节点集合中的每个待扩容节点的状态,以确定该待扩容节点的状态是否符合存储扩容条件。校验模块504的操作的细节可参考上文针对操作104的描述。
127.系统500还可包括:存储扩容模块506,其可用于对符合存储扩容条件的待扩容节点执行自动存储扩容。存储扩容模块506的操作的细节可参考上文针对操作106的描述。
128.系统500还可包括:检查模块508,其可用于在执行自动存储扩容后,对存储扩容后的节点的状态执行自动检查。检查模块508的操作的细节可参考上文针对操作108的描述。
129.应当领会,系统500还可包括更多模块,以用于执行上文参考图1-图4所述的方法的各个操作。
130.图6示出用于实现根据本说明书一个或多个实施例的系统(如上文的系统500)的装置600的示意框图。该装置可包括处理器610以及存储器615,该处理器被配置成执行如上所述的任何方法,如图1-图4所示的方法等等。该存储器可存储例如所获取的文章、与产品或服务相关联的信息、处理过程中可能产生的数据、以及必要的算法等等。
131.该装置600可包括网络连接元件625,例如可包括通过有线连接或无线连接来连接到其它设备的网络连接设备。该无线连接例如可以为wifi连接、蓝牙连接、3g/4g/5g网络连接等。例如,文章获取模块可通过网络连接元件来连接到信息源,从而获取文章。还可经由网络连接元件接收用户从其它设备所进行的输入或者将数据传送到其它设备以供显示。
132.该装置还可选地包括其它外围元件620,例如输入装置(如键盘、鼠标)、输出装置(如显示器)等。例如,在基于用户输入的方法中,用户可经由输入装置执行输入操作。还可经由输出装置向用户输出相应的信息。
133.这些模块中的每一者可彼此直接或间接通信,例如,经由一条或多条总线(例如总
线605)。
134.而且,本技术还公开了一种包括存储于其上的计算机可执行指令的计算机可读存储介质,该计算机可执行指令在被处理器执行时使得该处理器执行本文所述的各实施例的方法。
135.此外,本技术还公开了一种装置,该装置包括处理器以及存储有计算机可执行指令的存储器,该计算机可执行指令在被处理器执行时使得该处理器执行本文所述的各实施例的方法。
136.此外,本技术还公开了一种系统,该系统包括用于实现本文所述的各实施例的方法的装置。
137.可以理解,根据本说明书的一个或多个实施例的方法可以用软件、固件或其组合来实现。
138.应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参考方法实施例的部分说明即可。
139.应该理解,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
140.应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
141.在本说明书全文中,“近乎”、“几乎”、“大致”的意思是偏差不大于10%。
142.还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。
143.同样,需要指出的是,虽然已参考当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本说明书的一个或多个实施例,在没有脱离本发明精神的情况下还可做出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本技术的权利要求书的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献