CN112799879B - 节点的故障处理方法、装置、设备和存储介质 - Google Patents

节点的故障处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN112799879B
CN112799879B CN202110055423.3A CN202110055423A CN112799879B CN 112799879 B CN112799879 B CN 112799879B CN 202110055423 A CN202110055423 A CN 202110055423A CN 112799879 B CN112799879 B CN 112799879B
Authority
CN
China
Prior art keywords
node
data
blockchain network
accounting
condition
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
CN202110055423.3A
Other languages
English (en)
Other versions
CN112799879A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110055423.3A priority Critical patent/CN112799879B/zh
Publication of CN112799879A publication Critical patent/CN112799879A/zh
Application granted granted Critical
Publication of CN112799879B publication Critical patent/CN112799879B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Quality & Reliability (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了节点的故障处理方法、装置、设备和存储介质,涉及区块链技术领域,可用于云计算和云服务。具体实现方案为:在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点;其中,所述第一节点用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据。本申请能够提高联盟网络中机构的记账稳定性。

Description

节点的故障处理方法、装置、设备和存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及区块链技术领域,具体涉及一种节点的故障处理方法、装置、设备和存储介质。
背景技术
随着区块链技术的发展,联盟网络的应用越来越广泛。联盟网络一般由机构组建,通常是由不同联盟的多个节点来维护的,一个联盟网络中可以包括至少一条联盟链,各条联盟链之间可以是平行链的关系,也可以是子链关系。
然而,联盟网络中机构的网络运行受到较多约束,亟需改进。
发明内容
本公开提供了一种用于节点的故障处理方法、装置、设备和存储介质。
根据本公开的一方面,提供了一种节点的故障处理方法,包括:
在第一节点故障期间,从第一区块链网络获取第一记账数据;
在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点;
其中,所述第一节点用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据。
根据本公开的另一方面,提供了另一种节点的故障处理方法,包括:
在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据;
在第一节点故障恢复情况下,同步第二节点在第一节点故障期间从第一区块链网络获取的第一记账数据。
根据本公开的又一方面,提供了一种节点的故障处理装置,包括:
备份记账模块,用于在第一节点故障期间,从第一区块链网络获取第一记账数据;
第一账本发送模块,用于在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点;
其中,所述第一节点用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据。
根据本公开的又一方面,提供了另一种节点的故障处理装置,包括:
第一记账模块,用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据;
第一账本接收模块,用于在第一节点故障恢复情况下,同步第二节点在第一节点故障期间从第一区块链网络获取的第一记账数据。
根据第五方面,提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请实施例中任一项所述的节点的故障处理方法。
根据第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请实施例中任一项所述的节点的故障处理方法。
根据第七方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本申请实施例中任一项所述的节点的故障处理方法。
根据本申请的技术能够提高联盟网络中机构的记账稳定性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本申请实施例提供的一种节点的故障处理方法的流程示意图;
图2a是根据本申请实施例提供的一种节点的故障处理方法的流程示意图;
图2b-图2d分别是根据本申请实施例提供的单节点情况下,第一节点和第二节点的工作原理图;
图3a是根据本申请实施例提供的一种节点的故障处理方法的流程示意图;
图3b-图3d分别是根据本申请实施例提供的双节点单区块链情况下,第一节点和第二节点的工作原理图;
图4a是根据本申请实施例提供的一种节点的故障处理方法的流程示意图;
图4b-图4d分别是根据本申请实施例提供的双节点双区块链情况下,第一节点和第二节点的工作原理图;
图5是根据本申请实施例提供的一种节点的故障处理方法的流程示意图;
图6是根据本申请实施例提供的一种节点的故障处理方法的流程示意图;
图7是根据本申请实施例提供的一种节点的故障处理方法的流程示意图;
图8是本申请实施例提供的一种节点的故障处理装置的结构示意图;
图9是本申请实施例提供的一种节点的故障处理装置的结构示意图;
图10示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在介绍本申请实施例之前,先对本申请实施例所适用的联盟网络进行简单介绍。联盟网络一般由多个机构共同组建联盟网络***,各个机构可提供计算设备和存储设备,以作为区块链节点来承载区块链的运行。一个联盟网络又可称为一个联盟链,在联盟网络***中,可以创建一个或多个联盟网络,分别支持不同的业务。联盟网络***包括三个机构,每个机构设置有互联网机房(IDS),在机房中部署有电子设备和存储设备,作为区块链节点。联盟链可以在区块链节点之间运行。
在联盟网络***中,部分机构可以安装具有盟主权限的链管理客户端成为盟主机构,部分机构可以安装具有副盟主权限的链管理客户端成为副盟主机构,部分机构可以安装具有成员权限的链管理客户端成为成员机构。其中,链管理客户端是指区块链即服务(Blockchain as a Service,简称BaaS)平台客户端,能够通过与区块链节点及其他硬件设备进行交互来对设备进行控制。成员机构机房中的节点用于进行记账,作为记账节点,用于通过区块链网络的P2P传输同步已产生区块数据,且对已产生区块进行验证。
图1是根据本申请实施例提供的一种节点的故障处理方法的流程示意图。本实施例可适用于成员机构中节点对区块的记账验证过程中。本实施例公开的节点的故障处理方法可以由电子设备执行,具体可以由节点的故障处理装置来执行,该装置可以由软件和/或硬件的方式实现,设置于电子设备中,例如成员机构的第二节点中。参见图1,本实施例提供的节点的故障处理方法包括:
S110、在第一节点故障期间,从第一区块链网络获取第一记账数据。
S120、在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点。
其中,第一节点用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据,即第一节点是指第一区块链网络的记账节点。
在本申请实施例中,成员机构可以至少设置第一节点和第二节点。第一节点为第一区块链网络的记账节点;第二节点用于对第一节点进行容灾备份。其中,第二节点可以为记账节点,也可以不为记账节点,在为记账节点的情况下,可以为第一区块链网络的记账节点,也可以为第二区块链网络的记账节点;其中,第一区块链网络与第二区块链网络不同。
也就是说,成员机构可以进行单节点记账,即只有其中一个节点接入区块链网络作为记账节点,另一个节点离线未启动,不接入区块链网络,作为普通节点,例如成员机构的业务层和网络层的数据流量均到达记账节点,而不到普通节点。成员机构也可以进行两个节点的双节点记账,例如第一节点和第二节点均属于不同区块链网络的记账节点,或者第一节点和第二节点分别属于不同区块链网络的记账节点。需要说明的是,本申请实施例对成员机构中节点数量不做具体限定,例如随着接入区块链网络数量的增加,节点数量可以增加。
在第一节点故障期间,通过第二节点从第一区块链网络获取第一记账数据,能够避免第一节点故障期间的第一记账数据丢失;在第一节点故障恢复情况下,通过第二节点将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点,使第一节点也能够获取故障期间的第一记账数据,从而使第一节点能够重新作为第一区块链网络的记账节点,尤其是在第二节点故障情况下,能够直接将第一节点重新作为第一区块链网络的记账节点。
本申请实施例提供的技术方案,通过成员机构设置第一节点和第二节点相互容灾备份,在其中一个节点发生故障情况下,能够通过其他节点保持成员机构的正常运行,从而提高成员机构的稳定性。
在上述技术方案中,所述第一节点和所述第二节点设置于成员机构的不同互联网机房。通过将第一节点和第二节点分别设置于不同互联网机房,能够避免因机房环境导致第一节点、第二节点同时故障,从而进一步提高稳定性。
图2a是根据本申请实施例提供的一种节点的故障处理方法的流程示意图。本实施例是在上述实施例的基础上提出的一种可选方案。参见图2a,本实施例提供的节点的故障处理方法包括:
S210、在第一节点正常运行情况下,从第一节点获取第一区块链网络的第一记账数据。
S220、在第一节点故障期间,从第一区块链网络获取第一记账数据。
S230、在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点。
图2b-图2d分别是根据本申请实施例提供的单节点情况下,第一节点和第二节点的工作原理图。参考图2b,在第一节点正常运行情况下,第一节点用于从所述第一区块链网络获取第一记账数据,即第一节点作为第一区块链网络的记账节点;第二节点从第一节点获取第一区块链网络的第一记账数据,即第一节点还用于将从第一区块链网络获取的第一记账数据同步给第二节点。需要说明的是,第一节点正常运行情况下,只有第一节点接入第一区块链网络,第二节点离线未启动,不接入第一区块链网络,作为普通节点。
参考图2c,在第一节点故障期间,第一节点断开与第一区块链网络的连接,第二节点启动接入第一区块链网络,且从第一区块链网络获取第一节点故障期间的第一记账数据。需要说明的是,在第一节点故障期间,可以对第一节点进行故障恢复。
参考图2d,在第一节点故障恢复情况下,建立第一节点与第二节点之间的通信连接,第二节点将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点。在第一节点与第二节点的第一记账数据同步后,例如区块高度相同后,可以根据业务需求继续使用第二节点作为记账节点,第一节点作为普通节点(参考图2d),也可以由第一节点作为记账节点,第二节点作为普通节点。具体的,可以通过节点网格控制业务层、网络层的第一区块链流量继续使用第二节点或切换回第一节点。
在单节点记账技术方案中,成员机构的其中一个节点作为记账节点接入第一区块链网络获取第一记账数据,另一个节点作为普通节点离线,不接入第一区块链网络,在不同时期两个节点都可以作为记账节点、普通节点。并且,在记账节点异常情况下,普通节点接入第一区块链网络获取该记账节点故障期间的第一记账数据,且在该记账节点故障恢复情况下,将该记账节点故障期间的第一记账数据同步给该记账节点,使两个节点的第一记账数据同步。单节点记账中只有其中一个节点作为记账节点,即只有一个节点对第一区块链中已有区块进行验证,另一个节点无需对已有区块进行验证,能够降低区块验证的资源消耗。
本申请实施例的技术方案,通过成员机构中只有其中一个节点作为记账节点,即只有一个节点对第一区块链中已有区块进行验证,另一个节点作为普通节点无需对已有区块进行验证,不仅能够提高成员机构的稳定性,还能够降低区块验证的资源消耗。
在上述技术方案中,第二节点从第一节点获取第一区块链网络的第一记账数据的操作具体可包括如下几种情况:
第一、从第一节点获取第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据。
在本申请实施例中,事务状态数据可以是对区块链数据的统计结果,以区块数据为转账交易记录为例,事务状态数据可以是区块链账户的账户余额。第二节点通过从第一节点同步全量的区块链数据和已编译的智能合约数据,在第二节点启动情况下例如第一节点故障情况下,第二节可以根据已同步的区块链数据确定事务状态数据,并根据区块数据、智能合约数据和确定的事务状态数据提供记账节点服务。在网络资源有限情况下,通过第二节点从第一节点同步全量的区块数据,能够保证区块数据不被篡改。
第二、从第一节点获取第一区块链网络中的事务状态数据、已编译的智能合约数据和最新N条区块数据。
在本申请实施例中,N的取值可以根据业务需求确定,也可以为默认值,例如为100。第二节点通过从第一节点同步事务状态数据、智能合约数据和最新N条区块数据,使得在第二节点启动情况下,可以检测最新事务状态数据关联的区块高度与最新区块关联的区块链高度是否相同,在相同情况下,可以直接使用事务状态数据、智能合约数据提供记账节点服务,在最新事务状态数据关联的区块高度(例如为98)小于最新区块关联的区块高度(例如为120)情况下,可以根据最新N条区块链数据补充事务区块数据,并且根据补充后的事务状态数据、智能合约数据提供记账服务。通过同步事务状态数据,能够降低第二节点启动情况下确定的事务状态数据量,从而能够提高第二节点的启动效率。
第三、从第一节点实时获取第一区块链网络中的区块数据和已编译的智能合约数据;按照固定时间间隔,更新第一区块链网络中的事务状态数据。
第二节点通过从第一节点实时同步区块数据(即同步全量的区块数据)和已编译的智能合约数据,并且在第二节点不接入第一区块链网络的情况下,定时启动第二节点的账本数据处理程序,处理第一账本数据更新本地的事务状态数据。通过第二节点定时更新事务状态数据,不仅能够提高第一节点故障情况下第二节点的启动效率,还能够提高事务状态数据的准确性。
图3a是根据本申请实施例提供的一种节点的故障处理方法的流程示意图。本实施例是在上述实施例的基础上提出的一种可选方案。参见图3a,本实施例提供的节点的故障处理方法包括:
S310、在第一节点正常运行情况下,从第一区块链网络获取第一记账数据。
S320、在第一节点故障期间,从第一区块链网络获取第一记账数据。
S330、在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点。
图3b-图3d分别是根据本申请实施例提供的双节点单区块链情况下,第一节点和第二节点的工作原理图。在双节点单区块链情况下,第一节点和第二节点均接入第一区块链网络,设置的智能合约相同,记录的账本数据相同。
参考图3b,在第一节点正常运行情况下,第一节点和第二节点均启动接入第一区块链网络,从第一区块链网络获取第一记账数据,即第一节点和第二节点作为第一区块链网络的记账节点。由于第一节点和第二节点均为第一区块链网络的记账节点,在第一节点正常运行情况下,二者之间无需相互同步数据。需要说明的是,在双节点单区块链情况,第一节点和第二节点之间为并列关系,可以不做区分,即其中任意一个节点可以为第一节点,另一个为第二节点。
参考图3c,在第一节点故障期间,第二节点继续从第一区块链网络获取第一记账数据,第一节点断开与第一区块链网络的连接,离线对第一节点进行故障恢复。
参考图3d,在第一节点故障恢复情况下,建立第一节点与第二节点之间的通信连接,第二节点将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点,直至第一节点与第二节点的第一记账数据完成同步,例如区块高度相同,将第一节点重新接入第一区块链网络。
在双节点单链记账技术方案中,成员机构的两个节点均作为记账节点接入第一区块链网络获取第一记账数据。并且,在其中一个记账节点(即第一节点)异常情况下,另一个记账节点(即第二节点)继续从第一区块链网络获取第一记账数据,在第一节点故障恢复情况下,第二节点还将第一节点故障期间的第一记账数据同步给第一节点,在同步完成后,重新将第一节点接入第一区块链网络。通过双节点作为相同区块链的记账节点,不仅能够在任意一个节点故障情况下,仍然记录第一记账数据,并且在双节点正常运行情况下,无需同步数据。
本申请实施例的技术方案,通过成员机构中两个节点均作为相同区块链网络的记账节点,不仅能够提高成员机构的稳定性,还能够减少双节点之间的数据通信。
图4a是根据本申请实施例提供的一种节点的故障处理方法的流程示意图。本实施例是在上述实施例的基础上提出的一种可选方案。参见图4a,本实施例提供的节点的故障处理方法包括:
S410、在第一节点和第二节点均正常运行情况下,从第二区块链网络获取第二记账数据,且从第一节点获取第一区块链网络的第一记账数据。
S420、在第一节点故障期间,从第一区块链网络获取第一记账数据。
S430、在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点。
其中,所述第一节点用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据;所述第一节点还用于在第一节点和第二节点均正常运行情况下,从第二节点获取第二区块链网络的第二记账数据。
图4b-图4d分别是根据本申请实施例提供的双节点双区块链情况下,第一节点和第二节点的工作原理图。在双节点双区块链情况下,第一节点接入第一区块链网络,第二节点接入第二区块链网络,其中第一区块链网络和第二区块链网络不同,即第一节点和第二节点设置的智能合约、记录的账本数据均不同。
参考图4b,在第一节点和第二节点均正常运行情况下,第一节点从第一区块链网络获取第一记账数据,第二节点从第二区块链网络获取第二记账数据,第二节点还将第二记账数据同步给第一节点,且获取第一节点同步的第一记账数据。
参考图4c,在第一节点故障期间,第二节点不仅从第二区块链网络获取第二记账数据,还接入第一区块链网络,从第一区块链网络获取第一记账数据。相应地,在第二节点故障期间,第一节点不仅从第一区块链网络获取第一记账数据,还从第二区块链网络获取第二记账数据。
参考图4d,在第一节点故障恢复情况下,建立第一节点与第二节点之间的通信连接,第二节点将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点,直至第一节点与第二节点的第一记账数据完成同步,例如区块高度相同。第二节点断开与第一区块链网络的连接,且将第一节点重新接入第一区块链网络,以将第一节点作为第一区块链网络的记账节点。
在双节点双链记账技术方案中,成员机构的其中一个节点接入第一区块链网络获取第一记账数据,另一个节点接入第二区块链网络获取第二记账数据。并且,在第一节点异常情况下,第二节点还接入第一区块链网络从第一区块链网络获取第一记账数据。在第一节点故障恢复情况下,第二节点还将第一节点故障期间的第一记账数据同步给第一节点,在同步完成后,重新将第一节点接入第一区块链网络,且断开第二节点与第一区块链网络的连接。通过双节点作为不同区块链网络的记账节点,能够在任意一个节点故障情况下,仍然记录不同区块链网络的记账数据,提高区块链网络的稳定性。
本申请实施例的技术方案,通过成员机构中两个节点分别作为不同区块链网络的记账节点,能够在任意一个节点故障情况下,仍然记录不同区块链网络的记账数据,提高区块链网络的稳定性。
在上述技术方案中,第二节点从第一节点获取第一区块链网络的第一记账数据的操作具体可包括如下几种情况:
第一、从第一节点获取第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据。
在本申请实施例中,事务状态数据可以是对区块链数据的统计结果,以区块数据为转账交易记录为例,事务状态数据可以是区块链账户的账户余额。第二节点通过从第一节点同步全量的区块链数据和已编译的智能合约数据,在第二节点启动情况下例如第一节点故障情况下,第二节都可以根据已同步的区块链数据确定事务状态数据,并根据区块数据、智能合约数据和确定的事务状态数据提供记账节点服务。在网络资源有限情况下,通过第二节点从第一节点同步全量的区块数据,能够保证区块数据不被篡改。
第二、从第一节点获取第一区块链网络中的事务状态数据、已编译的智能合约数据和最新N条区块数据。
在本申请实施例中,N的取值可以根据业务需求确定,也可以为默认值,例如为100。第二节点通过从第一节点同步事务状态数据、智能合约数据和最新N条区块数据,使得在第二节点启动情况下,可以检测最新事务状态数据关联的区块高度与最新区块关联的区块链高度是否相同,在相同情况下,可以直接使用事务状态数据、智能合约数据提供记账节点服务,在最新事务状态数据关联的区块高度(例如为98)小于最新区块关联的区块高度(例如为120)情况下,可以根据最新N条区块链数据补充事务区块数据,并且根据补充后的事务状态数据、智能合约数据提供记账服务。通过同步事务状态数据,能够降低第二节点启动情况下确定的事务状态数据量,从而能够提高第二节点的启动效率。
第三、从第一节点实时获取第一区块链网络中的区块数据和已编译的智能合约数据;按照固定时间间隔,更新第一区块链网络中的事务状态数据。
第二节点通过从第一节点实时同步区块数据(即同步全量的区块数据)和已编译的智能合约数据,并且在第二节点不接入第一区块链网络的情况下,定时启动第二节点的账本数据处理程序,处理第一账本数据更新本地的事务状态数据。通过第二节点定时更新事务状态数据,不仅能够提高第一节点故障情况下第二节点的启动效率,还能够提高事务状态数据的准确性。
图5是根据本申请实施例提供的一种节点的故障处理方法的流程示意图。本实施例可适用于成员机构中节点对区块的记账验证过程中。本实施例公开的节点的故障处理方法可以由电子设备执行,具体可以由节点的故障处理装置来执行,该装置可以由软件和/或硬件的方式实现,设置于电子设备中,例如成员机构的第一节点中。参见图5,本实施例提供的节点的故障处理方法包括:
S510、在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据。
S520、在第一节点故障恢复情况下,同步第二节点在第一节点故障期间从第一区块链网络获取的第一记账数据。
在本申请实施例中,成员机构可以至少设置第一节点和第二节点。成员机构可以进行单节点记账,即只有其中一个节点接入区块链网络作为记账节点,另一个节点离线未启动,不接入区块链网络,作为普通节点,例如成员机构的业务层和网络层的数据流量均到达记账节点,而不到普通节点。成员机构也可以进行两个节点的双节点记账,例如第一节点和第二节点均属于不同区块链网络的记账节点,或者第一节点和第二节点分别属于不同区块链网络的记账节点。需要说明的是,本申请实施例对成员机构中节点数量不做具体限定,例如随着接入区块链网络数量的增加,节点数量可以增加。
第一节点作为第一区块链网络的记账节点,在正常运行情况下,从第一区块链网络获取第一记账数据;在第一节点故障期间,无法继续记录第一记账数据,例如可以断开第一节点与第一区块链网络的连接,对第一节点进行离线故障恢复处理,相应地,第二节点用于在第一节点故障期间,从第一区块链网络获取第一记账数据;在第一节点故障恢复情况下,第一节点建立与第二节点之间的通信连接,从第二节点同步第二节点在第一节点故障期间从第一区块链网络获取的第一记账数据。通过第一节点与第二节点相互配合,在第一节点故障情况下,能够通过第二节点记录第一区块链网络的记账数据,提高第一区块链网络的记账稳定性。
本申请实施例提供的技术方案,通过成员机构设置第一节点和第二节点相互容灾备份,在其中一个节点发生故障情况下,能够通过其他节点保持成员机构的正常运行,从而提高成员机构的记账稳定性。
在上述技术方案中,所述第一节点和所述第二节点设置于成员机构的不同互联网机房。通过将第一节点和第二节点分别设置于不同互联网机房,能够避免因机房环境导致第一节点、第二节点同时故障,从而进一步提高稳定性。
图6是根据本申请实施例提供的一种节点的故障处理方法的流程示意图。本实施例是在上述实施例的基础上提出的一种可选方案。参见图6,本实施例提供的节点的故障处理方法包括:
S610、在第一节点正常运行情况下,从第一区块链网络获取第一记账数据。
S620、在第一节点正常运行情况下,将从第一区块链网络获取的第一记账数据同步给第二节点。
S630、在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点。
单节点记账情况下,在第一节点正常运行情况下,第一节点从第一区块链网络获取第一记账数据,即第一节点作为第一区块链网络的记账节点;第一节点还将从第一区块链网络获取的第一记账数据同步给第二节点,第二节点用于从第一节点获取第一区块链网络的第一记账数据,。需要说明的是,第一节点正常运行情况下,只有第一节点接入第一区块链网络,第二节点离线未启动不接入第一区块链网络,作为普通节点。
在第一节点故障期间,第一节点可以离线不接入第一区块链网络,并对第一节点进行故障恢复;第二节点用于接入第一区块链网络,且从第一区块链网络获取第一节点故障期间的第一记账数据。
在第一节点故障恢复情况下,建立第一节点与第二节点之间的通信连接,第一节点还从第二节点同步在第一节点故障期间的第一记账数据。在第一节点与第二节点的第一记账数据同步后,例如区块高度相同后,可以根据业务需求继续使用第二节点作为记账节点,第一节点作为普通节点,也可以由第一节点作为记账节点,第二节点作为普通节点。具体的,可以通过节点网格控制业务层、网络层的第一区块链流量继续使用第二节点或切换回第一节点。
在单节点记账技术方案中,成员机构的其中一个节点作为记账节点接入第一区块链网络获取第一记账数据,另一个节点作为普通节点离线不接入第一区块链网络,在不同时期两个节点都可以作为记账节点、普通节点。并且,在记账节点异常情况下,普通节点接入第一区块链网络获取该记账节点故障期间的第一记账数据,且在该记账节点故障恢复情况下,将该记账节点故障期间的第一记账数据同步给该记账节点,使两个节点的第一记账数据同步。
本申请实施例的技术方案,通过成员机构中只有其中一个节点作为记账节点,即只有一个节点对第一区块链中已有区块进行验证,另一个节点作为普通节点无需对已有区块进行验证,不仅能够提高成员机构的稳定性,还能够降低区块验证的资源消耗。
在上述技术方案中,第一节点将从第一区块链网络获取的第一记账数据同步给第二节点的操作具体可包括如下几种情况:
第一、向第二节点同步第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据。
在本申请实施例中,事务状态数据可以是对区块链数据的统计结果,以区块数据为转账交易记录为例,事务状态数据可以是区块链账户的账户余额。第一节点向第二节点同步全量的区块链数据和已编译的智能合约数据,在第二节点启动情况下例如第一节点故障情况下,第二节可以根据已同步的区块链数据确定事务状态数据,并根据区块数据、智能合约数据和确定的事务状态数据提供记账节点服务。在网络资源有限情况下,通过第二节点从第一节点同步全量的区块数据,能够保证区块数据不被篡改。
第二、向第二节点同步第一区块链网络中全量的事务状态数据、已编译的智能合约数据和最新N条区块数据。
在本申请实施例中,N的取值可以根据业务需求确定,也可以为默认值,例如为100。第一节点可以向第二节点同步事务状态数据、智能合约数据和最新N条区块数据,使得在第二节点启动情况下,可以检测最新事务状态数据关联的区块高度与最新区块关联的区块链高度是否相同,在相同情况下,可以直接使用事务状态数据、智能合约数据提供记账节点服务,在最新事务状态数据关联的区块高度(例如为98)小于最新区块关联的区块高度(例如为120)情况下,可以根据最新N条区块链数据补充事务区块数据,并且根据补充后的事务状态数据、智能合约数据提供记账服务。通过同步事务状态数据,能够降低第二节点启动情况下确定的事务状态数据量,从而能够提高第二节点的启动效率。
第三、向第二节点实时同步第一区块链网络中的区块数据和已编译的智能合约数据,使第二节点按照固定时间间隔更新事务状态数据。
第一节点可以向第二节点实时同步区块数据(即同步全量的区块数据)和已编译的智能合约数据,使第二节点不接入第一区块链网络的情况下,定时启动第二节点的账本数据处理程序,处理第一账本数据更新本地的事务状态数据。通过第二节点定时更新事务状态数据,不仅能够提高第一节点故障情况下第二节点的启动效率,还能够提高事务状态数据的准确性。
本实施例是在上述实施例的基础上提出的一种可选方案。在,本实施例提供的节点的故障处理方法中,第二节点用于从第一区块链网络获取第一记账数据。
在本实施例的双节点单区块链情况下,第一节点和第二节点均接入第一区块链网络,设置的智能合约相同,记录的账本数据相同。
在第一节点正常运行情况下,第一节点和第二节点均启动接入第一区块链网络,从第一区块链网络获取第一记账数据,即第一节点和第二节点作为第一区块链网络的记账节点。由于第一节点和第二节点均为第一区块链网络的记账节点,在第一节点正常运行情况下,二者之间无需相互同步数据。需要说明的是,在双节点单区块链情况,第一节点和第二节点之间为并列关系,可以不做区分,即其中任意一个节点可以为第一节点,另一个为第二节点。
在第一节点故障期间,第二节点继续从第一区块链网络获取第一记账数据,第一节点断开与第一区块链网络的连接,离线对第一节点进行故障恢复。
在第一节点故障恢复情况下,建立第一节点与第二节点之间的通信连接,第一节点从第二节点获取第一节点故障期间的第一记账数据,直至第一节点与第二节点的第一记账数据完成同步,例如区块高度相同,将第一节点重新接入第一区块链网络。
在双节点单链记账技术方案中,成员机构的两个节点均作为记账节点接入第一区块链网络获取第一记账数据。并且,在其中一个记账节点(即第一节点)异常情况下,另一个记账节点(即第二节点)继续从第一区块链网络获取第一记账数据,在第一节点故障恢复情况下,第二节点还用于将第一节点故障期间的第一记账数据同步给第一节点,在同步完成后,重新将第一节点接入第一区块链网络。通过双节点作为相同区块链的记账节点,不仅能够在任意一个节点故障情况下,仍然记录第一记账数据,并且在双节点正常运行情况下,无需同步数据。
本申请实施例的技术方案,通过成员机构中两个节点均作为相同区块链网络的记账节点,不仅能够提高成员机构的稳定性,还能够减少双节点之间的数据通信。
图7是根据本申请实施例提供的一种节点的故障处理方法的流程示意图。本实施例是在上述实施例的基础上提出的一种可选方案。参见图7,本实施例提供的节点的故障处理方法包括:
S710、在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据。
S720、在第一节点故障恢复情况下,同步第二节点在第一节点故障期间从第一区块链网络获取的第一记账数据。
S730、在第一节点和第二节点均正常运行情况下,将从第一区块链网络获取的第一记账数据同步给第二节点。
其中,所述第二节点用于在第一节点和第二节点均正常运行情况下,将从第二区块链网络获取的第二记账数据同步给第一节点。
其中,所述第一节点用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据;所述第一节点还用于在第一节点和第二节点均正常运行情况下,从第二节点获取第二区块链网络的第二记账数据。
在双节点双区块链情况下,第一节点接入第一区块链网络,第二节点接入第二区块链网络,其中第一区块链网络和第二区块链网络不同,即第一节点和第二节点设置的智能合约、记录的账本数据均不同。
在第一节点和第二节点均正常运行情况下,第一节点从第一区块链网络获取第一记账数据,第二节点从第二区块链网络获取第二记账数据,第二节点还将第一记账数据同步给第二节点,且获取第二节点同步的第二记账数据。
在第一节点故障期间,可以对第一节点进行故障恢复。第二节点不仅用于从第二区块链网络获取第二记账数据,还接入第一区块链网络,用于从第一区块链网络获取第一记账数据。
建立第一节点与第二节点之间的通信连接,第一节点从第二节点获取在第一节点故障期间的第一记账数据,直至第一节点与第二节点的第一记账数据完成同步,例如区块高度相同,第二节点断开与第一区块链网络的连接,且将第一节点重新接入第一区块链网络,以将第一节点作为第一区块链网络的记账节点。
在双节点双链记账技术方案中,成员机构的其中一个节点接入第一区块链网络获取第一记账数据,另一个节点接入第二区块链网络获取第二记账数据。并且,在第一节点异常情况下,第二节点还用于接入第一区块链网络从第一区块链网络获取第一记账数据。在第一节点故障恢复情况下,第一节点从第二节点获取第一节点故障期间的第一记账数据,在同步完成后,重新将第一节点接入第一区块链网络,且断开第二节点与第一区块链网络的连接。通过双节点作为不同区块链网络的记账节点,能够在任意一个节点故障情况下,仍然记录不同区块链网络的记账数据,提高区块链网络的稳定性。
本申请实施例的技术方案,通过成员机构中两个节点分别作为不同区块链网络的记账节点,能够在任意一个节点故障情况下,仍然记录不同区块链网络的记账数据,提高区块链网络的稳定性。
在上述技术方案中,第一节点将从第一区块链网络获取的第一记账数据同步给第二节点的操作具体可包括如下几种情况:
第一、向第二节点同步第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据。
在本申请实施例中,事务状态数据可以是对区块链数据的统计结果,以区块数据为转账交易记录为例,事务状态数据可以是区块链账户的账户余额。第一节点向第二节点同步全量的区块链数据和已编译的智能合约数据,在第二节点启动情况下例如第一节点故障情况下,第二节可以根据已同步的区块链数据确定事务状态数据,并根据区块数据、智能合约数据和确定的事务状态数据提供记账节点服务。在网络资源有限情况下,通过第二节点从第一节点同步全量的区块数据,能够保证区块数据不被篡改。
第二、向第二节点同步第一区块链网络中全量的事务状态数据、已编译的智能合约数据和最新N条区块数据。
在本申请实施例中,N的取值可以根据业务需求确定,也可以为默认值,例如为100。第一节点可以向第二节点同步事务状态数据、智能合约数据和最新N条区块数据,使得在第二节点启动情况下,可以检测最新事务状态数据关联的区块高度与最新区块关联的区块链高度是否相同,在相同情况下,可以直接使用事务状态数据、智能合约数据提供记账节点服务,在最新事务状态数据关联的区块高度(例如为98)小于最新区块关联的区块高度(例如为120)情况下,可以根据最新N条区块链数据补充事务区块数据,并且根据补充后的事务状态数据、智能合约数据提供记账服务。通过同步事务状态数据,能够降低第二节点启动情况下确定的事务状态数据量,从而能够提高第二节点的启动效率。
第三、向第二节点实时同步第一区块链网络中的区块数据和已编译的智能合约数据,使第二节点按照固定时间间隔更新事务状态数据。
第一节点可以向第二节点实时同步区块数据(即同步全量的区块数据)和已编译的智能合约数据,使第二节点不接入第一区块链网络的情况下,定时启动第二节点的账本数据处理程序,处理第一账本数据更新本地的事务状态数据。通过第二节点定时更新事务状态数据,不仅能够提高第一节点故障情况下第二节点的启动效率,还能够提高事务状态数据的准确性。
图8是本申请实施例提供的一种节点的故障处理装置的结构示意图。参见图8,本申请实施例提供的节点的故障处理装置800可以包括:
备份记账模块801,用于在第一节点故障期间,从第一区块链网络获取第一记账数据;
第一账本发送模块802,用于在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点;
其中,所述第一节点用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据。
在一种可选实施方式中,节点的故障处理装置800还包括:
第一账本处理模块,用于在第一节点正常运行情况下,从第一节点获取第一区块链网络的第一记账数据。
在一种可选实施方式中,节点的故障处理装置800还包括:
第一记账模块,用于在第一节点正常运行情况下,从第一区块链网络获取第一记账数据。
在一种可选实施方式中,节点的故障处理装置800还包括:
第二账本处理模块,用于在第一节点和第二节点均正常运行情况下,从第二区块链网络获取第二记账数据,且从第一节点获取第一区块链网络的第一记账数据;
其中,所述第一节点还用于在第一节点和第二节点均正常运行情况下,从第二节点获取第二区块链网络的第二记账数据。
在一种可选实施方式中,第一账本处理模块或第二账本处理模块具体用于:
从第一节点获取第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据。
在一种可选实施方式中,所述第一账本接收模块或所述第二账本处理模块具体用于:
从第一节点获取第一区块链网络中的事务状态数据、已编译的智能合约数据和最新N条区块数据。
在一种可选实施方式中,所述第一账本接收模块或所述第二账本处理模块具体用于:
从第一节点实时获取第一区块链网络中的区块数据和已编译的智能合约数据;
按照固定时间间隔,更新第一区块链网络中的事务状态数据。
在一种可选实施方式中,所述第一节点和所述第二节点设置于成员机构的不同互联网机房。
本申请实施例的技术方案,通过成员机构设置第一节点和第二节点相互容灾备份,在其中一个节点发生故障情况下,能够通过其他节点保持成员机构的正常运行,从而提高成员机构的稳定性。
图9是本申请实施例提供的一种节点的故障处理装置的结构示意图。参见图9,本申请实施例提供的节点的故障处理装置900可以包括:
第一记账模块901,用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据;
第一账本接收模块902,用于在第一节点故障恢复情况下,同步第二节点在第一节点故障期间从第一区块链网络获取的第一记账数据。
在一种可选实施方式中,节点的故障处理装置900还包括:
第一账本处理模块,用于在第一节点正常运行情况下,还将从第一区块链网络获取的第一记账数据同步给第二节点。
在一种可选实施方式中,所述第二节点用于从第一区块链网络获取第一记账数据。
在一种可选实施方式中,节点的故障处理装置900还包括:
第二账本处理模块,用于在第一节点和第二节点均正常运行情况下,将从第一区块链网络获取的第一记账数据同步给第二节点;
其中,所述第二节点用于在第一节点和第二节点均正常运行情况下,将从第二区块链网络获取的第二记账数据同步给第一节点。
在一种可选实施方式中,所述第一账本处理模块或所述第二账本处理模块具体用于:
向第二节点同步第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据。
在一种可选实施方式中,所述第一账本处理模块或所述第二账本处理模块具体用于:
向第二节点同步第一区块链网络中全量的事务状态数据、已编译的智能合约数据和最新N条区块数据。
在一种可选实施方式中,所述第一账本处理模块或所述第二账本处理模块具体用于:
向第二节点实时同步第一区块链网络中的区块数据和已编译的智能合约数据,使第二节点按照固定时间间隔更新事务状态数据。
在一种可选实施方式中,所述第一节点和所述第二节点设置于成员机构的不同互联网机房。
本申请实施例的技术方案,通过成员机构设置第一节点和第二节点相互容灾备份,在其中一个节点发生故障情况下,能够通过其他节点保持成员机构的正常运行,从而提高成员机构的记账稳定性。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如节点的故障处理方法。例如,在一些实施例中,节点的故障处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的节点的故障处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被设置为执行节点的故障处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (23)

1.一种节点的故障处理方法,由第二节点执行,所述方法包括:
在第一节点故障期间,从第一区块链网络获取第一记账数据;
在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点;
在第一节点和第二节点均正常运行情况下,从第二区块链网络获取第二记账数据,且从第一节点获取第一区块链网络的第一记账数据;
其中,所述第一节点用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据;所述第一节点还用于在第一节点和第二节点均正常运行情况下,从第二节点获取第二区块链网络的第二记账数据;所述第一节点为第一区块链网络的记账节点;所述第二节点用于对所述第一节点进行容灾备份。
2.根据权利要求1所述的方法,还包括:
在第一节点正常运行情况下,从第一节点获取第一区块链网络的第一记账数据;或,
在第一节点正常运行情况下,从第一区块链网络获取第一记账数据。
3.根据权利要求1或2所述的方法,其中,所述从第一节点获取第一区块链网络的第一记账数据,包括:
从第一节点获取第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据;或,
从第一节点获取第一区块链网络中的事务状态数据、已编译的智能合约数据和最新N条区块数据。
4.根据权利要求1或2所述的方法,其中,所述从第一节点获取第一区块链网络的第一记账数据,包括:
从第一节点实时获取第一区块链网络中的区块数据和已编译的智能合约数据;
按照固定时间间隔,更新第一区块链网络中的事务状态数据。
5.根据权利要求1或2所述的方法,其中,所述第一节点和第二节点设置于成员机构的不同互联网机房。
6.一种节点的故障处理方法,由第一节点执行,所述方法包括:
在第一节点正常运行情况下,从第一区块链网络获取第一记账数据;
在第一节点故障恢复情况下,同步第二节点在第一节点故障期间从第一区块链网络获取的第一记账数据;
在第一节点和第二节点均正常运行情况下,将从第一区块链网络获取的第一记账数据同步给第二节点;
其中,所述第二节点用于在第一节点和第二节点均正常运行情况下,将从第二区块链网络获取的第二记账数据同步给第一节点;所述第一节点为第一区块链网络的记账节点;所述第二节点用于对所述第一节点进行容灾备份。
7.根据权利要求6所述的方法,还包括:
在第一节点正常运行情况下,还将从第一区块链网络获取的第一记账数据同步给第二节点;或,
所述第二节点用于从第一区块链网络获取第一记账数据。
8.根据权利要求6或7所述的方法,其中,将从第一区块链网络获取的第一记账数据同步给第二节点,包括:
向第二节点同步第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据;或,
向第二节点同步第一区块链网络中全量的事务状态数据、已编译的智能合约数据和最新N条区块数据。
9.根据权利要求6或7所述的方法,其中,将从第一区块链网络获取的第一记账数据同步给第二节点,包括:
向第二节点实时同步第一区块链网络中的区块数据和已编译的智能合约数据,使第二节点按照固定时间间隔更新事务状态数据。
10.根据权利要求6或7所述的方法,其中,所述第一节点和所述第二节点设置于成员机构的不同互联网机房。
11.一种节点的故障处理装置,配置于第二节点,所述装置包括:
备份记账模块,用于在第一节点故障期间,从第一区块链网络获取第一记账数据;
第一账本发送模块,用于在第一节点故障恢复情况下,将在第一节点故障期间从第一区块链网络获取的第一记账数据同步给第一节点;
第二账本处理模块,用于在第一节点和第二节点均正常运行情况下,从第二区块链网络获取第二记账数据,且从第一节点获取第一区块链网络的第一记账数据;
其中,所述第一节点用于在第一节点正常运行情况下,从所述第一区块链网络获取第一记账数据;所述第一节点还用于在第一节点和第二节点均正常运行情况下,从第二节点获取第二区块链网络的第二记账数据;所述第一节点为第一区块链网络的记账节点;所述第二节点用于对所述第一节点进行容灾备份。
12.根据权利要求11所述的装置,还包括:
第一账本处理模块,用于在第一节点正常运行情况下,从第一节点获取第一区块链网络的第一记账数据;或,
第一记账模块,用于在第一节点正常运行情况下,从第一区块链网络获取第一记账数据。
13.根据权利要求11或12所述的装置,其中,第一账本处理模块或第二账本处理模块具体用于:
从第一节点获取第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据;或,
从第一节点获取第一区块链网络中的事务状态数据、已编译的智能合约数据和最新N条区块数据。
14.根据权利要求11或12所述的装置,其中,所述第一账本接收模块或第二账本处理模块具体用于:
从第一节点实时获取第一区块链网络中的区块数据和已编译的智能合约数据;
按照固定时间间隔,更新第一区块链网络中的事务状态数据。
15.根据权利要求11或12所述的装置,其中,所述第一节点和第二节点设置于成员机构的不同互联网机房。
16.一种节点的故障处理装置,配置于第一节点,所述装置包括:
第一记账模块,用于在第一节点正常运行情况下,从第一区块链网络获取第一记账数据;
第一账本接收模块,用于在第一节点故障恢复情况下,同步第二节点在第一节点故障期间从第一区块链网络获取的第一记账数据;
第二账本处理模块,用于在第一节点和第二节点均正常运行情况下,将从第一区块链网络获取的第一记账数据同步给第二节点;
其中,所述第二节点用于在第一节点和第二节点均正常运行情况下,将从第二区块链网络获取的第二记账数据同步给第一节点;所述第一节点为第一区块链网络的记账节点;所述第二节点用于对所述第一节点进行容灾备份。
17.根据权利要求16所述的装置,还包括:
第一账本处理模块,用于在第一节点正常运行情况下,还将从第一区块链网络获取的第一记账数据同步给第二节点;或,
所述第二节点用于从第一区块链网络获取第一记账数据。
18.根据权利要求16或17所述的装置,其中,所述第一账本处理模块或第二账本处理模块具体用于:
向第二节点同步第一区块链网络中全量的区块数据和已编译的智能合约数据;其中,所述全量的区块数据用于确定第一区块链网络中的事务状态数据;或,
向第二节点同步第一区块链网络中全量的事务状态数据、已编译的智能合约数据和最新N条区块数据。
19.根据权利要求16或17所述的装置,其中,所述第一账本处理模块或第二账本处理模块具体用于:
向第二节点实时同步第一区块链网络中的区块数据和已编译的智能合约数据,使第二节点按照固定时间间隔更新事务状态数据。
20.根据权利要求16或17所述的装置,其中,所述第一节点和所述第二节点设置于成员机构的不同互联网机房。
21. 一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-10中任一项所述的方法。
23.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-10中任一项所述的方法。
CN202110055423.3A 2021-01-15 2021-01-15 节点的故障处理方法、装置、设备和存储介质 Active CN112799879B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110055423.3A CN112799879B (zh) 2021-01-15 2021-01-15 节点的故障处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110055423.3A CN112799879B (zh) 2021-01-15 2021-01-15 节点的故障处理方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN112799879A CN112799879A (zh) 2021-05-14
CN112799879B true CN112799879B (zh) 2024-04-05

Family

ID=75809711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110055423.3A Active CN112799879B (zh) 2021-01-15 2021-01-15 节点的故障处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN112799879B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114221777B (zh) * 2021-08-17 2024-01-30 北京恒安嘉新安全技术有限公司 受限条件下数字货币流量自同步监测方法、装置和设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107332876A (zh) * 2017-05-31 2017-11-07 深圳前海微众银行股份有限公司 区块链状态的同步方法及装置
CN109542980A (zh) * 2018-11-20 2019-03-29 北京磁云数字科技有限公司 一种区块链的数据处理方法、装置、设备及介质
CN109559223A (zh) * 2018-10-10 2019-04-02 远光软件股份有限公司 一种基于区块链技术的交易方法、装置及区块链网络
CN110322352A (zh) * 2019-07-09 2019-10-11 深圳市炳德区块链技术有限公司 一种基于区块链的账本建立及查询方法、电子设备
CN110633323A (zh) * 2019-09-16 2019-12-31 腾讯科技(深圳)有限公司 业务数据存储方法、装置、存储介质和计算机设备
CN111277645A (zh) * 2020-01-16 2020-06-12 深圳市网心科技有限公司 主备节点热切换方法、区块链***、区块链节点及介质
WO2020133148A1 (zh) * 2018-12-28 2020-07-02 合肥达朴汇联科技有限公司 区块链的数据处理方法、装置和区块链***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102181136B1 (ko) * 2018-11-15 2020-11-20 엔에이치엔 주식회사 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 블록체인 시스템
US11966818B2 (en) * 2019-02-21 2024-04-23 Hewlett Packard Enterprise Development Lp System and method for self-healing in decentralized model building for machine learning using blockchain
US10956444B2 (en) * 2019-07-31 2021-03-23 Advanced New Technologies Co., Ltd. Block chain state data synchronization method, apparatus, and electronic device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107332876A (zh) * 2017-05-31 2017-11-07 深圳前海微众银行股份有限公司 区块链状态的同步方法及装置
CN109559223A (zh) * 2018-10-10 2019-04-02 远光软件股份有限公司 一种基于区块链技术的交易方法、装置及区块链网络
CN109542980A (zh) * 2018-11-20 2019-03-29 北京磁云数字科技有限公司 一种区块链的数据处理方法、装置、设备及介质
WO2020133148A1 (zh) * 2018-12-28 2020-07-02 合肥达朴汇联科技有限公司 区块链的数据处理方法、装置和区块链***
CN110322352A (zh) * 2019-07-09 2019-10-11 深圳市炳德区块链技术有限公司 一种基于区块链的账本建立及查询方法、电子设备
CN110633323A (zh) * 2019-09-16 2019-12-31 腾讯科技(深圳)有限公司 业务数据存储方法、装置、存储介质和计算机设备
CN111277645A (zh) * 2020-01-16 2020-06-12 深圳市网心科技有限公司 主备节点热切换方法、区块链***、区块链节点及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于区块链的学位证书存证***设计与实现;刘东伟;张学旺;郭晓金;;计算机工程与设计;20200216(第02期);全文 *

Also Published As

Publication number Publication date
CN112799879A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN109951331B (zh) 用于发送信息的方法、装置和计算集群
CN109949111B (zh) 电子票据标识分配方法、电子票据生成方法、装置及***
CN107666493B (zh) 一种数据库配置方法及其设备
CN111949444A (zh) 一种基于分布式服务集群的数据备份与恢复***及方法
CN110633046A (zh) 一种分布式***的存储方法、装置、存储设备及存储介质
CN111641521A (zh) 一种基于Ambari的云上部署大数据集群的方法
CN112799879B (zh) 节点的故障处理方法、装置、设备和存储介质
CN117435569A (zh) 缓存***动态扩容方法、装置、设备、介质和程序产品
CN103780433B (zh) 自愈式虚拟资源配置管理数据架构
CN102882709A (zh) 一种云计算环境下监控***和方法
CN113641688B (zh) 节点更新方法、相关装置及计算机程序产品
CN113360689B (zh) 图像检索***、方法、相关装置及计算机程序产品
CN114500443A (zh) 消息推送方法、装置、***、电子设备和存储介质
CN117395263B (zh) 一种数据同步方法、装置、设备和存储介质
CN110413686A (zh) 一种数据写入方法、装置、设备及存储介质
CN109005059A (zh) 一种实现Redis自动备份的***及方法
CN117113942B (zh) 一种模型同步方法、装置、电子设备以及存储介质
CN116881229A (zh) 数据库演练环境构建方法、装置、设备及存储介质
CN116700824A (zh) 配置策略的同步方法、装置及计算机程序产品
CN114598743A (zh) 一种服务发现方法、装置、电子设备及存储介质
CN105162873A (zh) 一种k1服务器的高可用方法及***
CN114138538A (zh) 异常实例的处理方法、装置和电子设备
CN113672384A (zh) 基于Monitor的客户端集群维护方法、***、终端及存储介质
CN114499778A (zh) 维护云平台双活的装置、方法、***和存储介质
CN118041915A (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