CN112767152B - 应用于联盟链的双园区灾备系统及方法 - Google Patents

应用于联盟链的双园区灾备系统及方法 Download PDF

Info

Publication number
CN112767152B
CN112767152B CN202110061086.9A CN202110061086A CN112767152B CN 112767152 B CN112767152 B CN 112767152B CN 202110061086 A CN202110061086 A CN 202110061086A CN 112767152 B CN112767152 B CN 112767152B
Authority
CN
China
Prior art keywords
node
consensus
module
nodes
backup
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.)
Active
Application number
CN202110061086.9A
Other languages
English (en)
Other versions
CN112767152A (zh
Inventor
江洪
钟亮
彭顺求
姚新亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110061086.9A priority Critical patent/CN112767152B/zh
Publication of CN112767152A publication Critical patent/CN112767152A/zh
Application granted granted Critical
Publication of CN112767152B publication Critical patent/CN112767152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A10/00TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
    • Y02A10/40Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping

Abstract

一种应用于联盟链的双园区灾备系统及方法,可应用于区块链领域和金融领域,该系统包含:主园区节点集群包含多个共识节点;备园区节点集群包含多个备份共识节点;负载均衡装置分别与主园区节点集群和备园区节点集群通信连接,根据主园区节点集群中共识节点的运行状态,将接收的参与方服务器发起的请求报文通过路由到共识节点或备份共识节点;共识节点对接收到的请求报文进行对应的交易处理和共识上链处理;备份共识节点监测预定共识节点发送的心跳包,当预设周期未收到预定共识节点的心跳包时,向主园区节点集群中其他共识节点发起更换请求共识,根据更换请求共识的共识结果替换预定共识节点,对接收到的请求报文进行对应处理。

Description

应用于联盟链的双园区灾备系统及方法
技术领域
本发明涉及区块链技术领域,可应用于金融安全领域,尤指一种应用于联盟链的双园区灾备系统及方法。
背景技术
在区块链技术迅猛发展下,区块链技术知名度不断提升并以不同的形态纷纷落地于各个领域。区块链技术本质是数据存储、点对点传输、共识机制、密码算法等计算机技术的新型应用模式,通过共识算法的应用,区块链系统中各个节点数据能彼此保持一致,并在一定范围内,节点间互相为彼此提供数据安全灾备的特性。
区块链技术本身与传统技术在容灾能力上都有一定的承受范围,区块链系统容灾能力主要由应用的共识算法决定。当区块链系统节点所部署的机房发生大规模毁坏或宕机的情况,单单以区块链系统本身的容灾能力可能无法及时或者不能保证系统整体数据的正常状态,这样往往会造成链上数据丢失,引起链上区块链出现分叉的情况,系统中相关交易因此无法正常执行。区块链系统往往作为底层平台为上层应用提供数据服务,系统间有一定的依赖,随着交易量和交易频率的上升,区块链系统需要根据其特点指定其特定的灾备方案。
据初步了解,目前用于国内商用的区块链系统多以联盟链形式部署,一般情况下,联盟链节点除了交易共识的节点外,应存在认证节点,用于节点或用户认证接入。针对联盟链不同角色节点,本发明根据不同类型节点的技术特点,实现特定节点的灾备方案。另外,在灾备切换过程中,数据的同步和恢复需要在一定的手工步骤协助下才能实现。
发明内容
本发明目的在于提供一种应用于联盟链的双园区灾备系统及方法,针对灾备过程中区块链数据服务难以迁移和恢复的痛点,通过引入数据同步机制和状态监测机制,可以实现区块链方便快捷进行数据同步和数据恢复。
为达上述目的,本发明所提供的一种应用于联盟链的双园区灾备系统,所述系统包含负载均衡装置、主园区节点集群和备园区节点集群;所述主园区节点集群包含多个共识节点;所述备园区节点集群包含多个备份共识节点;所述共识节点和所述备份共识节点通信连接;所述负载均衡装置分别与所述主园区节点集群和所述备园区节点集群通信连接,用于根据所述主园区节点集群中共识节点的运行状态,将接收的参与方服务器发起的请求报文通过路由到共识节点或备份共识节点;所述共识节点用于对接收到的请求报文进行对应的交易处理和共识上链处理;以及,根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;所述备份共识节点用于监测预定共识节点发送的心跳包,当预设周期未收到预定共识节点的心跳包时,向所述主园区节点集群中其他共识节点发起更换请求共识,并根据更换请求共识的共识结果替换预定共识节点,并对接收到的请求报文进行对应的交易处理和共识上链处理。
在上述应用于联盟链的双园区灾备系统中,优选的,所述备份共识节点还包含:当所述主园区节点收到所述请求报文时,通过网络通讯获得所述共识节点接收到的请求报文,根据所述请求报文进行预上链处理;以及,将接收到的共识结果所对应的交易与预上链的交易进行比较,当比较结果一致时,将所述交易进行上链处理。
在上述应用于联盟链的双园区灾备系统中,优选的,所述共识节点还包含:当更新本地账本区块到达预设第一数量后,向区块链网络中其他共识节点获取最新区块哈希,将获取的区块哈希与本地账本区块的哈希进行比较;当本地账本区块的哈希与预设第二数量的获取的区块哈希不一致时,于区块链中其他共识节点获取差异历史数据,根据所述差异历史数据更换本地账本区块。
在上述应用于联盟链的双园区灾备系统中,优选的,所述共识节点包含通用模块、交易模块和灾备模块;所述通用模块用于对接收到的请求报文进行对应的交易处理和共识上链处理;所述交易模块用于向区块链网络中其他共识节点发起广播请求;以及,根据与其他共识节点的区块高度比较结果更新本地区块;所述灾备模块用于根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;以及,标识当前共识节点的角色信息,根据所述角色信息通过预存配置参数初始化当前节点。
在上述应用于联盟链的双园区灾备系统中,优选的,所述通用模块包含共识模块、存储模块和数据收发模块;所述共识模块用于根据预设共识算法组装共识交易过程中的消息报文,校验共识过程中其他共识节点广播的消息请求和生成交易共识结果;所述存储模块用于将共识节点交易过程中执行结果、共识结果和验证结果存储在预定数据库中;以及,于其他共识节点同步区块数据和清除当前节点与其他共识节点不一致的区块数据;所述数据收发模块用于接收所述负载均衡装置路由的请求报文和其他共识节点广播的请求报文。
在上述应用于联盟链的双园区灾备系统中,优选的,所述交易模块包含广播交易模块和数据同步模块;所述广播交易模块用于向区块链网络中其他共识节点广播请求报文;所述数据同步模块用于根据与其他共识节点的区块高度比较结果更新本地区块。
在上述应用于联盟链的双园区灾备系统中,优选的,所述灾备模块包含活性检测模块、节点角色模块、配置模块、交易过滤模块和监控报警模块;所述活性检测模块用于根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;所述节点角色模块用于标识当前共识节点的角色信息;所述配置模块用于根据所述角色信息通过预存配置参数初始化当前节点;所述交易过滤模块用于根据接收到的请求报文中对应字段获得所述请求报文的交易处理对象,当所述交易处理对象为当前共识节点时,将所述请求报文提供至所述共识模块处理;所述监控报警模块用于根据预设监控策略监测当前共识节点的运行状态,当当前共识节点异常时生成报警提示信号。
在上述应用于联盟链的双园区灾备系统中,优选的,所述系统还包含认证节点和备用认证节点,所述认证节点和所述备用认证节点分别设置于所述主园区节点集群和所述备园区节点集群;所述认证节点和所述备用认证节点分别用于对所述主园区节点集群内的共识节点和所述备园区节点集群的备用共识节点提供身份认证。
在上述应用于联盟链的双园区灾备系统中,优选的,所述认证节点和所述备用认证节点均包含通用模块、功能模块和灾备模块;所述通用模块用于存储认证通过的节点信息和用户信息;以及,接收所述共识节点或所述备份共识节点提供的请求报文;所述功能模块用于校验节点或用户发起的登陆请求;以及,根据所述共识节点或所述备份共识节点发起的请求报文对各节点进行身份认证或证书发放;所述灾备模块用于接收认证通过的节点发送的心跳包,并根据对应的心跳时间周期和接收到的心跳包获得各节点的运行情况;当所述共识节点或所述备份共识节点运行异常时,生成报警提示。
本发明还提供一种适用于所述的应用于联盟链的双园区灾备系统的方法,所述方法包含:负载均衡装置根据所述主园区节点集群中共识节点的运行状态,将接收的参与方服务器发起的请求报文通过路由到共识节点或备份共识节点;共识节点对接收到的请求报文进行对应的交易处理和共识上链处理,并根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;备份共识节点监测预定共识节点发送的心跳包,当预设周期未收到预定共识节点的心跳包时,向所述主园区节点集群中其他共识节点发起更换请求共识,并根据更换请求共识的共识结果替换预定共识节点,并对接收到的请求报文进行对应的交易处理和共识上链处理。
在上述方法中,优选的,共识节点对接收到的请求报文进行对应的交易处理和共识上链处理还包含:当所述主园区节点收到所述请求报文时,备份共识节点通过网络通讯获得所述共识节点接收到的请求报文,根据所述请求报文进行预上链处理;将接收到的共识结果所对应的交易与预上链的交易进行比较,当比较结果一致时,将所述交易进行上链处理。
在上述方法中,优选的,所述方法还包含:当共识节点更新本地账本区块到达预设第一数量后,向区块链网络中其他共识节点获取最新区块哈希,将获取的区块哈希与本地账本区块的哈希进行比较;当本地账本区块的哈希与预设第二数量的获取的区块哈希不一致时,于区块链中其他共识节点获取差异历史数据,根据所述差异历史数据更换本地账本区块。
在上述方法中,优选的,向所述主园区节点集群中其他共识节点发起更换请求共识包含:根据预定共识节点的节点信息和本身节点的节点信息组装获得更换请求报文;将所述更换请求报文发往其他共识节点进行更换请求共识。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明的有益技术效果在于:为不同类型的节点采用了相应的灾备方案,本灾备方案利用区块链网络中节点需要互相通讯的特性,将备份共识节点和共识节点一同加入到一个网络中,在区块链的机制下,备份共识节点在正常情况下无需多次连接共识节点进行数据同步;当某一个园区节点发生异常情况时,无论是认证节点还是共识节点,都能以热更新的方式动态切换备份节点;当共识节点发生异常时,灾备园区的节点能自动检测并自动接替异常节点继续保持整个区块链网络的稳定性;另外,在灾备切换过程中,数据的同步和恢复需要在一定的手工步骤协助下才能实现,针对灾备过程中区块链数据服务难以迁移和恢复的痛点,本发明通过引入数据同步机制和区块状态监测机制,可以实现区块链方便快捷进行数据同步和数据恢复。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为本发明一实施例所提供的应用于联盟链的双园区灾备系统的结构示意图;
图2为本发明一实施例所提供的共识节点的结构示意图;
图3为本发明一实施例所提供的认证节点的结构示意图;
图4为本发明一实施例所提供的正常共识节点灾备的流程示意图;
图5为本发明一实施例所提供的异常共识节点灾备的流程示意图;
图6为本发明一实施例所提供的认证节点灾备环境下用户登录的流程示意图;
图7为本发明一实施例所提供的认证节点灾备环境下交易的流程示意图;
图8为本发明一实施例所提供的应用于联盟链的双园区灾备系统的方法流程示意图;
图9为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明主要为以联盟链形态部署的区块链平台提供对应的灾备方案。联盟链一般具有弱中心化、拜占庭容错等特性。弱中心化的特性主要通过联盟链系统中存在一定数量的认证节点或管理员节点来体现。认证节点一般不参与联盟链共识过程,而管理员节点可通过系统中权限管理机制获得较高的权限,但其本身仍参与共识。根据是否参与共识过程,本发明将节点分为共识节点和认证节点。
本发明所提供的一种应用于联盟链的双园区灾备系统,所述系统包含负载均衡装置、主园区节点集群和备园区节点集群;所述主园区节点集群包含多个共识节点;所述备园区节点集群包含多个备份共识节点;所述共识节点和所述备份共识节点通信连接;所述负载均衡装置分别与所述主园区节点集群和所述备园区节点集群通信连接,用于根据所述主园区节点集群中共识节点的运行状态,将接收的参与方服务器发起的请求报文通过路由到共识节点或备份共识节点;所述共识节点用于对接收到的请求报文进行对应的交易处理和共识上链处理;以及,根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;所述备份共识节点用于监测预定共识节点发送的心跳包,当预设周期未收到预定共识节点的心跳包时,向所述主园区节点集群中其他共识节点发起更换请求共识,并根据更换请求共识的共识结果替换预定共识节点,并对接收到的请求报文进行对应的交易处理和共识上链处理。在该实施例中,备份共识节点接受联盟链中其他节点广播的请求,本身不参与共识过程。备份共识节点接收到请求交易后,会先对交易按照上链流程在节点本身进行预上链。当备份共识节点接收到对应交易的共识结果时,判断对应的交易是否继续上链。当共识节点发生故障时,节点调度机制会在众多备份共识节点中选择一个节点进行角色转换,代替故障的共识节点。
在上述实施例中,所述备份共识节点还包含:当所述主园区节点收到所述请求报文时,通过网络通讯获得所述共识节点接收到的请求报文,根据所述请求报文进行预上链处理;以及,将接收到的共识结果所对应的交易与预上链的交易进行比较,当比较结果一致时,将所述交易进行上链处理。在实际工作中,如图1所示,上述应用于联盟链的双园区灾备系统主要包含三类节点:共识节点、备份共识节点、认证节点(认识节点和备份认证节点);系统启动过程中,所有节点一开始用户初始化均会在两个园区的认证节点上进行,并在本地存留对应的证书等认证数据。正常情况下,所有的共识节点和主认证节点会部署在主园区,当参与方服务器发起区块链请求到网络内部时,请求会经负载均衡路由在主园区,由主园区对外提供服务。与此同时,备园区每个备份共识节点都会参与在该网络中,但不会参与共识过程。当主园区接收到请求后,通过P2P网络通讯,备园区的各个备份共识节点都会接收到相同的请求报文,并对交易进行预上链操作。当交易共识结果进行全网广播时,备份共识节点会校验共识成功的交易和之前已经经过预上链操作的交易是否一致。如果一致,备份共识节点会将对应交易在本节点上链。当主园区某一共识节点发生异常情况时,备园区备份共识节点会自动选出其中一个节点替换故障共识节点。发生大规模宕机等异常情况时,备园区的备份共识节点检测到主园区节点发生大规模宕机的时候,备份共识节点能检测到主园区宕机节点的数量,并根据自动转换相同数量的备份共识节点成为共识节点。与此同时,负载均衡当发现主园区节点大规模失活时,自动将请求区块链的请求路由到备园区的任一共识节点中。各组件的具体原理及工作方式将在后续实施例中详细说明,在此就不再一一详述。
在上述实施例中,所述的共识节点是联盟链中能完整参与交易流程的网络节点,交易流程包括接收交易,执行交易,广播交易,交易共识,验证交易,交易上链等。共识节点主要负责接收并执行外部访问的请求,在区块链各个节点中进行广播请求、对别的共识节点广播的请求进行验证,并将对应的交易和交易结果请求上链。在该灾备方案中,共识节点中会保留共识节点和备份共识节点的节点列表。经过一定的时间周期,共识节点会向其他节点发送心跳。
所述的备份共识节点是本发明中可用于替换共识节点的一类节点,备份共识节点通过配置模块确定其锚定的共识节点以及更新周期。备份共识节点通过锚定节点加入到网络中。正常情况下,备份共识节点会像共识节点一样接受其他节点所广播的请求,但节点本身不参与共识。当交易共识成功后,备份共识节点会将相应的交易上链。与此同时,备份共识节点会接受一个周期内共识节点的心跳。异常情况下,备份共识节点在一个时间周期内会发现失活的共识节点。备份共识节点会通过路由表获取对应共识节点的IP,并将自己IP一起组装成共识节点更换请求。备份共识节点会将请求像交易一样在全网节点中进行广播。当更换请求共识成功后,备份共识节点会更换本身节点角色为共识节点。当异常的共识节点恢复正常的时候,共识节点同样需要发送更换请求,将主园区的共识节点重新恢复成共识节点。
所述的认证节点是联盟链中为节点、用户、进行的交易提供合法性证明的节点。当联盟链以双园区灾备的方式进行部署时,主备园区的所有节点在系统启动过程中均需要接入主备园区的认证节点。主备园区认证节点上的用户或证书的数据在逻辑上是互为灾备。当非认证节点进行登录或更新证书等数据变更的操作,需要在主备园区所有认证节点上正常执行后才能继续进行,否则则会触发相关操作的回滚机制。
在本发明一实施例中,所述共识节点还包含:当更新本地账本区块到达预设第一数量后,向区块链网络中其他共识节点获取最新区块哈希,将获取的区块哈希与本地账本区块的哈希进行比较;当本地账本区块的哈希与预设第二数量的获取的区块哈希不一致时,于区块链中其他共识节点获取差异历史数据,根据所述差异历史数据更换本地账本区块。具体的,请参考图2所示,所述共识节点包含通用模块、交易模块和灾备模块;所述通用模块用于对接收到的请求报文进行对应的交易处理和共识上链处理;所述交易模块用于向区块链网络中其他共识节点发起广播请求;以及,根据与其他共识节点的区块高度比较结果更新本地区块;所述灾备模块用于根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;以及,标识当前共识节点的角色信息,根据所述角色信息通过预存配置参数初始化当前节点。
所述通用模块包含共识模块21、存储模块22和数据收发模块23;所述共识模块21用于根据预设共识算法组装共识交易过程中的消息报文,校验共识过程中其他共识节点广播的消息请求和生成交易共识结果;所述存储模块22用于将共识节点交易过程中执行结果、共识结果和验证结果存储在预定数据库中;以及,于其他共识节点同步区块数据和清除当前节点与其他共识节点不一致的区块数据;所述数据收发模块23用于接收所述负载均衡装置路由的请求报文和其他共识节点广播的请求报文。
实际工作中,所述的共识模块21是共识节点使用共识算法共识的主要模块,共识模块21主要负责将相关信息组装为共识交易过程中消息报文、校验共识过程中其他共识节点广播的消息、生成交易共识后的结果等。所述的存储模块22是共识节点和备份共识节点处理账本数据和区块数据的主要模块,存储模块22一方面负责将共识节点每次交易过程中执行结果、共识结果、验证结果等存储在K-V数据库或关系型数据库中,另一方面负责存储节点从其他节点同步的区块数据和清除节点和其他节点不一致的区块数据。所述的数据收发模块23主要用于以共识节点和备份共识节点接收请求。共识节点可以使用数据收发模块23接收应用系统发给联盟链系统请求,也可以接收其他节点所广播的请求。接收到请求后,数据收发模块23会提取请求中的相关数据传给共识模块21,由共识模块21组装共识过程中的请求报文;
所述交易模块包含广播交易模块24和数据同步模块25;所述广播交易模块用于向区块链网络中其他共识节点广播请求报文;所述数据同步模块用于根据与其他共识节点的区块高度比较结果更新本地区块。实际工作中,所述的广播交易模块24负责向网络中其他共识节点发送广播请求。共识节点通过数据收发模块23接收到请求后,通过共识模块21组装为共识过程中的请求报文,并在本身存储模块22中获取当前网络各个节点的路由表地址。根据路由表上其他节点的IP地址,共识节点通过广播交易模块24向其他节点发送广播请求。所述的数据同步模块25是联盟链系统中节点用于同步其他节点区块数据和账本数据的主要模块。当节点区块高度增加到一定数量,如20个区块,节点通过数据同步模块获取网络中其他节点相同区块高度的区块hash并确定其他节点是否有更高高度的区块,如果在相同高度区块hash一致的情况下,大部分其他节点均有更高高度的区块,则本节点将从其他节点拉取对应区块存储在本地。
所述灾备模块包含活性检测模块26、节点角色模块27、配置模块28、交易过滤模块29和监控报警模块30;所述活性检测模块用于根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;所述节点角色模块用于标识当前共识节点的角色信息;所述配置模块用于根据所述角色信息通过预存配置参数初始化当前节点;所述交易过滤模块用于根据接收到的请求报文中对应字段获得所述请求报文的交易处理对象,当所述交易处理对象为当前共识节点时,将所述请求报文提供至所述共识模块处理;所述监控报警模块用于根据预设监控策略监测当前共识节点的运行状态,当当前共识节点异常时生成报警提示信号。
实际工作中,所述的活性检测模块26是备份共识节点用于检测所锚定的共识节点活性的主要模块。经过一定的时间周期,共识节点备份会通过数据收发模块23向全网所有节点发送心跳检测。正常情况下,其他节点会统计一个时间周期内正常发送心跳的节点。如果存在节点在周期内没有正常发送心跳,其他节点记录对应节点的IP,并进行下一个时间周期;备份共识节点当发现存在共识节点异常时,会自动开始广播节点更换请求。所述的节点角色模块27是节点所拥有的角色,即共识节点或备份共识节点。共识节点可以参与交易共识,备份共识节点不参与交易共识。当备份共识节点通过活性检测模块26检测到共识节点已失活或出现异常情况时,备份共识节点会通过数据收发模块23向全网开始广播节点更换请求,如果节点更换请求达到共识时,备份共识节点会通过节点角色模块27动态转为共识节点,替代异常的共识节点参与接下来的交易共识,并通过存储模块22标记接下来增加区块的hash和高度。所述的配置模块28是节点用于配置节点或者网络相关参数的主要模块。配置模块28主要以文件形式通过存储模块22存储在节点中。在联盟链的双园区灾备方案中,配置模块主要配置主认证节点及其备份节点、该节点初始化的角色、节点间数据同步条件、备份共识节点检测共识节点活性时间周期等。所述的交易过滤模块29是节点用于筛选所需要处理的交易的主要模块。在区块链网络中,每一笔交易都会发送给所有节点,当并非所有节点都需要处理接收到的交易。节点通过数据收发模块23接收到请求后,提取请求中对应的字段,并传入交易过滤模块29中并确定当前的交易是否需要继续处理,如果不需要继续处理,节点可以选择进行空报文响应或对该请求不响应。所述的监控报警模块30是节点用于向网络管理员汇报节点异常情况的主要模块。网络管理员可以通过配置模块28配置对应节点监控报警的方式,如邮件或日志,以及监控策略。当节点发生异常情况并触发对应监控策略时,节点会自动以配置模块中的报警方式反馈给网络管理员。网络管理员监控到节点异常情况后,需要对节点发生的异常情况进行及时处理并对节点进行恢复操作。
在本发明一实施例中,所述系统还可包含认证节点和备用认证节点,所述认证节点和所述备用认证节点分别设置于所述主园区节点集群和所述备园区节点集群;所述认证节点和所述备用认证节点分别用于对所述主园区节点集群内的共识节点和所述备园区节点集群的备用共识节点提供身份认证。其中,所述认证节点和所述备用认证节点均包含通用模块、功能模块和灾备模块;所述通用模块用于存储认证通过的节点信息和用户信息;以及,接收所述共识节点或所述备份共识节点提供的请求报文;所述功能模块用于校验节点或用户发起的登陆请求;以及,根据所述共识节点或所述备份共识节点发起的请求报文对各节点进行身份认证或证书发放;所述灾备模块用于接收认证通过的节点发送的心跳包,并根据对应的心跳时间周期和接收到的心跳包获得各节点的运行情况;当所述共识节点或所述备份共识节点运行异常时,生成报警提示。
具体的,请参考图3所示,在实际工作中所述认证节点和所述备用认证节点实质相同,均包含通用模块、功能模块、灾备模块。通用模块包括存储模块31,数据收发模块32;功能模块包括用户登录模块33,证书颁发模块34,外部认证接入模块35;灾备模块包括活性检测模块36,配置模块37,监控报警模块38。
所述的存储模块31是认证节点处理节点或用户登录信息、公钥信息及其对应映射关系的主要模块。存储模块31主要以关系型数据库为主。认证节点通过存储模块31存储着一个网络中合法用户的信息和状态。当网络中一个节点或用户进行登录时,相关信息会发送到认证节点。正常情况下,认证节点会更新节点或用户信息和状态,并确定其与所使用公钥信息的映射关系。
所述的数据收发模块32是认证节点用于接收请求的主要模块。认证节点可以通过数据收发模块32接收共识节点或备份共识节点的请求。接收到请求后,数据收发模块32会提取请求中的相关数据,判断请求类型。数据收发模块32所接收请求的类型包括节点或用户登录的请求、交易过程中合法证书的申请请求、交易过程中用于验证签名的公钥申请请求等。
所述的用户登录模块33是认证节点或用户的主要模块。节点或用户通过发送登录请求,该请求转发到认证节点中,由数据收发模块32进行接收并提取用户相关信息,节点通过用户登录模块33调用存储模块31判断用户登录状态,如用户未登录则先对对应请求进行响应用户未登录的信息。节点或用户进而发起第二次登录请求,并在请求中附带上公钥信息。认证节点通过数据收发模块32接收到第二次登陆请求后,通过用户登录模块33进行校验。校验通过后,节点通过用户登陆模块调用存储模块31将用户相关的公钥及其映射关系存储起来。
所述的证书颁发模块34是认证节点向节点或用户颁发合法证书以及对相关交易颁发合法证书的主要模块。当节点或用户通过用户登录模块33进行正常登录后,认证节点通过证书颁发模块34会对节点或用户颁发合法的二级证书,并将其二级证书作为响应内容返回给节点或用户。相类似,一笔交易正常执行过程中,需要通过节点向认证节点发请求申请对应的交易合法证书。认证节点接收到请求后,会通过证书颁发模块颁发交易证书,并将交易证书返回给节点。节点接收到合法交易证书后,将合法证书放入网络内部请求中,再继续进行交易的其他流程。
所述的外部认证接入模块35是认证节点接入外部权威第三方证书的主要模块。认证节点一方面可以自己签发证书,另一方面可以通过外部认证接入模块35识别外部权威第三方证书,并以此为根证书,生成对应的二级证书进行使用。在后续共识节点或备份共识节点与认证节点的交互过程中,认证节点均以该二级证书为准对共识节点或备份共识节点提供服务。
所述的活性检测模块36是认证节点自我检测活性的主要模块。认证节点根据配置模块37获取心跳时间周期和认证节点列表。经过一个心跳时间周期,认证节点会各自向认证节点列表中所有的认证节点发送心跳提醒,收到心跳提醒的认证节点会统计心跳不正常的节点列表,如果心跳周期不正常的节点经过若干个周期仍未恢复正常。节点则会通过监控报警模块39进行报警提醒。
所述的配置模块37主要用于认证节点设置初始化参数,包括合法用户列表、用户权限列表、监控策略、心跳提醒时间周期等。配置模块37主要以文件形式通过存储模块31存储在节点中。配置模块37提供动态化设置的方式,方便相关人员根据运行过程中的具体情况进行及时调整。
所述的监控报警模块38是认证节点出现异常情况后进行报警提醒的主要模块。相关人员可以通过配置模块37配置监控报警方式,如短信或邮件,以及监控策略。当认证节点检测到认证节点列表中任一节点出现不正常现象并满足监控策略,认证节点则会通过报警模块38获取配置模块37中监控报警方式,并按照相应的方式对异常节点进行报警提醒。
请参考图8所示,本发明还提供一种适用于所述的应用于联盟链的双园区灾备系统的方法,所述方法包含:
步骤S801负载均衡装置根据所述主园区节点集群中共识节点的运行状态,将接收的参与方服务器发起的请求报文通过路由到共识节点或备份共识节点;
步骤S802共识节点对接收到的请求报文进行对应的交易处理和共识上链处理,并根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;
步骤S803备份共识节点监测预定共识节点发送的心跳包,当预设周期未收到预定共识节点的心跳包时,向所述主园区节点集群中其他共识节点发起更换请求共识,并根据更换请求共识的共识结果替换预定共识节点,并对接收到的请求报文进行对应的交易处理和共识上链处理。其中,共识节点对接收到的请求报文进行对应的交易处理和共识上链处理还包含:当所述主园区节点收到所述请求报文时,备份共识节点通过网络通讯获得所述共识节点接收到的请求报文,根据所述请求报文进行预上链处理;将接收到的共识结果所对应的交易与预上链的交易进行比较,当比较结果一致时,将所述交易进行上链处理。
在本发明一实施例中,所述方法还可包含:当共识节点更新本地账本区块到达预设第一数量后,向区块链网络中其他共识节点获取最新区块哈希,将获取的区块哈希与本地账本区块的哈希进行比较;当本地账本区块的哈希与预设第二数量的获取的区块哈希不一致时,于区块链中其他共识节点获取差异历史数据,根据所述差异历史数据更换本地账本区块。在另一实施例中,向所述主园区节点集群中其他共识节点发起更换请求共识包含:根据预定共识节点的节点信息和本身节点的节点信息组装获得更换请求报文;将所述更换请求报文发往其他共识节点进行更换请求共识。
为更清楚的理解本发明所提供的方法的具体应用流程及方式,以下请参考图4至图7所示,对本发明所提供的方法在各阶段的应用流程做举例说明,本领域相关技术人员当可知,该实例仅为便于理解上述方法的其中一种应用方式,并不对其做具体限定。
如图4是双园区灾备方案中共识节点正常情况下灾备流程图,步骤如下:
步骤S401:正常情况下,接入区块链的应用系统发送请求通过负载均衡转到主园区某个共识节点。
步骤S402:共识节点通过数据收发模块23接收到应用系统发送的请求后,调用交易过滤模块29从节点角色模块27获取当前节点角色类型,并确定当前的交易是否需要继续处理。如果当前节点是共识节点,则继续进行S403-S405。
步骤S403:共识节点将数据收发模块23提取出的请求数据传入共识模块21,共识模块21将相关数据重新组装成交易共识报文。共识节点从存储模块22中获取当前网络中节点的路由表,根据路由表中每个节点的IP,共识节点调用广播交易模块24向每个节点广播交易共识报文。根据采用的共识算法的机制,共识节点对所广播的交易报文进行共识。
步骤S404:当一笔交易在联盟链网络中达成共识时,每个共识节点将会各自获取各自本地存储模块22中账本数据和区块数据,按照交易步骤并行执行。
步骤S405:当共识节点执行完交易后,共识节点会调用存储模块22将交易执行的结果和其他信息写入到账本中。共识节点会通过配置模块28获取区块打包上链的相关参数,当满足区块打包上链的条件时,共识节点调用存储模块22将一定数目的交易打包存储在区块中,并将新区块上链。
步骤S406:通过P2P网络,备园区的备份共识节点会通过数据收发模块23接收到共识节点的共识请求并对请求内容进行解析,获取当前交易内容。备份共识节点通过节点角色模块27判断当前节点是否是共识节点,当发现本节点不是共识节点时,节点通过存储模块22将报文中解析出来的交易内容进行预上链操作。
步骤S407:当交易已通过共识后,交易共识节点将在全网进行广播。当备份共识节点通过数据收发模块23接收到交易共识结果后,将从存储模块22中获取已经进行预上链的交易并与共识后的交易进行比对。备份共识节点将比对一致的按照既定的规则将交易进行打包,废弃比对不一致的交易。
步骤S408:备用共识节点会通过配置模块28获取区块打包上链的相关参数,当满足区块打包上链的条件时,共识节点调用存储模块22将一定数目的交易打包存储在区块中,并将新区块上链。
步骤S409:备份区的备份共识节点通过配置模块28中获取数据同步周期,经过一个数据同步周期,备份共识节点会往锚定的共识节点发送数据同步请求,请求中会包含备份共识节点当前最高区块的hash和区块高度。共识节点通过数据收发模块23获取请求后,按照请求中的hash和区块高度通过存储模块22在本地区块链进行检索,当共识节点成功检索到对应区块后,将该区块后的所有区块作为响应内容返回给备份共识节点。备份共识节点从共识节点获取到对应区块后,通过存储模块22将区块上链,并进行下一个数据同步周期。
如图5是双园区灾备方案中共识节点异常情况下灾备流程图,步骤如下:
步骤S501:正常情况下,接入区块链的应用系统发送请求通过负载均衡转到主园区某个共识节点。
步骤S502:当共识节点失活时,该节点已无法对请求进行响应;当共识节点出现异常情况时,共识节点无法在一个时间周期内向其他节点发送心跳,并且共识节点无法对本节点接收到的请求报文进行响应。
步骤S503:备份共识节点运行过程中,经过配置的心跳检测时间周期,备份共识节点统计网络中所有节点的心跳并查看共识节点是否都有正常的心跳。当发现存在某个共识节点没有正常发送心跳时,备份共识节点将从存储模块22中获取异常的共识节点IP和本身节点的IP,并通过共识模块21组装节点更换请求,并将该请求报文往全网节点发送。
步骤S504:备份共识节点发送完节点更换请求后,开始接收其他节点针对请求的共识节点,并从配置模块28获取共识节点列表,统计共识节点交易共识结果数目是否满足共识算法的要求。如果满足,则进行节点角色转换。如果不满足,备份共识节点再通过配置模块28获取备份共识节点列表,联合共识节点统计的数目一起计算全网节点的共识结果数目。如果全网节点的共识结果数目满足共识算法的要求,也进行节点转换。
步骤S505:节点将数据收发模块23提取出的请求数据传入共识模块21,共识模块21将相关数据重新组装成交易共识报文。节点从存储模块22中获取当前网络中节点的路由表,根据路由表中每个节点的IP,共识节点调用广播交易模块24向每个节点广播交易共识报文。根据采用的共识算法的机制,共识节点对所广播的交易报文进行共识。
步骤S506:当一笔交易在联盟链网络中达成共识时,已转为共识节点的备份共识节点将获取本地存储模块22中账本数据和区块数据,按照交易步骤并行执行。
步骤S507:当节点执行完交易后,节点会调用存储模块22将交易执行的结果和其他信息写入到账本中。共识节点会通过配置模块28获取区块打包上链的相关参数,当满足区块打包上链的条件时,共识节点调用存储模块22将一定数目的交易打包存储在区块中,并将新区块上链。另外,节点通过存储模块22额外记录转为共识节点后新增的高度差和每个新增区块的hash。
以下介绍联盟链中认证节点的灾备方案。一般情况下,联盟链中所有节点或用户的合法信息需要在系统启动前明确,并在认证节点通过配置模块37进行配置。认证节点启动后会从配置模块37获取相关信息并存储在存储模块31中。
如图6是双园区灾备方案中认证节点在灾备环境下认证登录用户身份流程图,以下以节点登录为例,步骤如下:
步骤S601:联盟链中节点登录过程中,节点会通过配置模块28获取认证节点列表。根据认证节点的IP,节点需要发起gRPC请求调用认证节点登录接口。认证节点通过数据收发模块32接收到请求后,将提取请求中节点登录相关数据。
步骤S602:认证节点从节点登录请求中获取到登录相关数据后,先从存储模块31查询当前登录节点身份是否已经合法注册,如果节点身份已经合法注册,再通过存储模块31获取登录节点当前状态。如果节点未登录,则更新节点状态,并将新的密码返回给节点;如果节点已经登录,则反馈节点用户已登录,不能重复登录。
步骤S603:当节点通过数据收发模块23接收到认证节点对节点登录请求的响应,并从响应中获取认证节点所发送的新密码,节点后续登录操作将以新密码为准。当存在多个认证节点时,节点将统计所有认证节点的请求响应。只有所有认证节点正常响应节点登录请求,该节点登录才真正登录,并将所有认证节点所发送的新密码以不同目录的方式进行持久化。如果存在部分认证节点不正常响应,则用户登录失败。
步骤S604:当节点通过认证节点确定节点本身的身份是合法的且未登录,将通过数据收发模块23组装二次登录请求报文,将节点本身使用的公钥信息放在请求报文中,根据配置模块28中配置的所有认证节点IP,发起gRPC请求调用认证节点二次登录接口。
步骤S605:接收到二次登录请求的认证节点会通过数据收发模块32从请求中提取出用户二次登录的密码、用户上传的公钥信息。认证节点先通过存储模块31获取用户当前的状态和用户密码,确定发起二次登录的用户是否已经经过一次登录。如果用户状态和密码正常,则将用户上传的公钥信息以及和用户的映射关系通过存储模块31存储在认证节点中。
步骤S606:认证节点通过数据收发模块23获取二次登录请求中节点上传的公钥信息,并从配置模块37中获取认证节点本身公私钥作为颁发证书的父证书和对应私钥,通过证书颁发模块34生成节点的证书,并将该证书放入二次登录请求的响应报文中对节点进行响应。
步骤S607:当节点通过数据收发模块23接收到认证节点对节点二次登录请求的响应,并从响应中获取认证节点所发送的节点证书。当存在多个认证节点时,节点将统计所有认证节点的请求响应。只有所有认证节点正常响应节点二次登录请求,该节点登录才真正登录,并将所有认证节点所发送的节点证书以不同目录的方式进行持久化。如果存在部分认证节点不正常响应,则用户登录失败。
如图7是双园区灾备方案中认证节点在灾备环境下交易流程图,步骤如下:
步骤S701:一般情况下,接入联盟链的应用系统通过负载均衡转到主园区的共识节点,共识节点通过数据收发模块23对请求报文进行解析,提取请求中的数据。在组装广播请求报文或其他报文时,共识节点会通过配置模块28获取节点本身私钥的路径,并使用私钥对报文进行签名,并将签名信息放入新的报文的字段中。
步骤S702:其他共识节点接收到某一共识节点所广播或发出的共识请求时,接收请求的共识节点会先通过数据收发模块23获取请求中的签名字段,再从配置模块28中获取当前网络认证节点列表。共识节点组装公钥申请报文,将需要申请公钥的用户信息放入报文中。按照认证节点列表的顺序,共识节点向认证节点发起公钥申请请求获取对应用户的公钥。公钥申请请求中也会包含发起请求的共识节点对该请求的签名信息。
步骤S703:认证节点通过数据收发模块32接收到节点的公钥申请请求后,提取其中的签名信息,并根据报文中节点信息从存储模块31获取对应节点的公钥信息,并对公钥申请请求进行验签,检查请求的合法性。
步骤S704:如果认证节点对公钥申请请求验签通过,认证节点将对应申请的公钥放入响应报文中返回给发起请求的节点。
步骤S705:共识节点从配置模块28中获取当前网络认证节点列表,并依次向列表中认证节点的服务器发送公钥申请请求。如果当前认证节点无法正常响应,共识节点会将异常信息记录在日志中,并继续往下一个认证节点发送请求,直到共识节点能获取对应的公钥。如果认证节点均无法正常响应,共识节点才会终止当前交易的执行并抛出异常。
步骤S706:共识节点通过向认证节点发送公钥申请请求后,通过数据收发模块23获取对应用户的公钥,并对当前共识交易请求的签名进行验签。如果验签通过,则继续执行后续交易流程。
本发明的有益技术效果在于:为不同类型的节点采用了相应的灾备方案,本灾备方案利用区块链网络中节点需要互相通讯的特性,将备份共识节点和共识节点一同加入到一个网络中,在区块链的机制下,备份共识节点在正常情况下无需多次连接共识节点进行数据同步;当某一个园区节点发生异常情况时,无论是认证节点还是共识节点,都能以热更新的方式动态切换备份节点;当共识节点发生异常时,灾备园区的节点能自动检测并自动接替异常节点继续保持整个区块链网络的稳定性;另外,在灾备切换过程中,数据的同步和恢复需要在一定的手工步骤协助下才能实现,针对灾备过程中区块链数据服务难以迁移和恢复的痛点,本发明通过引入数据同步机制和区块状态监测机制,可以实现区块链方便快捷进行数据同步和数据恢复。
1、通过为联盟链不同类型节点设计灾备方案,实现联盟链节点在异常情况发生时能够以热更新方式进行动态切换。
2、通过引入与实现数据同步机制和区块状态监测机制,实现联盟链节点本身具有自我检测的能力,当节点区块数据发生异常时,能够自我检测并恢复。
3、利用区块链节点互相通讯的特性,节省备份共识节点同步主共识节点数据同步的通讯成本。
4、通过引入节点自动切换角色机制,使得备园区每个备份共识节点均能动态代替异常的主园区共识节点。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图9所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图9中所示的所有部件;此外,电子设备600还可以包括图9中没有示出的部件,可以参考现有技术。
如图9所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种应用于联盟链的双园区灾备系统,其特征在于,所述系统包含负载均衡装置、主园区节点集群和备园区节点集群;
所述主园区节点集群包含多个共识节点;所述备园区节点集群包含多个备份共识节点;所述共识节点和所述备份共识节点通信连接;
所述负载均衡装置分别与所述主园区节点集群和所述备园区节点集群通信连接,用于根据所述主园区节点集群中共识节点的运行状态,将接收的参与方服务器发起的请求报文通过路由到共识节点或备份共识节点;
所述共识节点用于对接收到的请求报文进行对应的交易处理和共识上链处理;以及,根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;
所述备份共识节点用于监测预定共识节点发送的心跳包,当预设周期未收到预定共识节点的心跳包时,向所述主园区节点集群中其他共识节点发起更换请求共识,并根据更换请求共识的共识结果替换预定共识节点,并对接收到的请求报文进行对应的交易处理和共识上链处理;
所述共识节点还包含:当更新本地账本区块到达预设第一数量后,向区块链网络中其他共识节点获取最新区块哈希,将获取的区块哈希与本地账本区块的哈希进行比较;当本地账本区块的哈希与预设第二数量的获取的区块哈希不一致时,于区块链中其他共识节点获取差异历史数据,根据所述差异历史数据更换本地账本区块。
2.根据权利要求1所述的应用于联盟链的双园区灾备系统,其特征在于,所述备份共识节点还包含:
当所述主园区节点收到所述请求报文时,通过网络通讯获得所述共识节点接收到的请求报文,根据所述请求报文进行预上链处理;以及,将接收到的共识结果所对应的交易与预上链的交易进行比较,当比较结果一致时,将所述交易进行上链处理。
3.根据权利要求1所述的应用于联盟链的双园区灾备系统,其特征在于,所述共识节点包含通用模块、交易模块和灾备模块;
所述通用模块用于对接收到的请求报文进行对应的交易处理和共识上链处理;
所述交易模块用于向区块链网络中其他共识节点发起广播请求;以及,根据与其他共识节点的区块高度比较结果更新本地区块;
所述灾备模块用于根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;以及,标识当前共识节点的角色信息,根据所述角色信息通过预存配置参数初始化当前节点。
4.根据权利要求3所述的应用于联盟链的双园区灾备系统,其特征在于,所述通用模块包含共识模块、存储模块和数据收发模块;
所述共识模块用于根据预设共识算法组装共识交易过程中的消息报文,校验共识过程中其他共识节点广播的消息请求和生成交易共识结果;
所述存储模块用于将共识节点交易过程中执行结果、共识结果和验证结果存储在预定数据库中;以及,于其他共识节点同步区块数据和清除当前节点与其他共识节点不一致的区块数据;
所述数据收发模块用于接收所述负载均衡装置路由的请求报文和其他共识节点广播的请求报文。
5.根据权利要求3所述的应用于联盟链的双园区灾备系统,其特征在于,所述交易模块包含广播交易模块和数据同步模块;
所述广播交易模块用于向区块链网络中其他共识节点广播请求报文;
所述数据同步模块用于根据与其他共识节点的区块高度比较结果更新本地区块。
6.根据权利要求4所述的应用于联盟链的双园区灾备系统,其特征在于,所述灾备模块包含活性检测模块、节点角色模块、配置模块、交易过滤模块和监控报警模块;
所述活性检测模块用于根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;
所述节点角色模块用于标识当前共识节点的角色信息;
所述配置模块用于根据所述角色信息通过预存配置参数初始化当前节点;
所述交易过滤模块用于根据接收到的请求报文中对应字段获得所述请求报文的交易处理对象,当所述交易处理对象为当前共识节点时,将所述请求报文提供至所述共识模块处理;
所述监控报警模块用于根据预设监控策略监测当前共识节点的运行状态,当当前共识节点异常时生成报警提示信号。
7.根据权利要求1所述的应用于联盟链的双园区灾备系统,其特征在于,所述系统还包含认证节点和备用认证节点,所述认证节点和所述备用认证节点分别设置于所述主园区节点集群和所述备园区节点集群;
所述认证节点和所述备用认证节点分别用于对所述主园区节点集群内的共识节点和所述备园区节点集群的备用共识节点提供身份认证。
8.根据权利要求7所述的应用于联盟链的双园区灾备系统,其特征在于,所述认证节点和所述备用认证节点均包含通用模块、功能模块和灾备模块;
所述通用模块用于存储认证通过的节点信息和用户信息;以及,接收所述共识节点或所述备份共识节点提供的请求报文;
所述功能模块用于校验节点或用户发起的登陆请求;以及,根据所述共识节点或所述备份共识节点发起的请求报文对各节点进行身份认证或证书发放;
所述灾备模块用于接收认证通过的节点发送的心跳包,并根据对应的心跳时间周期和接收到的心跳包获得各节点的运行情况;当所述共识节点或所述备份共识节点运行异常时,生成报警提示。
9.一种适用于权利要求1至8中任一项所述的应用于联盟链的双园区灾备系统的方法,其特征在于,所述方法包含:
负载均衡装置根据所述主园区节点集群中共识节点的运行状态,将接收的参与方服务器发起的请求报文通过路由到共识节点或备份共识节点;
共识节点对接收到的请求报文进行对应的交易处理和共识上链处理,并根据预存的节点列表按预设周期向所述节点列表中的共识节点和备份共识节点发送心跳包进行运行状态验证;
备份共识节点监测预定共识节点发送的心跳包,当预设周期未收到预定共识节点的心跳包时,向所述主园区节点集群中其他共识节点发起更换请求共识,并根据更换请求共识的共识结果替换预定共识节点,并对接收到的请求报文进行对应的交易处理和共识上链处理;
当共识节点更新本地账本区块到达预设第一数量后,向区块链网络中其他共识节点获取最新区块哈希,将获取的区块哈希与本地账本区块的哈希进行比较;
当本地账本区块的哈希与预设第二数量的获取的区块哈希不一致时,于区块链中其他共识节点获取差异历史数据,根据所述差异历史数据更换本地账本区块。
10.根据权利要求9所述的方法,其特征在于,共识节点对接收到的请求报文进行对应的交易处理和共识上链处理还包含:
当所述主园区节点收到所述请求报文时,备份共识节点通过网络通讯获得所述共识节点接收到的请求报文,根据所述请求报文进行预上链处理;
将接收到的共识结果所对应的交易与预上链的交易进行比较,当比较结果一致时,将所述交易进行上链处理。
11.根据权利要求9所述的方法,其特征在于,向所述主园区节点集群中其他共识节点发起更换请求共识包含:
根据预定共识节点的节点信息和本身节点的节点信息组装获得更换请求报文;
将所述更换请求报文发往其他共识节点进行更换请求共识。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求9至11任一所述方法。
CN202110061086.9A 2021-01-18 2021-01-18 应用于联盟链的双园区灾备系统及方法 Active CN112767152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110061086.9A CN112767152B (zh) 2021-01-18 2021-01-18 应用于联盟链的双园区灾备系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110061086.9A CN112767152B (zh) 2021-01-18 2021-01-18 应用于联盟链的双园区灾备系统及方法

Publications (2)

Publication Number Publication Date
CN112767152A CN112767152A (zh) 2021-05-07
CN112767152B true CN112767152B (zh) 2024-02-09

Family

ID=75702491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110061086.9A Active CN112767152B (zh) 2021-01-18 2021-01-18 应用于联盟链的双园区灾备系统及方法

Country Status (1)

Country Link
CN (1) CN112767152B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505024B (zh) * 2021-07-08 2024-02-23 网易(杭州)网络有限公司 联盟链的数据处理方法、装置、电子设备及存储介质
CN113761063B (zh) * 2021-08-26 2024-04-16 浙商银行股份有限公司 一种不停机区块链迁移方法、设备及存储介质
CN113761071B (zh) * 2021-10-09 2023-07-11 支付宝(杭州)信息技术有限公司 一种共识方法、区块链系统和共识节点
CN113973064B (zh) * 2021-12-24 2022-02-25 南京金宁汇科技有限公司 一种基于区块链的稳定性测试方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395353A (zh) * 2017-04-24 2017-11-24 阿里巴巴集团控股有限公司 一种区块链共识方法及装置
CN109144781A (zh) * 2018-08-13 2019-01-04 浙商银行股份有限公司 一种提升基于区块链技术实现的应用系统单园区部署灾备能力的方法
CN109547530A (zh) * 2018-10-17 2019-03-29 北京瑞卓喜投科技发展有限公司 区域共识方法、系统及设备
CN110221938A (zh) * 2019-05-06 2019-09-10 深圳壹账通智能科技有限公司 电子装置、区块链共识的方法及存储介质
CN111539726A (zh) * 2020-04-20 2020-08-14 中国工商银行股份有限公司 区块链共识系统及方法
CN111556035A (zh) * 2020-04-20 2020-08-18 中国工商银行股份有限公司 多认证节点的联盟链系统及方法
CN111711526A (zh) * 2020-06-16 2020-09-25 深圳前海微众银行股份有限公司 一种区块链节点的共识方法及系统
CN112101942A (zh) * 2020-09-18 2020-12-18 腾讯科技(深圳)有限公司 基于区块链的交易请求处理方法、系统、装置及设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395353A (zh) * 2017-04-24 2017-11-24 阿里巴巴集团控股有限公司 一种区块链共识方法及装置
CN109144781A (zh) * 2018-08-13 2019-01-04 浙商银行股份有限公司 一种提升基于区块链技术实现的应用系统单园区部署灾备能力的方法
CN109547530A (zh) * 2018-10-17 2019-03-29 北京瑞卓喜投科技发展有限公司 区域共识方法、系统及设备
CN110221938A (zh) * 2019-05-06 2019-09-10 深圳壹账通智能科技有限公司 电子装置、区块链共识的方法及存储介质
CN111539726A (zh) * 2020-04-20 2020-08-14 中国工商银行股份有限公司 区块链共识系统及方法
CN111556035A (zh) * 2020-04-20 2020-08-18 中国工商银行股份有限公司 多认证节点的联盟链系统及方法
CN111711526A (zh) * 2020-06-16 2020-09-25 深圳前海微众银行股份有限公司 一种区块链节点的共识方法及系统
CN112101942A (zh) * 2020-09-18 2020-12-18 腾讯科技(深圳)有限公司 基于区块链的交易请求处理方法、系统、装置及设备

Also Published As

Publication number Publication date
CN112767152A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
CN112767152B (zh) 应用于联盟链的双园区灾备系统及方法
US7941167B2 (en) Mobile device synchronization based on proximity to a data source
US9894630B2 (en) ADSS enabled global roaming system
CN108965442A (zh) 一种微服务架构服务分发系统及模式优化方法
US7451209B1 (en) Improving reliability and availability of a load balanced server
US10798218B2 (en) Environment isolation method and device
US11271801B2 (en) Compromised network node detection system
CN111654415B (zh) 基于区块链的信息处理方法、装置、设备及可读存储介质
CN110046901B (zh) 联盟链的可信度验证方法、系统、装置及设备
EP3598333B1 (en) Electronic device update management
US20130139178A1 (en) Cluster management system and method
CN108650333B (zh) 区块链系统的分散节点负荷方法、介质、装置和区块链系统
CN112966253A (zh) 一种第三方应用集成登录方法、登录装置及平台
CN111401904B (zh) 联盟链中的共识方法和系统
WO2023050966A1 (zh) 验证区块链数据
CN107547512B (zh) 一种多级云平台中的用户认证方法和装置
US10178706B2 (en) Method and device for associating user with group
CN113347037A (zh) 一种数据中心访问方法及装置
CN107172112B (zh) 一种计算机文件传输方法及装置
EP2974125B1 (en) Systems, methods, and computer program products for providing a universal persistence cloud service
CN109728972B (zh) 网络连接检测方法和装置
CN111385324A (zh) 一种数据通信方法、装置、设备和存储介质
Alshareef et al. Robust cloud management of MANET checkpoint sessions
US20160261476A1 (en) Message system for avoiding processing-performance decline
US20230032867A1 (en) Certificate revocation at datacenters

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