CN108737153A - 区块链灾备系统、方法、服务器和计算机可读存储介质 - Google Patents
区块链灾备系统、方法、服务器和计算机可读存储介质 Download PDFInfo
- Publication number
- CN108737153A CN108737153A CN201810259900.6A CN201810259900A CN108737153A CN 108737153 A CN108737153 A CN 108737153A CN 201810259900 A CN201810259900 A CN 201810259900A CN 108737153 A CN108737153 A CN 108737153A
- Authority
- CN
- China
- Prior art keywords
- block chain
- main equipment
- node
- chain node
- equipment room
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开一种区块链灾备系统、方法、服务器和计算机可读存储介质。本发明将区块链节点按照预先确定的公式部署至一个第一主机房、一个备用机房及至少一个第二主机房中,在宕机节点数大于实用拜占庭容错算法容错能力理论值时,通过区块链灾备服务器启用备用机房进行灾备补救。与现有技术相比,本发明在进行区块链的灾备补救的同时,保证了系统的可用性。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种区块链灾备系统、方法、服务器和计算机可读存储介质。
背景技术
实用拜占庭容错共识算法(PBFT,Practical Byzantine Fault Tolerance)是区块链系统的一种主流共识算法,该算法共识效率高,并具备容错节点故障或恶意攻击的特性。算法本身的性质保证当节点总数N=3f+1时,共识结果的正确性不会受到影响,即当失效或恶意节点总数f小于区块链系统节点总数N的1/3时,整体区块链系统仍然能够继续正常运行。参照图1,在上线部署的基于PBFT共识算法的区块链系统方案中,常用的部署方案采用4机房,每机房1节点。在某机房宕机的情况下,系统仍然可以正常运转。这种常用的部署方案存在的问题为:当机房宕机数超过1个时,网络故障导致大于1/3的节点无法正常运行,整个区块链系统将无法继续达成共识,导致系统瘫痪,无法继续正常运转。
发明内容
本发明的主要目的是提供一种适用于实用拜占庭容错共识算法区块链灾备系统,当宕机节点数大于实用拜占庭容错算法容错能力理论值时,可主动对区块链实施灾备补救。
为实现上述目的,本发明提出的一种区块链灾备系统,该区块链灾备系统适用于基于实用拜占庭容错共识算法的区块链,所述区块链灾备系统包括:一个第一主机房,与所述第一主机房通信连接的至少一个第二主机房,分别与所述第一主机房和各个所述第二主机房通信连接的一个备用机房,及分别与所述第一主机房、各个所述第二主机房和所述备用机房通信连接的区块链灾备服务器,其中:
所述备用机房配置的第三区块链节点的数量X3与所述第一主机房配置的第一区块链节点的数量X1相等;所有所述第二主机房配置的第二区块链节点的总数量X2与所述第一主机房配置的第一区块链节点的数量X1满足一个预先确定的公式;
所述区块链灾备服务器用于:监控所述第一主机房配置的各个第一区块链节点、各个所述第二主机房配置的各个第二区块链节点的故障;若所有所述第二主机房配置的第二区块链节点中有部分或者全部所述第二区块链节点发生故障且所述第一主机房配置的第一区块链节点未发生故障,则针对所述区块链不进行任何灾备补救,正常运行的所述区块链节点正常达成共识;或者,若所述第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则按照预先确定的灾备补救规则并基于所述备用机房配置进行灾备补救。
优选地,所述预先确定的灾备补救规则包括:
E1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
E2、将所述备用机房的各个第三区块链节点配置成正常节点,并根据预先确定的所述第一区块链节点与所述第三区块链节点的映射关系,将各个所述第三区块链节点与各个所述第一区块链节点一一对应,各个所述第三区块链节点分别预先配置有与对应的所述第一区块链节点相同的节点密钥;
E3、在各个所述第三区块链节点配置成正常节点成功后,将所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点的机器重启,由重启后的所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
优选地,所述预先确定的灾备补救规则包括:
F1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
F2、分别修改各个所述第二主机房的验证节点的配置文件,将配置节点数从X1+X2节点减少到X2节点,即删除所述第一主机房的所有节点密钥,只保留各个所述第二主机房的X2个节点密钥;
F3、重启各个所述第二主机房的各个区块链节点,由各个所述第二主机房的X2个区块链节点处理缓存的交易和新交易,交易执行在各个所述第二主机房的X2个区块链节点中达成共识;
F4、将所述备用机房的各个第三区块链节点配置成正常节点并与所述第一主机房的各个第一区块链节点一一对应,为所述备用机房的各个第三区块链节点分别采用与对应的所述第一区块链节点相同的节点密钥;
F5、将各个所述第三区块链节点逐个加入到所述区块链共识网络中,将参与所述区块链运行的节点数从X2节点增加到X1+X2节点,即在各个所述第二主机房的X2个节点密钥基础上,增加所述备用机房的X1个节点密钥;
F6、在各个所述第三区块链节点加入成功后,由所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
优选地,所述预先确定的灾备补救规则还包括:
若所述第一主机房配置的第一区块链节点中发生故障的区块链节点的数量X4小于或者等于X2且所述第二主机房配置的第二区块链节点未发生故障,则针对所述区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识。
此外,为实现上述目的,本发明还提供一种区块链灾备方法,该方法适用于基于实用拜占庭容错共识算法的区块链,所述区块链灾备方法包括如下步骤:
区块链灾备服务器监控第一主机房配置的各个第一区块链节点、各个第二主机房配置的各个第二区块链节点的故障;
若所有所述第二主机房配置的第二区块链节点中有部分或者全部第二区块链节点发生故障且所述第一主机房配置的第一区块链节点未发生故障,则区块链灾备服务器针对所述区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识;或者,
若所述第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则区块链灾备服务器按照预先确定的灾备补救规则并基于备用机房配置进行灾备补救;
其中,所述备用机房配置的第三区块链节点的数量X3与所述第一主机房配置的第一区块链节点的数量X1相等;所有所述第二主机房配置的第二区块链节点的总数量X2与所述第一主机房配置的第一区块链节点的数量X1满足一个预先确定的公式。
优选地,所述预先确定的灾备补救规则包括:
E1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
E2、将所述备用机房的各个第三区块链节点配置成正常节点,并根据预先确定的所述第一区块链节点与所述第三区块链节点的映射关系,将各个所述第三区块链节点与各个所述第一区块链节点一一对应,各个所述第三区块链节点分别预先配置有与对应的所述第一区块链节点相同的节点密钥;
E3、在各个所述第三区块链节点配置成正常节点成功后,将所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点的机器重启,由重启后的所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
优选地,所述预先确定的灾备补救规则包括:
F1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
F2、分别修改各个所述第二主机房的验证节点的配置文件,将配置节点数从X1+X2节点减少到X2节点,即删除所述第一主机房的所有节点密钥,只保留各个所述第二主机房的X2个节点密钥;
F3、重启各个所述第二主机房的各个区块链节点,由各个所述第二主机房的X2个区块链节点处理缓存的交易和新交易,交易执行在各个所述第二主机房的X2个区块链节点中达成共识;
F4、将所述备用机房的各个第三区块链节点配置成正常节点并与所述第一主机房的各个第一区块链节点一一对应,为所述备用机房的各个第三区块链节点分别采用与对应的所述第一区块链节点相同的节点密钥;
F5、将各个所述第三区块链节点逐个加入到所述区块链共识网络中,将参与所述区块链运行的节点数从X2节点增加到X1+X2节点,即在各个所述第二主机房的X2个节点密钥基础上,增加所述备用机房的X1个节点密钥;
F6、在各个所述第三区块链节点加入成功后,由所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
优选地,所述预先确定的灾备补救规则还包括:
若所述第一主机房配置的第一区块链节点中发生故障的区块链节点的数量X4小于或者等于X2且所述第二主机房配置的第二区块链节点未发生故障,则针对所述区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识。
此外,为实现上述目的,本发明还提供一种区块链灾备服务器,该区块链灾备服务器适用于基于实用拜占庭容错共识算法的区块链,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的区块链灾备程序,所述区块链灾备程序被所述处理器执行时实现如下步骤:
监控第一主机房配置的各个第一区块链节点、各个第二主机房配置的各个第二区块链节点的故障;
若所有所述第二主机房配置的第二区块链节点中有部分或者全部第二区块链节点发生故障且所述第一主机房配置的第一区块链节点未发生故障,则针对区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识;或者,
若所述第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则按照预先确定的灾备补救规则并基于备用机房配置进行灾备补救;
其中,所述备用机房配置的第三区块链节点的数量X3与所述第一主机房配置的第一区块链节点的数量X1相等;所有所述第二主机房配置的第二区块链节点的总数量X2与所述第一主机房配置的第一区块链节点的数量X1满足一个预先确定的公式。
优选地,所述预先确定的灾备补救规则包括:
E1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
E2、将所述备用机房的各个第三区块链节点配置成正常节点,并根据预先确定的所述第一区块链节点与所述第三区块链节点的映射关系,将各个所述第三区块链节点与各个所述第一区块链节点一一对应,各个所述第三区块链节点分别预先配置有与对应的所述第一区块链节点相同的节点密钥;
E3、在各个所述第三区块链节点配置成正常节点成功后,将所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点的机器重启,由重启后的所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
优选地,所述预先确定的灾备补救规则包括:
F1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
F2、分别修改各个所述第二主机房的验证节点的配置文件,将配置节点数从X1+X2节点减少到X2节点,即删除所述第一主机房的所有节点密钥,只保留各个所述第二主机房的X2个节点密钥;
F3、重启各个所述第二主机房的各个区块链节点,由各个所述第二主机房的X2个区块链节点处理缓存的交易和新交易,交易执行在各个所述第二主机房的X2个区块链节点中达成共识;
F4、将所述备用机房的各个第三区块链节点配置成正常节点并与所述第一主机房的各个第一区块链节点一一对应,为所述备用机房的各个第三区块链节点分别采用与对应的所述第一区块链节点相同的节点密钥;
F5、将各个所述第三区块链节点逐个加入到所述区块链共识网络中,将参与所述区块链运行的节点数从X2节点增加到X1+X2节点,即在各个所述第二主机房的X2个节点密钥基础上,增加所述备用机房的X1个节点密钥;
F6、在各个所述第三区块链节点加入成功后,由所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
优选地,所述预先确定的灾备补救规则还包括:
若所述第一主机房配置的区块链节点中发生故障的区块链节点的数量X4小于或者等于X2且所述第二主机房配置的第二区块链节点未发生故障,则区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有区块链灾备程序,所述区块链灾备程序可被至少一个处理器执行,以使所述至少一个处理器执行上述任一项所述的区块链灾备方法。
本发明将区块链节点按照预先确定的公式部署至一个第一主机房、一个备用机房及至少一个第二主机房中,在宕机节点数大于实用拜占庭容错算法容错能力理论值时,通过区块链灾备服务器启用备用机房进行灾备补救。与现有技术相比,本发明在进行区块链的灾备补救的同时,保证了系统的可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为现有技术中基于PBFT共识算法的区块链系统的系统架构示意图;
图2为本发明区块链灾备系统一实施例的系统架构示意图;
图3为本发明区块链灾备系统一实施例的系统架构示意图;
图4为本发明区块链灾备程序一实施例的运行环境示意图;
图5为本发明区块链灾备程序一实施例的程序模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图2所示,图2为本发明区块链灾备系统一实施例的系统架构示意图。
本实施例中,该区块链灾备系统适用于基于实用拜占庭容错共识算法的区块链,所述区块链灾备系统包括:一个第一主机房2,与所述第一主机房2通信连接的至少一个第二主机房3(本实施例以设置一个第二主机房3进行说明),分别与所述第一主机房2和各个所述第二主机房3通信连接的一个备用机房4,及分别与所述第一主机房2、各个所述第二主机房3和所述备用机房4通信连接的区块链灾备服务器1,其中:
所述备用机房4配置的第三区块链节点的数量X3与所述第一主机房2配置的第一区块链节点的数量X1相等;所有所述第二主机房3配置的第二区块链节点的总数量X2与所述第一主机房2配置的第一区块链节点的数量X1满足一个预先确定的公式。
所述区块链灾备服务器1用于:监控第一主机房2配置的各个第一区块链节点、各个第二主机房3配置的各个第二区块链节点的故障;若所有所述第二主机房3配置的第二区块链节点中有部分或者全部第二区块链节点发生故障且所述第一主机房2配置的第一区块链节点未发生故障,则针对所述区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识;或者,若所述第一主机房2配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则按照预先确定的灾备补救规则并基于备用机房4配置进行灾备补救。
本实施例中,预先确定的公式为X2=(X1-1)/2),以第一区块链节点数9个、第二区块链节点总数量4个及第三区块链节点数9个为例进行说明,在一些实施例中,第二主机房3设置的数量也可能大于1,比如3个,该三个第二主机房3分别配置的第二区块链节点的数量分别为X21、X22及X23,则该第二区块链节点总数量4即为X21、X22及X23的总和。
若区块链灾备服务器1监测到第二主机房3配置的第二区块链节点中有部分或者全部发生故障,由于当前启用的区块链节点总数N为13,即使第二区块链节点全部发生故障,发生故障的区块链节点数也未超过区块链节点总数的三分之一,按照实用拜占庭容错共识算法,共识结果的正确性不会受影响,系统仍然能继续正常运行。
若区块链灾备服务器1监测到第一主机房2配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则需要确定第一区块链节点中发生故障的节点数量,根据该确定的发生故障的节点数量,按照预先确定的灾备补救规则并基于备用机房4配置进行灾备补救。
优选地,本实施例中,上述预先确定的灾备补救规则包括:
若所述第一主机房2配置的第一区块链节点中发生故障的区块链节点的数量X4小于或者等于X2且所述第二主机房配置的第二区块链节点未发生故障,则区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识。
若区块链灾备服务器1监测到第一区块链节点中发生故障的区块链节点数量X4小于或者等于X2,例如,X4为4,X4等于X2,由于启用的区块链节点总数N为13,X4并未超过N的三分之一,即发生故障的区块链节点数也未超过区块链节点总数的三分之一,按照实用拜占庭容错共识算法,共识结果的正确性不会受影响,系统仍然能继续正常运行。因此,在这种情况下,区块链灾备服务器1针对区块链不进行任何灾备补救。
若第一主机房2配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2,则可参照下列方法执行:
优选地,本实施例中,上述预先确定的灾备补救规则的方案a包括:
E1、若所述第一主机房2配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房3配置的第二区块链节点未发生故障,则控制各个所述第二主机房3开启对所述第一主机房2的防火墙,以防止所述第一主机房2异常连接到各个所述第二主机房3;
E2、将所述备用机房4的各个第三区块链节点配置成正常节点,并根据预先确定的第一区块链节点与第三区块链节点的映射关系,将各个第三区块链节点与各个第一区块链节点一一对应,各个第三区块链节点分别预先配置有与对应的第一区块链节点相同的节点密钥;
E3、在各个第三区块链节点配置成正常节点成功后,将所有所述第二主机房3配置的所有第二区块链节点和所述备用机房4配置的所有第三区块链节点的机器重启,由重启后的所有所述第二主机房3配置的所有第二区块链节点和所述备用机房4配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房3配置的所有第二区块链节点和所述备用机房4配置的所有第三区块链节点中达成共识。
本实施例中,若发生故障的第一区块链节点的数量X4大于X2,例如,X4为5,X2为4,由于启用的区块链节点总数N为13,X4并已超过N的三分之一,需要针对区块链进行灾备补救。为了防止在利用备用机房4进行灾备过程中,所述第一主机房2突然恢复正常从而造成冲突,区块链灾备服务器1控制第二主机房3开启对第一主机房2的防火墙,以防止第一主机房2异常连接到第二主机房3;启用备用机房4,将备用机房4的9个第三区块链节点配置成正常节点,根据预先确定的第一区块链节点与第三区块链节点的映射关系,将各个第三区块链节点与各个第一区块链节点一一对应,各个第三区块链节点分别预先配置有与对应的第一区块链节点相同的节点密钥;此时,第三区块链节点已被配置成可正常使用的节点,将所有第二区块链节点和第三区块链节点的机器重启,交易执行在所有第二区块链节点和所有第三区块链节点中达成共识。通过上述方法,可宕机节点数大于实用拜占庭容错算法容错能力理论值(1/3节点)时,仍然可以通过切换共识节点数达成共识。
优选地,本实施例中,上述预先确定的灾备补救规则的方案b包括:
F1、若所述第一主机房2配置的第一区块链节点中发生故障的第一区块链节点的数量X4(例如,5)大于X2(例如,4)且所述第二主机房3配置的第二区块链节点未发生故障,则控制各个所述第二主机房3开启对所述第一主机房2的防火墙,以防止所述第一主机房2异常连接到各个所述第二主机房3;
F2、分别修改各个所述第二主机房3的验证节点的配置文件,将配置节点数从X1+X2(例如,13)节点减少到X2(例如,4)节点,即删除所述第一主机房2的所有节点密钥,只保留各个所述第二主机房3的X2(例如,4)个节点密钥;
F3、重启各个所述第二主机房3的各个区块链节点,由各个所述第二主机房3的X2个区块链节点处理缓存的交易和新交易,交易执行在各个所述第二主机房3的X2个区块链节点中达成共识;
F4、将所述备用机房4的各个第三区块链节点配置成正常节点并与所述第一主机房2的各个第一区块链节点一一对应,为所述备用机房4的各个第三区块链节点分别采用与对应的第一区块链节点相同的节点密钥;
F5、将各个第三区块链节点逐个加入到区块链共识网络中,将参与区块链运行的节点数从X2(例如,4)节点增加到X1+X2(例如,13)节点,即在各个所述第二主机房3的X2个节点密钥基础上,增加所述备用机房4的X1个节点密钥;
F6、在各个第三区块链节点加入成功后,由所有所述第二主机房3配置的所有第二区块链节点和所述备用机房4配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房3配置的所有第二区块链节点和所述备用机房4配置的所有第三区块链节点中达成共识。
其中,上述将各个第三区块链节点逐个加入到区块链共识网络中的具体方法可以是:发起区块链节点增加的交易并由当前正常运行的区块链节点进行共识投票,投票通过后将各个第三区块链节点逐个加入到区块链共识网络中。
上述步骤F1、F2、F3的作用是在利用备用机房4进行灾备成功之前,防止区块链因无法对交易产生共识,从而影响系统的正常运转。上述方案a的方法在利用备用机房4进行灾备成功之前,无法对交易产生共识,需重启第二区块链节点及第三区块链节点的机器之后,其系统才能继续正常运转,本方案b则进一步解决了该问题,确保在进行灾备补救时,区块链仍然可对交易产生共识,不影响系统的正常运转。
需要注意的是,本实施例中,若存在第一主机房2配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,同时第二主机房3配置的第二区块链节点中也有部分或者全部第二区块链节点发生故障,则区块链灾备服务器针对区块链不进行任何灾备补救,发送警报提醒进行人工灾备补救。
本发明还提供一种区块链灾备方法。
如图3所示,图3为本发明区块链灾备方法一实施例的流程示意图。
本实施例中,该方法包括如下步骤:
A1、区块链灾备服务器监控第一主机房配置的各个第一区块链节点、各个第二主机房配置的各个第二区块链节点的故障;
本实施例中,预先设置有一个第一主机房,与第一主机房通信连接的至少一个第二主机房(本实施例中以设置一个第二主机房为例说明),分别与第一主机房和各个第二主机房通信连接的一个备用机房,及分别与第一主机房、各个第二主机房和备用机房通信连接的区块链灾备服务器。所述备用机房配置的第三区块链节点的数量X3与所述第一主机房配置的第一区块链节点的数量X1相等;所有所述第二主机房配置的第二区块链节点的总数量X2与所述第一主机房配置的第一区块链节点的数量X1满足一个预先确定的公式,例如,该预先确定的公式为X2=(X1-1)/2)。
A2、若所有所述第二主机房配置的第二区块链节点中有部分或者全部第二区块链节点发生故障且所述第一主机房配置的第一区块链节点未发生故障,则区块链灾备服务器针对区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识;或者,
A3、若所述第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则区块链灾备服务器按照预先确定的灾备补救规则并基于备用机房配置进行灾备补救。
本实施例中,以第一区块链节点数9个、第二区块链节点总数量4个及第三区块链节点数9个为例进行说明,在一些实施例中,第二主机房设置的数量也可能大于1,比如3个,该三个第二主机房分别配置的第二区块链节点的数量分别为X21、X22及X23,则该第二区块链节点总数量4即为X21、X22及X23的总和。
若区块链灾备服务器监测到第二主机房配置的第二区块链节点中有部分或者全部发生故障,由于当前启用的区块链节点总数N为13,即使第二区块链节点全部发生故障,发生故障的区块链节点数也未超过区块链节点总数的三分之一,按照实用拜占庭容错共识算法,共识结果的正确性不会受影响,系统仍然能继续正常运行。
若区块链灾备服务器监测到第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则需要确定第一区块链节点中发生故障的节点数量,根据该确定的发生故障的节点数量,按照预先确定的灾备补救规则并基于备用机房配置进行灾备补救。
优选地,本实施例中,上述预先确定的灾备补救规则包括:
若所述第一主机房配置的第一区块链节点中发生故障的区块链节点的数量X4小于或者等于X2,则区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识。
若区块链灾备服务器监测到第一区块链节点中发生故障的区块链节点数量X4小于或者等于X2且所述第二主机房配置的第二区块链节点未发生故障,例如,X4为4,X4等于X2,由于启用的区块链节点总数N为13,X4并未超过N的三分之一,即发生故障的区块链节点数也未超过区块链节点总数的三分之一,按照实用拜占庭容错共识算法,共识结果的正确性不会受影响,系统仍然能继续正常运行。因此,在这种情况下,区块链灾备服务器针对区块链不进行任何灾备补救。
若第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2,则可参照下列方法执行:
优选地,本实施例中,上述预先确定的灾备补救规则的方案a包括:
E1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
E2、将所述备用机房的各个第三区块链节点配置成正常节点,并根据预先确定的第一区块链节点与第三区块链节点的映射关系,将各个第三区块链节点与各个第一区块链节点一一对应,各个第三区块链节点分别预先配置有与对应的第一区块链节点相同的节点密钥;
E3、在各个第三区块链节点配置成正常节点成功后,将所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点的机器重启,由重启后的所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
本实施例中,若发生故障的第一区块链节点的数量X4大于X2,例如,X4为5,X2为4,由于启用的区块链节点总数N为13,X4并已超过N的三分之一,需要针对区块链进行灾备补救。为了防止在利用备用机房进行灾备过程中,所述第一主机房突然恢复正常从而造成冲突,区块链灾备服务器控制第二主机房开启对第一主机房的防火墙,以防止第一主机房异常连接到第二主机房;启用备用机房,将备用机房9个第三区块链节点配置成正常节点,根据预先确定的第一区块链节点与第三区块链节点的映射关系,将各个第三区块链节点与各个第一区块链节点一一对应,各个第三区块链节点分别预先配置有与对应的第一区块链节点相同的节点密钥;此时,第三区块链节点已被配置成可正常使用的节点,将所有第二区块链节点和第三区块链节点的机器重启,交易执行在所有第二区块链节点和所有第三区块链节点中达成共识。通过上述方法,可宕机节点数大于实用拜占庭容错算法容错能力理论值(1/3节点)时,仍然可以使系统快速的恢复正常运行。
优选地,本实施例中,上述预先确定的灾备补救规则的方案b包括:
F1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4(例如,5)大于X2(例如,4)且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
F2、分别修改各个所述第二主机房的验证节点的配置文件,将配置节点数从X1+X2(例如,13)节点减少到X2(例如,4)节点,即删除所述第一主机房的所有节点密钥,只保留各个所述第二主机房的X2(例如,4)个节点密钥;
F3、重启各个所述第二主机房的各个区块链节点,由各个所述第二主机房的X2个区块链节点处理缓存的交易和新交易,交易执行在各个所述第二主机房的X2个区块链节点中达成共识;
F4、将所述备用机房的各个第三区块链节点配置成正常节点并与所述第一主机房的各个第一区块链节点一一对应,为所述备用机房的各个第三区块链节点分别采用与对应的第一区块链节点相同的节点密钥;
F5、将各个第三区块链节点逐个加入到区块链共识网络中,将参与区块链运行的节点数从X2(例如,4)节点增加到X1+X2(例如,13)节点,即在各个所述第二主机房的X2个节点密钥基础上,增加所述备用机房的X1个节点密钥;
F6、在各个第三区块链节点加入成功后,由所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
其中,上述将各个第三区块链节点逐个加入到区块链共识网络中的具体方法可以是:发起区块链节点增加的交易并由当前正常运行的区块链节点进行共识投票,投票通过后将各个第三区块链节点逐个加入到区块链共识网络中。
上述步骤F1、F2、F3的作用是在利用备用机房进行灾备成功之前,防止区块链因无法对交易产生共识,从而影响系统的正常运转。上述方案a的方法在利用备用机房进行灾备成功之前,无法对交易产生共识,需重启第二区块链节点及第三区块链节点的机器之后,其系统才能继续正常运转,本方案b则进一步解决了该问题,确保在进行灾备补救时,区块链仍然可对交易产生共识,不影响系统的正常运转。
需要注意的是,本实施例中,若存在第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,同时第二主机房配置的第二区块链节点中也有部分或者全部第二区块链节点发生故障,则区块链灾备服务器针对区块链不进行任何灾备补救,发送警报提醒进行人工灾备补救。
此外,本发明还提供一种区块链灾备程序。
请参阅图4,是本发明区块链灾备程序10较一实施例的运行环境示意图。
在本实施例中,区块链灾备程序10安装并运行于区块链灾备服务器1中。区块链灾备服务器1可包括,但不仅限于,存储器11、处理器12及显示器13。图4仅示出了具有组件11-13的区块链灾备服务器1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
存储器11在一些实施例中可以是区块链灾备服务器1的内部存储单元,例如该区块链灾备服务器1的硬盘或内存。存储器11在另一些实施例中也可以是电子装置1的外部存储设备,例如区块链灾备服务器1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括区块链灾备服务器1的内部存储单元也包括外部存储设备。存储器11用于存储安装于区块链灾备服务器1的应用软件及各类数据,例如区块链灾备程序10的程序代码等。存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行区块链灾备程序10等。
显示器13在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器13用于显示在区块链灾备服务器1中处理的信息以及用于显示可视化的用户界面。区块链灾备服务器1的部件11-13通过系统总线相互通信。
请参阅图5,是本发明区块链灾备程序10一实施例的程序模块图。在本实施例中,区块链灾备程序10可以被分割成一个或多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行,以完成本发明。例如,在图5中,区块链灾备程序10可以被分割成监测模块101、灾备模块102。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述区块链灾备程序10在区块链灾备服务器1中的执行过程,其中:
监测模块101,用于监控第一主机房配置的各个第一区块链节点、各个第二主机房配置的各个第二区块链节点的故障;
灾备模块102,用于若所有所述第二主机房配置的第二区块链节点中有部分或者全部第二区块链节点发生故障且所述第一主机房配置的第一区块链节点未发生故障,则针对区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识;或者,若所述第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则按照预先确定的灾备补救规则并基于备用机房配置进行灾备补救。
本实施例中,预先设置有一个第一主机房,与第一主机房通信连接的至少一个第二主机房(本实施例中以设置一个第二主机房为例说明),分别与第一主机房和各个第二主机房通信连接的一个备用机房,及分别与第一主机房、各个第二主机房和备用机房通信连接的区块链灾备服务器。所述备用机房配置的第三区块链节点的数量X3与所述第一主机房配置的第一区块链节点的数量X1相等;所有所述第二主机房配置的第二区块链节点的总数量X2与所述第一主机房配置的第一区块链节点的数量X1满足一个预先确定的公式,例如,该预先确定的公式为X2=(X1-1)/2)。
本实施例中,以第一区块链节点数9个、第二区块链节点总数量4个及第三区块链节点数9个为例进行说明,在一些实施例中,第二主机房设置的数量也可能大于1,比如3个,该三个第二主机房分别配置的第二区块链节点的数量分别为X21、X22及X23,则该第二区块链节点总数量4即为X21、X22及X23的总和。
若区块链灾备服务器监测到第二主机房配置的第二区块链节点中有部分或者全部发生故障,由于当前启用的区块链节点总数N为13,即使第二区块链节点全部发生故障,发生故障的区块链节点数也未超过区块链节点总数的三分之一,按照实用拜占庭容错共识算法,共识结果的正确性不会受影响,系统仍然能继续正常运行。
若区块链灾备服务器监测到第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则需要确定第一区块链节点中发生故障的节点数量,根据该确定的发生故障的节点数量,按照预先确定的灾备补救规则并基于备用机房配置进行灾备补救。
优选地,本实施例中,上述预先确定的灾备补救规则包括:
若所述第一主机房配置的第一区块链节点中发生故障的区块链节点的数量X4小于或者等于X2且所述第二主机房配置的第二区块链节点未发生故障,则灾备模块102不进行任何灾备补救,正常运行的区块链节点正常达成共识。
若监测模块101监测到第一区块链节点中发生故障的区块链节点数量X4小于或者等于X2,例如,X4为4,X4等于X2,由于启用的区块链节点总数N为13,X4并未超过N的三分之一,即发生故障的区块链节点数也未超过区块链节点总数的三分之一,按照实用拜占庭容错共识算法,共识结果的正确性不会受影响,系统仍然能继续正常运行。因此,在这种情况下,灾备模块102针对区块链不进行任何灾备补救。
若第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2,则可参照下列方法执行:
优选地,本实施例中,上述预先确定的灾备补救规则的方案a包括:
E1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
E2、将所述备用机房的各个第三区块链节点配置成正常节点,并根据预先确定的第一区块链节点与第三区块链节点的映射关系,将各个第三区块链节点与各个第一区块链节点一一对应,各个第三区块链节点分别预先配置有与对应的第一区块链节点相同的节点密钥;
E3、在各个第三区块链节点配置成正常节点成功后,将所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点的机器重启,由重启后的所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
本实施例中,若发生故障的第一区块链节点的数量X4大于X2,例如,X4为5,X2为4,由于启用的区块链节点总数N为13,X4并已超过N的三分之一,需要针对区块链进行灾备补救。为了防止在利用备用机房进行灾备过程中,所述第一主机房突然恢复正常从而造成冲突,灾备模块102控制第二主机房开启对第一主机房的防火墙,以防止第一主机房异常连接到第二主机房;启用备用机房,将备用机房9个第三区块链节点配置成正常节点,根据预先确定的第一区块链节点与第三区块链节点的映射关系,将各个第三区块链节点与各个第一区块链节点一一对应,各个第三区块链节点分别预先配置有与对应的第一区块链节点相同的节点密钥;此时,第三区块链节点已被配置成可正常使用的节点,将所有第二区块链节点和第三区块链节点的机器重启,交易执行在所有第二区块链节点和所有第三区块链节点中达成共识。通过上述方法,可宕机节点数大于实用拜占庭容错算法容错能力理论值(1/3节点)时,仍然可以通过切换共识节点数达成共识。
优选地,本实施例中,上述预先确定的灾备补救规则的方案b包括:
F1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4(例如,5)大于X2(例如,4)且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
F2、分别修改各个所述第二主机房的验证节点的配置文件,将配置节点数从X1+X2(例如,13)节点减少到X2(例如,4)节点,即删除所述第一主机房的所有节点密钥,只保留各个所述第二主机房的X2(例如,4)个节点密钥;
F3、重启各个所述第二主机房的各个区块链节点,由各个所述第二主机房的X2个区块链节点处理缓存的交易和新交易,交易执行在各个所述第二主机房的X2个区块链节点中达成共识;
F4、将所述备用机房的各个第三区块链节点配置成正常节点并与所述第一主机房的各个第一区块链节点一一对应,为所述备用机房的各个第三区块链节点分别采用与对应的第一区块链节点相同的节点密钥;
F5、将各个第三区块链节点逐个加入到区块链共识网络中,将参与区块链运行的节点数从X2(例如,4)节点增加到X1+X2(例如,13)节点,即在各个所述第二主机房的X2个节点密钥基础上,增加所述备用机房的X1个节点密钥;
F6、在各个第三区块链节点加入成功后,由所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
其中,上述将各个第三区块链节点逐个加入到区块链共识网络中的具体方法可以是:发起区块链节点增加的交易并由当前正常运行的区块链节点进行共识投票,投票通过后将各个第三区块链节点逐个加入到区块链共识网络中。
上述步骤F1、F2、F3的作用是在利用备用机房进行灾备成功之前,防止区块链因无法对交易产生共识,从而影响系统的正常运转。上述方案a的方法在利用备用机房进行灾备成功之前,无法对交易产生共识,需重启第二区块链节点及第三区块链节点的机器之后,其系统才能继续正常运转,本方案b则进一步解决了该问题,确保在进行灾备补救时,区块链仍然可对交易产生共识,不影响系统的正常运转。
需要注意的是,本实施例中,若存在第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,同时第二主机房配置的第二区块链节点中也有部分或者全部第二区块链节点发生故障,则灾备模块102针对区块链不进行任何灾备补救,发送警报提醒进行人工灾备补救。
进一步地,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有区块链灾备程序,所述区块链灾备程序可被至少一个处理器执行,以使所述至少一个处理器执行上述任一实施例中的区块链灾备方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (13)
1.一种区块链灾备系统,该区块链灾备系统适用于基于实用拜占庭容错共识算法的区块链,其特征在于,所述区块链灾备系统包括:一个第一主机房,与所述第一主机房通信连接的至少一个第二主机房,分别与所述第一主机房和各个所述第二主机房通信连接的一个备用机房,及分别与所述第一主机房、各个所述第二主机房和所述备用机房通信连接的区块链灾备服务器,其中:
所述备用机房配置的第三区块链节点的数量X3与所述第一主机房配置的第一区块链节点的数量X1相等;所有所述第二主机房配置的第二区块链节点的总数量X2与所述第一主机房配置的第一区块链节点的数量X1满足一个预先确定的公式;
所述区块链灾备服务器用于:监控所述第一主机房配置的各个第一区块链节点、各个所述第二主机房配置的各个第二区块链节点的故障;若所有所述第二主机房配置的第二区块链节点中有部分或者全部所述第二区块链节点发生故障且所述第一主机房配置的第一区块链节点未发生故障,则针对所述区块链不进行任何灾备补救,正常运行的所述区块链节点正常达成共识;或者,若所述第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则按照预先确定的灾备补救规则并基于所述备用机房配置进行灾备补救。
2.如权利要求1所述的区块链灾备系统,其特征在于,所述预先确定的灾备补救规则包括:
E1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
E2、将所述备用机房的各个第三区块链节点配置成正常节点,并根据预先确定的所述第一区块链节点与所述第三区块链节点的映射关系,将各个所述第三区块链节点与各个所述第一区块链节点一一对应,各个所述第三区块链节点分别预先配置有与对应的所述第一区块链节点相同的节点密钥;
E3、在各个所述第三区块链节点配置成正常节点成功后,将所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点的机器重启,由重启后的所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
3.如权利要求1所述的区块链灾备系统,其特征在于,所述预先确定的灾备补救规则包括:
F1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
F2、分别修改各个所述第二主机房的验证节点的配置文件,将配置节点数从X1+X2节点减少到X2节点,即删除所述第一主机房的所有节点密钥,只保留各个所述第二主机房的X2个节点密钥;
F3、重启各个所述第二主机房的各个区块链节点,由各个所述第二主机房的X2个区块链节点处理缓存的交易和新交易,交易执行在各个所述第二主机房的X2个区块链节点中达成共识;
F4、将所述备用机房的各个第三区块链节点配置成正常节点并与所述第一主机房的各个第一区块链节点一一对应,为所述备用机房的各个第三区块链节点分别采用与对应的所述第一区块链节点相同的节点密钥;
F5、将各个所述第三区块链节点逐个加入到所述区块链共识网络中,将参与所述区块链运行的节点数从X2节点增加到X1+X2节点,即在各个所述第二主机房的X2个节点密钥基础上,增加所述备用机房的X1个节点密钥;
F6、在各个所述第三区块链节点加入成功后,由所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
4.如权利要求1至3中任一项所述的区块链灾备系统,其特征在于,所述预先确定的灾备补救规则还包括:
若所述第一主机房配置的第一区块链节点中发生故障的区块链节点的数量X4小于或者等于X2且所述第二主机房配置的第二区块链节点未发生故障,则针对所述区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识。
5.一种区块链灾备方法,该方法适用于基于实用拜占庭容错共识算法的区块链,其特征在于,所述区块链灾备方法包括如下步骤:
区块链灾备服务器监控第一主机房配置的各个第一区块链节点、各个第二主机房配置的各个第二区块链节点的故障;
若所有所述第二主机房配置的第二区块链节点中有部分或者全部第二区块链节点发生故障且所述第一主机房配置的第一区块链节点未发生故障,则区块链灾备服务器针对所述区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识;或者,
若所述第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则区块链灾备服务器按照预先确定的灾备补救规则并基于备用机房配置进行灾备补救;
其中,所述备用机房配置的第三区块链节点的数量X3与所述第一主机房配置的第一区块链节点的数量X1相等;所有所述第二主机房配置的第二区块链节点的总数量X2与所述第一主机房配置的第一区块链节点的数量X1满足一个预先确定的公式。
6.如权利要求5所述的区块链灾备方法,其特征在于,所述预先确定的灾备补救规则包括:
E1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
E2、将所述备用机房的各个第三区块链节点配置成正常节点,并根据预先确定的所述第一区块链节点与所述第三区块链节点的映射关系,将各个所述第三区块链节点与各个所述第一区块链节点一一对应,各个所述第三区块链节点分别预先配置有与对应的所述第一区块链节点相同的节点密钥;
E3、在各个所述第三区块链节点配置成正常节点成功后,将所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点的机器重启,由重启后的所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
7.如权利要求5所述的区块链灾备方法,其特征在于,所述预先确定的灾备补救规则包括:
F1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
F2、分别修改各个所述第二主机房的验证节点的配置文件,将配置节点数从X1+X2节点减少到X2节点,即删除所述第一主机房的所有节点密钥,只保留各个所述第二主机房的X2个节点密钥;
F3、重启各个所述第二主机房的各个区块链节点,由各个所述第二主机房的X2个区块链节点处理缓存的交易和新交易,交易执行在各个所述第二主机房的X2个区块链节点中达成共识;
F4、将所述备用机房的各个第三区块链节点配置成正常节点并与所述第一主机房的各个第一区块链节点一一对应,为所述备用机房的各个第三区块链节点分别采用与对应的所述第一区块链节点相同的节点密钥;
F5、将各个所述第三区块链节点逐个加入到所述区块链共识网络中,将参与所述区块链运行的节点数从X2节点增加到X1+X2节点,即在各个所述第二主机房的X2个节点密钥基础上,增加所述备用机房的X1个节点密钥;
F6、在各个所述第三区块链节点加入成功后,由所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
8.如权利要求5至7中任一项所述的区块链灾备方法,其特征在于,所述预先确定的灾备补救规则还包括:
若所述第一主机房配置的第一区块链节点中发生故障的区块链节点的数量X4小于或者等于X2且所述第二主机房配置的第二区块链节点未发生故障,则针对所述区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识。
9.一种区块链灾备服务器,该区块链灾备服务器适用于基于实用拜占庭容错共识算法的区块链,其特征在于,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的区块链灾备程序,所述区块链灾备程序被所述处理器执行时实现如下步骤:
监控第一主机房配置的各个第一区块链节点、各个第二主机房配置的各个第二区块链节点的故障;
若所有所述第二主机房配置的第二区块链节点中有部分或者全部第二区块链节点发生故障且所述第一主机房配置的第一区块链节点未发生故障,则针对区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识;或者,
若所述第一主机房配置的第一区块链节点中有部分或者全部第一区块链节点发生故障,则按照预先确定的灾备补救规则并基于备用机房配置进行灾备补救;
其中,所述备用机房配置的第三区块链节点的数量X3与所述第一主机房配置的第一区块链节点的数量X1相等;所有所述第二主机房配置的第二区块链节点的总数量X2与所述第一主机房配置的第一区块链节点的数量X1满足一个预先确定的公式。
10.如权利要求9所述的区块链灾备服务器,其特征在于,所述预先确定的灾备补救规则包括:
E1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
E2、将所述备用机房的各个第三区块链节点配置成正常节点,并根据预先确定的所述第一区块链节点与所述第三区块链节点的映射关系,将各个所述第三区块链节点与各个所述第一区块链节点一一对应,各个所述第三区块链节点分别预先配置有与对应的所述第一区块链节点相同的节点密钥;
E3、在各个所述第三区块链节点配置成正常节点成功后,将所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点的机器重启,由重启后的所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
11.如权利要求9所述的区块链灾备服务器,其特征在于,所述预先确定的灾备补救规则包括:
F1、若所述第一主机房配置的第一区块链节点中发生故障的第一区块链节点的数量X4大于X2且所述第二主机房配置的第二区块链节点未发生故障,则控制各个所述第二主机房开启对所述第一主机房的防火墙,以防止所述第一主机房异常连接到各个所述第二主机房;
F2、分别修改各个所述第二主机房的验证节点的配置文件,将配置节点数从X1+X2节点减少到X2节点,即删除所述第一主机房的所有节点密钥,只保留各个所述第二主机房的X2个节点密钥;
F3、重启各个所述第二主机房的各个区块链节点,由各个所述第二主机房的X2个区块链节点处理缓存的交易和新交易,交易执行在各个所述第二主机房的X2个区块链节点中达成共识;
F4、将所述备用机房的各个第三区块链节点配置成正常节点并与所述第一主机房的各个第一区块链节点一一对应,为所述备用机房的各个第三区块链节点分别采用与对应的所述第一区块链节点相同的节点密钥;
F5、将各个所述第三区块链节点逐个加入到所述区块链共识网络中,将参与所述区块链运行的节点数从X2节点增加到X1+X2节点,即在各个所述第二主机房的X2个节点密钥基础上,增加所述备用机房的X1个节点密钥;
F6、在各个所述第三区块链节点加入成功后,由所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点处理缓存的交易和新交易,交易执行在所有所述第二主机房配置的所有第二区块链节点和所述备用机房配置的所有第三区块链节点中达成共识。
12.如权利要求9至11中任一项所述的区块链灾备服务器,其特征在于,所述预先确定的灾备补救规则还包括:
若所述第一主机房配置的区块链节点中发生故障的区块链节点的数量X4小于或者等于X2且所述第二主机房配置的第二区块链节点未发生故障,则区块链不进行任何灾备补救,正常运行的区块链节点正常达成共识。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有区块链灾备程序,所述区块链灾备程序可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求5-8中的任一项所述的区块链灾备方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810259900.6A CN108737153B (zh) | 2018-03-27 | 2018-03-27 | 区块链灾备系统、方法、服务器和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810259900.6A CN108737153B (zh) | 2018-03-27 | 2018-03-27 | 区块链灾备系统、方法、服务器和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108737153A true CN108737153A (zh) | 2018-11-02 |
CN108737153B CN108737153B (zh) | 2021-06-15 |
Family
ID=63940563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810259900.6A Active CN108737153B (zh) | 2018-03-27 | 2018-03-27 | 区块链灾备系统、方法、服务器和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108737153B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955564A (zh) * | 2019-12-30 | 2020-04-03 | 深圳探科技术有限公司 | 一种基于区块链技术数据灾备系统 |
CN111159741A (zh) * | 2019-12-30 | 2020-05-15 | 深圳探科技术有限公司 | 一种区块链智能合约信息安全系统 |
WO2020135435A1 (zh) * | 2018-12-29 | 2020-07-02 | 杭州复杂美科技有限公司 | 主链平行链架构系统及区块同步方法、设备和存储介质 |
CN113783947A (zh) * | 2021-08-26 | 2021-12-10 | 浙商银行股份有限公司 | 一种自适应区块链节点容错提升方法、设备及存储介质 |
CN113783947B (zh) * | 2021-08-26 | 2024-05-31 | 浙商银行股份有限公司 | 一种自适应区块链节点容错提升方法、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812748A (en) * | 1993-06-23 | 1998-09-22 | Vinca Corporation | Method for improving recovery performance from hardware and software errors in a fault-tolerant computer system |
EP2883329A4 (en) * | 2012-08-07 | 2015-07-08 | Tencent Tech Shenzhen Co Ltd | COMPUTER INFORMATION SYSTEM AND CORRESPONDING DYNAMIC RESUME RESUME METHOD |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106447311A (zh) * | 2016-09-26 | 2017-02-22 | 北京天德科技有限公司 | 一种四次通信的拜占庭容错算法的区块链建块方法 |
CN106685743A (zh) * | 2017-03-09 | 2017-05-17 | 上海亿账通区块链科技有限公司 | 区块链集群处理系统和方法 |
-
2018
- 2018-03-27 CN CN201810259900.6A patent/CN108737153B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812748A (en) * | 1993-06-23 | 1998-09-22 | Vinca Corporation | Method for improving recovery performance from hardware and software errors in a fault-tolerant computer system |
EP2883329A4 (en) * | 2012-08-07 | 2015-07-08 | Tencent Tech Shenzhen Co Ltd | COMPUTER INFORMATION SYSTEM AND CORRESPONDING DYNAMIC RESUME RESUME METHOD |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106447311A (zh) * | 2016-09-26 | 2017-02-22 | 北京天德科技有限公司 | 一种四次通信的拜占庭容错算法的区块链建块方法 |
CN106685743A (zh) * | 2017-03-09 | 2017-05-17 | 上海亿账通区块链科技有限公司 | 区块链集群处理系统和方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020135435A1 (zh) * | 2018-12-29 | 2020-07-02 | 杭州复杂美科技有限公司 | 主链平行链架构系统及区块同步方法、设备和存储介质 |
CN110955564A (zh) * | 2019-12-30 | 2020-04-03 | 深圳探科技术有限公司 | 一种基于区块链技术数据灾备系统 |
CN111159741A (zh) * | 2019-12-30 | 2020-05-15 | 深圳探科技术有限公司 | 一种区块链智能合约信息安全系统 |
CN113783947A (zh) * | 2021-08-26 | 2021-12-10 | 浙商银行股份有限公司 | 一种自适应区块链节点容错提升方法、设备及存储介质 |
CN113783947B (zh) * | 2021-08-26 | 2024-05-31 | 浙商银行股份有限公司 | 一种自适应区块链节点容错提升方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108737153B (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI746512B (zh) | 實體機器故障分類處理方法、裝置和虛擬機器恢復方法、系統 | |
CN106708622B (zh) | 集群资源处理方法和系统、资源处理集群 | |
CN105095001B (zh) | 分布式环境下虚拟机异常恢复方法 | |
CN108737153A (zh) | 区块链灾备系统、方法、服务器和计算机可读存储介质 | |
CN104102559B (zh) | 一种基于冗余心跳链路和对端重启链路的双控制器存储系统 | |
CN106598490A (zh) | 区块链数据的访问方法和区块链管理系统 | |
CN106789306B (zh) | 通信设备软件故障检测收集恢复方法和系统 | |
CN102622279B (zh) | 冗余控制系统、方法及管理控制器 | |
CN106603696B (zh) | 一种基于超融合基础框架的高可用系统 | |
CN112527484B (zh) | 工作流断点续跑方法、装置、计算机设备及可读存储介质 | |
CN104980524A (zh) | 一种weblogic连接池失效监测方法 | |
CN109828867A (zh) | 一种跨数据中心的云主机灾备方法及系统 | |
CN109842505A (zh) | 一种云端集群故障处理方法及装置 | |
KR101586354B1 (ko) | 병렬 연결식 서버시스템의 통신 장애 복구방법 | |
US10102088B2 (en) | Cluster system, server device, cluster system management method, and computer-readable recording medium | |
CN107153595A (zh) | 分布式数据库系统的故障检测方法及其系统 | |
CN108776579A (zh) | 一种分布式存储集群扩容方法、装置、设备及存储介质 | |
CN114090174A (zh) | 基于超融合的城轨边缘云一体化设备 | |
CN110290002A (zh) | 一种更新方法、终端及电子设备 | |
CN105119765B (zh) | 一种智能处理故障体系架构 | |
CN106528324A (zh) | 故障恢复的方法和装置 | |
CN113742735A (zh) | 一种基于大数据的能源平衡分析平台安全系统及其使用方法 | |
CN109614297A (zh) | 数据保护方法、装置、设备、系统及计算机可读存储介质 | |
CN104331353A (zh) | 软件高可用保证的方法 | |
CN103226447A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210930 Address after: 518000 floors 21-23, block B, building 12, Shenzhen Bay science and technology ecological park, No. 18, community science and technology south road, high tech Zone, Yuehai street, Shenzhen, Guangdong Patentee after: Xunlei Networking Technologies, Ltd. Address before: 518000 Room 201, building A, 1 front Bay Road, Shenzhen Qianhai cooperation zone, Shenzhen, Guangdong Patentee before: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd. |