[go: up one dir, main page]

CN114036002A - 区块链数据备份方法、装置、存储介质及电子设备 - Google Patents

区块链数据备份方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN114036002A
CN114036002A CN202111335577.4A CN202111335577A CN114036002A CN 114036002 A CN114036002 A CN 114036002A CN 202111335577 A CN202111335577 A CN 202111335577A CN 114036002 A CN114036002 A CN 114036002A
Authority
CN
China
Prior art keywords
data
backup
backed
blockchain
information
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
Application number
CN202111335577.4A
Other languages
English (en)
Other versions
CN114036002B (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.)
Neusoft Corp
Original Assignee
Neusoft Corp
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 Neusoft Corp filed Critical Neusoft Corp
Priority to CN202111335577.4A priority Critical patent/CN114036002B/zh
Publication of CN114036002A publication Critical patent/CN114036002A/zh
Application granted granted Critical
Publication of CN114036002B publication Critical patent/CN114036002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种区块链数据备份方法、装置、存储介质及电子设备,所述方法包括:获取目标节点的区块链数据的状态信息;在所述状态信息表征所述目标节点的区块链数据发生变化的情况下,获取所述区块链数据的变化数据;将所述变化数据作为待备份数据添加至备份处理序列中;将所述备份处理序列中的待备份数据异步存储至备份数据空间中。上述技术方案可以实现对目标节点的区块链数据进行备份的效果。并且,这样的备份方式独立于目标节点本身的区块链数据处理逻辑,因而能够降低备份过程对目标节点的区块链数据处理性能的影响。

Description

区块链数据备份方法、装置、存储介质及电子设备
技术领域
本公开涉及区块链技术领域,具体地,涉及一种区块链数据备份方法、装置、存储介质及电子设备。
背景技术
区块链技术是一种能够通过去中心化和去信任的方式集体维护一个可靠数据库的技术。由于区块链账本具有不可篡改、可追溯等性质,因此区块链技术在跨境支付、凭据业务以及金融领域有着广阔的应用场景。
相关场景中,区块链账本也可能出现损坏,从而导致相关的交易过程受到影响。
发明内容
本公开的目的是提供一种区块链数据备份方法、装置、存储介质及电子设备,以解决上述相关技术问题。
为了实现上述目的,根据本公开实施例的第一方面,提供一种区块链数据备份方法,包括:
获取目标节点的区块链数据的状态信息;
在所述状态信息表征所述目标节点的区块链数据发生变化的情况下,获取所述区块链数据的变化数据;
将所述变化数据作为待备份数据添加至备份处理序列中;
将所述备份处理序列中的待备份数据异步存储至备份数据空间中。
可选地,还包括:
在将目标待备份数据存储至所述备份数据空间的情况下,获取所述目标节点的区块链数据的第一哈希值,其中,所述目标待备份数据为所述备份处理序列中的预设待备份数据;
获取所述备份数据空间中的备份区块链数据的第二哈希值;
若所述第一哈希值与所述第二哈希值不一致,则将所述备份数据空间中的备份区块链数据从当前备份节点回滚至前一备份节点;
对所述前一备份节点至当前备份节点之间的待备份数据进行重新备份。
可选地,还包括:
在备份完成后,对所述区块链数据进行采样,得到多个区块链采样数据;
基于所述多个区块链采样数据计算数据凭证信息;
将所述数据凭证信息以及所述多个区块链采样数据的索引信息发送至所述目标节点。
可选地,所述基于所述多个区块链采样数据计算数据凭证信息,包括:
基于所述多个区块链采样数据构建默克尔树;
计算所述默克尔树的第一根哈希值,得到所述数据凭证信息;
其中,所述区块链采样数据的索引信息用于所述目标节点从所述备份数据空间中获取多个目标区块链数据,所述目标节点基于获取到的多个目标区块链数据计算第二根哈希值,并通过对比所述数据凭证信息和所述第二根哈希值对所述区块链数据的账本数据进行验证。
可选地,所述将所述变化数据作为待备份数据添加至备份处理序列中,包括:
对所述变化数据进行解析,得到所述变化数据的描述信息,所述描述信息包括所述变化数据所属的通道信息、所述变化数据所对应的智能合约名称、所述变化数据的时间戳中的一者或多者;
将所述变化数据以及所述变化数据的描述信息添加至所述备份处理序列中。
可选地,所述将所述备份处理序列中的待备份数据异步存储至备份数据空间中,包括:
在存储每一待备份数据时,获取所述待备份数据的描述信息;
根据获取到的描述信息确定所述待备份数据在所述备份数据空间中的目标存储分区,其中,所述备份数据空间基于通道信息、智能合约名称、时间戳中的一者或多者划分为多个存储分区;
将所述待备份数据保存至所述目标存储分区中。
可选地,所述将所述变化数据作为待备份数据添加至备份处理序列中,包括:
对所述变化数据进行签名,得到所述变化数据的签名信息;
将所述变化数据以及所述变化数据的签名信息添加至备份处理序列中;
所述将所述备份处理序列中的待备份数据异步存储至备份数据空间中,包括:
针对所述备份处理序列中的每一待备份数据,通过该待备份数据的签名信息对该待备份数据进行验证;
在验证通过的情况下,将该待备份数据存储至备份数据空间中。
可选地,还包括:
接收所述目标节点的数据备份请求,所述数据备份请求由所述目标节点在存储异常时生成;
将所述数据备份请求中的待备份数据添加至所述备份处理序列中。
可选地,还包括:
接收所述目标节点的数据查询请求,所述数据查询请求包括待查询数据的信息;
根据所述待查询数据的信息,从所述备份数据空间中获取所述待查询数据;
将获取到的待查询数据发送至所述目标节点。
根据本公开实施例的第二方面,提供一种区块链数据备份装置,包括:
第一获取模块,用于获取目标节点的区块链数据的状态信息;
第二获取模块,用于在所述状态信息表征所述目标节点的区块链数据发生变化的情况下,获取所述区块链数据的变化数据;
执行模块,用于将所述变化数据作为待备份数据添加至备份处理序列中;
第一备份模块,用于将所述备份处理序列中的待备份数据异步存储至备份数据空间中。
可选地,还包括:
第三获取模块,用于在将目标待备份数据存储至所述备份数据空间的情况下,获取所述目标节点的区块链数据的第一哈希值,其中,所述目标待备份数据为所述备份处理序列中的预设待备份数据;
第四获取模块,用于获取所述备份数据空间中的备份区块链数据的第二哈希值;
第一数据处理模块,用于在所述第一哈希值与所述第二哈希值不一致时,将所述备份数据空间中的备份区块链数据从当前备份节点回滚至前一备份节点;
第二备份模块,用于对所述前一备份节点至当前备份节点之间的待备份数据进行重新备份。
可选地,还包括:
采样模块,用于在备份完成后,对所述区块链数据进行采样,得到多个区块链采样数据;
计算模块,用于基于所述多个区块链采样数据计算数据凭证信息;
凭证发送模块,用于将所述数据凭证信息以及所述多个区块链采样数据的索引信息发送至所述目标节点。
可选地,所述计算模块,包括:
构建子模块,用于基于所述多个区块链采样数据构建默克尔树;
计算子模块,用于计算所述默克尔树的第一根哈希值,得到所述数据凭证信息;
其中,所述区块链采样数据的索引信息用于所述目标节点从所述备份数据空间中获取多个目标区块链数据,所述目标节点基于获取到的多个目标区块链数据计算第二根哈希值,并通过对比所述数据凭证信息和所述第二根哈希值对所述区块链数据的账本数据进行验证。
可选地,所述执行模块,包括:
数据解析子模块,用于对所述变化数据进行解析,得到所述变化数据的描述信息,所述描述信息包括所述变化数据所属的通道信息、所述变化数据所对应的智能合约名称、所述变化数据的时间戳中的一者或多者;
数据添加子模块,用于将所述变化数据以及所述变化数据的描述信息添加至所述备份处理序列中。
可选地,所述第一备份模块,包括:
获取子模块,用于在存储每一待备份数据时,获取所述待备份数据的描述信息;
确定子模块,用于根据获取到的描述信息确定所述待备份数据在所述备份数据空间中的目标存储分区,其中,所述备份数据空间基于通道信息、智能合约名称、时间戳中的一者或多者划分为多个存储分区;
第一存储子模块,用于将所述待备份数据保存至所述目标存储分区中。
可选地,所述执行模块,包括:
签名子模块,用于对所述变化数据进行签名,得到所述变化数据的签名信息;
执行子模块,用于将所述变化数据以及所述变化数据的签名信息添加至备份处理序列中;
所述第一备份模块,包括:
签名验证子模块,用于针对所述备份处理序列中的每一待备份数据,通过该待备份数据的签名信息对该待备份数据进行验证;
第二存储子模块,用于在验证通过的情况下,将该待备份数据存储至备份数据空间中。
可选地,还包括:
接收模块,用于接收所述目标节点的数据备份请求,所述数据备份请求由所述目标节点在存储异常时生成;
第二数据处理模块,用于将所述数据备份请求中的待备份数据添加至所述备份处理序列中。
根据本公开实施例的第三方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。
以上述技术方案应用于第三方备份设备为例,所述备份设备可以监控目标节点的区块链数据的状态,得到状态信息。在所述状态信息表征所述区块链数据发生变化的情况下,备份设备可以获取所述区块链数据的变化数据,并将变化数据添加至备份处理序列中。所述备份设备还可以通过异步存储的方式,将所述备份处理序列中的待备份数据存储至备份数据空间中。
通过这样的方式,可以实现对目标节点的区块链数据进行备份的效果。并且,这样的备份方式独立于目标节点本身的区块链数据处理逻辑,因而能够降低备份过程对目标节点的区块链数据处理性能的影响。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开一示例性实施例所示出的一种区块链数据备份方法的流程图。
图2是本公开一示例性实施例所示出的一种备份数据空间的框图。
图3是本公开一示例性实施例所示出的一种区块链数据备份方法的流程图。
图4是本公开一示例性实施例所示出的一种区块链数据备份方法的流程图。
图5是本公开一示例性实施例所示出的一种区块链数据备份的流程图。
图6是本公开一示例性实施例所示出的一种区块链数据备份装置的框图。
图7是本公开一示例性实施例所示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在介绍本公开的区块链数据备份方法、装置、存储介质及电子设备之前,首先对本公开的应用场景进行说明。本公开所提供的各实施例例如可以用于对区块链节点的数据进行备份。
相关场景中,区块链节点、区块链节点的存储介质可能出现故障,从而导致区块链数据读写异常、区块链数据丢失等问题,进而导致区块链节点的相关功能无法使用。而当背书节点出现上述故障时,则可能进一步地影响区块链网络的性能,甚至导致区块链网络处于不可用状态。
为此,本公开提供一种区块链数据备份方法。图1是本公开一示例性实施例所示出的一种区块链数据备份方法的流程图,参照图1,所述方法包括:
在步骤11中,获取目标节点的区块链数据的状态信息。其中,目标节点可以是区块链网络中任意的需要进行区块链数据备份的节点。
以所述方法应用于第三方备份设备为例进行说明,所述备份设备例如可以被配置为对目标节点的区块链数据进行监听。例如,在所述目标节点通过本地数据库存储区块链数据的情况下,所述备份设备可以对所述本地数据库进行监听。当监听到目标节点对所述本地数据库进行操作(如写、删除操作等)时,则可以确定所述区块链数据出现变化。
在步骤12中,在所述状态信息表征所述目标节点的区块链数据发生变化的情况下,获取所述区块链数据的变化数据。
这里,区块链数据可以包括区块链中的区块数据。例如,当区块链网络中生成新的区块时,目标节点可以对新生成的区块进行存储。在这种情况下,变化数据可以是所述新生成的区块,则步骤12可以是指备份设备获取所述新生成的区块。
在一些实施场景中,区块链中可以保存交易数据的哈希值,目标节点则可以保存至少部分所述哈希值所对应的交易数据。在这种情况下,所述变化数据可以包括目标节点本地存储的交易数据中的变化数据。
在步骤13中,将所述变化数据作为待备份数据添加至备份处理序列中。
例如,可以将变化数据作为一个新的事件,并将新的事件添加至备份事件处理序列中。所述备份设备也可以存储多个变化数据,并在满足预设条件时将所述变化数据添加至备份处理序列中。其中,所述预设条件例如可以是变化数据的大小大于容量阈值、存储变化数据的时长大于时长阈值等等。
在一些实施场景中,将变化数据添加至备份处理序列时还可以对所述变化数据进行处理。例如在一种可能的实施方式中,所述将所述变化数据作为待备份数据添加至备份处理序列中(步骤13),包括:
对所述变化数据进行解析,得到所述变化数据的描述信息。这里,描述信息可以包括所述变化数据所属的通道信息、所述变化数据所对应的智能合约名称、所述变化数据的时间戳中的一者或多者。例如在一些场景中,所述描述信息可以为:通道名称+智能合约名称+编号。其中,所述编号可以是时间戳,从而可以表征变化数据的时序。在一些场景中,所述编号也可以为其他编号(如顺序字段),本公开对此不做限制。此外,还可以采用字符(例如“#”)对描述信息中的不同字段进行分割,以便于解析处理。
这样,可以将所述变化数据以及所述变化数据的描述信息添加至所述备份处理序列中。
在步骤14中,将所述备份处理序列中的待备份数据异步存储至备份数据空间中。这里,备份数据空间例如可以预设的备份数据库。
沿用上述例子,在将变化数据的描述信息添加至所述备份处理序列中的情况下,步骤14可以包括:
在存储每一待备份数据时,获取所述待备份数据的描述信息。根据获取到的描述信息确定所述待备份数据在所述备份数据空间中的目标存储分区。
图2是本公开所示出的一种备份数据空间的框图示意图。参照图2,所述备份数据空间可以基于通道信息、智能合约名称、时间戳中的一者或多者(即图中的命名空间)划分为多个存储分区。以通道为例,在包括通道1和通道2的情况下,可以在备份数据空间中为通道1划分存储分区1,为通道2划分存储分区2。这样,在待备份数据的描述信息表征所述待备份数据属于通道1的情况下,可以确定所述待备份数据对应于的目标存储分区为存储分区1。
这样,可以将所述待备份数据保存至确定的目标存储分区中。
以下对数据存储过程进行示例性说明。参照图2,在存储分区中,存储文件可以包括元文件和主文件。其中,元文件可以存储数据索引、文件偏移量、文件指针、检查点偏移量、文件大小等信息。主文件可以存储变化数据,如数据id、账本数据等。所述主文件可以由一个或多个子文件组成,在一些场景中每个子文件大小例如为64M。当文件大小超过64M时,则分割出新的子文件。
在存储待备份数据时,可以依据待备份数据的描述信息确定目标存储分区,然后读取所述目标存储分区的元文件,从而获取该目标存储分区当前的数据存储文件指针和文件偏移量。这样,可以根据当前的数据存储文件指针和文件偏移量,将待备份数据以追加的方式写入目标存储分区,并记录和更新所述目标存储分区的元文件。
也就是说,上述技术方案能够根据待备份数据所属的类型对待备份数据进行分区存储,从而有助于对备份文件进行管理。
在一种可能的实施方式中,所述将所述变化数据作为待备份数据添加至备份处理序列中(步骤13),包括:
对所述变化数据进行签名,得到所述变化数据的签名信息。将所述变化数据以及所述变化数据的签名信息添加至备份处理序列中。其中,所述签名信息例如可以是备份设备基于自身私钥对所述变化数据签名得到的,签名过程请参照相关技术中的说明,本公开对此不做赘述。
在将签名信息添加至备份处理序列的情况下,所述将所述备份处理序列中的待备份数据异步存储至备份数据空间中(步骤14),包括:
针对所述备份处理序列中的每一待备份数据,通过该待备份数据的签名信息对该待备份数据进行验证。在验证通过的情况下,将该待备份数据存储至备份数据空间中。
例如,可以计算待备份数据的哈希值,并通过所述备份设备的公钥对所述签名信息进行解密。这样,可以将解密得到的待备份数据的哈希值与计算得到的哈希值进行对比,从而验证所述待备份数据的正确性。通过这样的方式,能够提升备份过程中的数据安全性。
上述技术方案中,备份设备可以监控目标节点的区块链数据的状态,得到状态信息。在所述状态信息表征所述区块链数据发生变化的情况下,备份设备可以获取所述区块链数据的变化数据。这样,所述备份设备可以将变化数据添加至备份处理序列中。所述备份设备还可以通过异步存储的方式,将所述备份处理序列中的待备份数据存储至备份数据空间中。
通过这样的方式,可以实现对目标节点的区块链数据进行备份的效果。并且,这样的备份方式独立于目标节点本身的区块链数据处理逻辑,因而能够降低备份过程对目标节点的区块链数据处理性能的影响。
在一些场景中,目标节点可能存在数据写入异常的现象,在这种情况下,目标节点存在数据备份需求,但目标节点的区块链数据并没有变化。
因此,在一种可能的实施方式中,所述方法还包括:
接收所述目标节点的数据备份请求,所述数据备份请求由所述目标节点在存储异常时生成。将所述数据备份请求中的待备份数据添加至所述备份处理序列中。
通过这样的方式,当目标节点存储异常时,也能够通过上述技术方案实现区块链数据的备份,从而有助于提升备份数据的完整性。
图3是本公开所提供的一种区块链数据备份方法的流程图,如图3所示,所述方法包括:
S31,获取目标节点的区块链数据的状态信息。
S32,在所述状态信息表征所述目标节点的区块链数据发生变化的情况下,获取所述区块链数据的变化数据。
S33,将所述变化数据作为待备份数据添加至备份处理序列中。
S34,将所述备份处理序列中的待备份数据异步存储至备份数据空间中。
S35,在将目标待备份数据存储至所述备份数据空间的情况下,获取所述目标节点的区块链数据的第一哈希值。
其中,所述目标待备份数据为所述备份处理序列中的预设待备份数据,所述预设待备份数据可以根据应用需求进行设置。例如,可以将所述备份处理序列中的最后一个待备份数据作为所述目标待备份数据。
在一些场景中,所述目标待备份数据也可以是指所述备份处理序列中的每一待备份数据。在这种情况下,在每次存储完一个待备份数据后可以获取所述目标节点的区块链数据的第一哈希值。
S36,获取所述备份数据空间中的备份区块链数据的第二哈希值。
S37,若所述第一哈希值与所述第二哈希值不一致,则将所述备份数据空间中的备份区块链数据从当前备份节点回滚至前一备份节点。
应当理解,在备份的过程中可以存在多个备份节点。例如,在时序这一维度,可以存在多个备份时间节点,如9:00这一备份时间节点以及10:00这一备份时间节点。在这种情况下,步骤S37可以是指,当所述第一哈希值与所述第二哈希值不一致时,将备份数据空间中的备份区块链数据还原为9:00这一备份时间节点的备份区块链数据。
S38,对所述前一备份节点至当前备份节点之间的待备份数据进行重新备份。
沿用上述例子,则步骤S38可以是指将9:00至10:00间产生的区块链数据的变化数据进行重新备份。
也就是说,可以对备份数据进行验证,在备份异常时可以对备份异常的数据进行重新备份。通过这样的方式,能够保障备份数据的正确性。
需要说明的是,在一些场景中,备份区块链数据可能包括相应的表征数据为备份数据的标识位。在一些场景中,目标节点也可能备份部分的区块链数据。在这些情况下,即便备份区块链数据正确,但对备份区块链数据以及目标节点的区块链数据计算哈希值,得到的结果也可能是不同的。
为此,参照图4所示出的一种区块链数据备份方法的流程图,在一种可能的实施方式中,所述方法包括:
S41,获取目标节点的区块链数据的状态信息。
S42,在所述状态信息表征所述目标节点的区块链数据发生变化的情况下,获取所述区块链数据的变化数据。
S43,将所述变化数据作为待备份数据添加至备份处理序列中。
S44,将所述备份处理序列中的待备份数据异步存储至备份数据空间中。
S45,在备份完成后,对所述区块链数据进行采样,得到多个区块链采样数据。
示例地,可以基于采样数量需求,将所述区块链数据划分为多个数据区间。例如在区块链数据包括N个交易数据的情况下,若要采样M个数据,则可以将所述N个交易划分(例如均匀划分)为M个数据区间。这样,可以遍历每一所述数据区间,并是从遍历到的数据区间中随机采样一个数据,最终得到所述多个区块链采样数据。
需要说明的是,在目标节点备份部分的区块链数据的情况下,则可以在备份的区块链数据范围中进行采样。此外,为了提升数据凭证信息的有效性,在一些场景中也可以增大采样数据的数量(如全部的区块链数据),本公开对此不做限制。
S46,基于所述多个区块链采样数据计算数据凭证信息。
示例地,可以基于所述多个区块链采样数据构建默克尔树,并计算所述默克尔树的第一根哈希值,将所述第一根哈希值作为所述数据凭证信息。
S47,将所述数据凭证信息以及所述多个区块链采样数据的索引信息发送至所述目标节点。
这里,所述区块链采样数据的索引信息可以是该区块链采样数据的指针。通过所述索引信息能够在目标节点的区块链数据中获取对应的区块链采样数据,通过所述索引信息也能够在备份区块链数据中获取到对应的目标区块链数据。
这样,通过将所述数据凭证信息以及所述多个区块链采样数据的索引信息发送至所述目标节点,当目标节点的区块链数据丢失时,也能够基于所述数据凭证信息以及所述多个区块链采样数据的索引信息对恢复的区块链数据的正确性进行校验。
示例地,目标节点可以基于所述区块链采样数据的索引信息从所述备份数据空间中获取多个目标区块链数据。所述目标节点还可以对获取到的多个目标区块链数据构建默克尔树,并计算第二根哈希值。这样,目标节点可以通过对比所述数据凭证信息和所述第二根哈希值对所述区块链数据的账本数据进行验证。当数据凭证信息和所述第二根哈希值一致时,则说明数据可信。
采用上述技术方案,目标节点在恢复区块链数据时,还可以基于数据凭证信息对恢复的区块链数据进行验证,从而进一步的提升了区块链数据的可信性。在一些可能的实施方式中,上述计算账本凭证信息的过程也可以通过可信执行环境执行,从而提升数据凭证信息的可信性。
在一种可能的实施方式中,所述方法还包括:
接收所述目标节点的数据查询请求,所述数据查询请求包括待查询数据的信息,如待查询数据的描述信息。在这种情况下,则可以根据所述待查询数据的信息,从所述备份数据空间中获取所述待查询数据,并将获取到的待查询数据发送至所述目标节点。
示例地,备份设备可以依据待查询数据的描述信息(如通道名、合约名等)确定所述待查询数据在所述备份数据空间中的存储分区,并获取所述存储分区的元文件。这样,所述备份设备可以通过元文件中的检查点信息获取到所述待查询数据所对应的主文件的指针以及偏移量,进而从所述存储分区中获取到所述带查询数据。
通过这样的方式,即便目标节点的区块链数据读写异常,所述目标节点仍可以通过上述方法进行区块链数据的存储和读取。也就是说,目标节点仍能够执行相应的区块链数据处理逻辑。因此,上述技术方案解决了区块链数据损坏或丢失导致的区块链节点或区块链网络不可用的问题,同时也避免了区块链节点间数据同步导致的区块链网络性能下降的问题。
需要说明的是,上述实施例中以备份设备作为执行端为例,对本公开所提供的区块链数据备份方法进行了说明。但在具体实施时,所述方法也可以由目标节点执行。示例地,可以在目标节点中配置相关服务,并通过配置的所述服务实现本方法所涉及的步骤。
参照图5所示出的一种区块链数据备份的流程图,在一些场景中,可以在目标节点中配置数据发送服务、数据接收服务以及数据同步服务。
其中,所述数据发送服务可以用于对目标节点的区块链数据进行监听检测,当目标节点的区块链数据发生变化时,则可以获取区块链数据的变化数据。针对获取到的变化数据,所述数据发送服务还可以通过自身私钥进行数字签名,并将所述变化数据以数据事件的形式发送至数据接收服务。
这里,数据事件可以包括数据主题和内容,数据主题例如可以为:数据所属通道名称+数据所对应的智能合约名称+数据id。在实施时,例如可以采用字符“#”对数据主题中的字段进行分割。事件id例如可以基于时间戳生成,从而可以体现数据事件的顺序。数据内容的定义例如可以为:数字签名+区块链变化数据,在实施时也可以采用字符“#”进行字段分割。此外,数据事件在发送时还可以采用批量发送的方式,例如在生成的数据事件的数量大于数量阈值时,将各数据事件一同发送至数据接收服务。通过这样的方式,可以提高系统性能。
数据接收服务可以用于接收数据事件,并将数据事件以追加的方式进行存储。在一些场景中,数据接收服务可以实时监听并接收数据发送服务发送的数据事件,并将接收到的数据事件进行解析。沿用上述例子,在数据事件解析时,数据接收服务例如可以采用字符“#”对数据主题和数据内容中的字符串进行分割,从而获取数据的相关信息。这些信息例如可以包括通道名称、合约名称、数据id、数字签名以及账本数据等。这样,数据接收服务可以以追加日志的方式实现数据事件的存储。例如,可以将新接收到的数据事件添加至备份事件处理序列中。
数据同步服务可以对事件处理序列中的数据事件进行处理,通过对数据事件进行事件回放,从而实现数据同步。例如,针对获取到的数据事件,数据同步服务可以通过数字签名对该数据事件中的区块链变化数据进行校验。在校验时,数据同步服务可以通过数据发送服务的公钥对数字签名进行解密,得到区块链变化数据的哈希值。这样,数据同步服务可以计算数据事件中的区块链变化数据的哈希值,并与解密得到的哈希值进行对比。若二者一致则校验通过,若二者不一致则校验不通过。
在数据校验通过的情况下,数据同步服务可以进行数据事件回放。例如,可以基于数据事件的先后顺序,依次执行数据事件所对应的数据操作(如写、删除)。这样,通过回放数据事件,可以实现区块链数据存储同步,完成区块链数据备份。备份的数据例如可以包括区块链历史数据、区块链交易数据以及区块链状态数据,本公开对此不做限制。此外,存储的过程请参照上述关于图1的实施例说明,为了说明书的简洁,本公开对此不再赘述。
基于同一发明构思,本公开还提供一种区块链数据备份装置。图6是本公开所示出的一种区块链数据备份装置的框图,参照图6,装置600包括:
第一获取模块601,用于获取目标节点的区块链数据的状态信息;
第二获取模块602,用于在所述状态信息表征所述目标节点的区块链数据发生变化的情况下,获取所述区块链数据的变化数据;
执行模块603,用于将所述变化数据作为待备份数据添加至备份处理序列中;
第一备份模块604,用于将所述备份处理序列中的待备份数据异步存储至备份数据空间中。
以上述技术方案应用于第三方备份设备为例,所述备份设备可以监控目标节点的区块链数据的状态,得到状态信息。在所述状态信息表征所述区块链数据发生变化的情况下,备份设备可以获取所述区块链数据的变化数据。这样,所述备份设备可以将变化数据添加至备份处理序列中。所述备份设备还可以通过异步存储的方式,将所述备份处理序列中的待备份数据存储至备份数据空间中。
通过这样的方式,可以实现对目标节点的区块链数据进行备份的效果。并且,这样的备份方式独立于目标节点本身的区块链数据处理逻辑,因而能够降低备份过程对目标节点的区块链数据处理性能的影响。
可选地,所述装置600还包括:
第三获取模块,用于在将目标待备份数据存储至所述备份数据空间的情况下,获取所述目标节点的区块链数据的第一哈希值,其中,所述目标待备份数据为所述备份处理序列中的预设待备份数据;
第四获取模块,用于获取所述备份数据空间中的备份区块链数据的第二哈希值;
第一数据处理模块,用于在所述第一哈希值与所述第二哈希值不一致时,将所述备份数据空间中的备份区块链数据从当前备份节点回滚至前一备份节点;
第二备份模块,用于对所述前一备份节点至当前备份节点之间的待备份数据进行重新备份。
可选地,所述装置600还包括:
采样模块,用于在备份完成后,对所述区块链数据进行采样,得到多个区块链采样数据;
计算模块,用于基于所述多个区块链采样数据计算数据凭证信息;
凭证发送模块,用于将所述数据凭证信息以及所述多个区块链采样数据的索引信息发送至所述目标节点。
可选地,所述计算模块,包括:
构建子模块,用于基于所述多个区块链采样数据构建默克尔树;
计算子模块,用于计算所述默克尔树的第一根哈希值,得到所述数据凭证信息;
其中,所述区块链采样数据的索引信息用于所述目标节点从所述备份数据空间中获取多个目标区块链数据,所述目标节点基于获取到的多个目标区块链数据计算第二根哈希值,并通过对比所述数据凭证信息和所述第二根哈希值对所述区块链数据的账本数据进行验证。
可选地,所述执行模块603,包括:
数据解析子模块,用于对所述变化数据进行解析,得到所述变化数据的描述信息,所述描述信息包括所述变化数据所属的通道信息、所述变化数据所对应的智能合约名称、所述变化数据的时间戳中的一者或多者;
数据添加子模块,用于将所述变化数据以及所述变化数据的描述信息添加至所述备份处理序列中。
可选地,所述第一备份模块604,包括:
获取子模块,用于在存储每一待备份数据时,获取所述待备份数据的描述信息;
确定子模块,用于根据获取到的描述信息确定所述待备份数据在所述备份数据空间中的目标存储分区,其中,所述备份数据空间基于通道信息、智能合约名称、时间戳中的一者或多者划分为多个存储分区;
第一存储子模块,用于将所述待备份数据保存至所述目标存储分区中。
可选地,所述执行模块603,包括:
签名子模块,用于对所述变化数据进行签名,得到所述变化数据的签名信息;
执行子模块,用于将所述变化数据以及所述变化数据的签名信息添加至备份处理序列中;
所述第一备份模块604,包括:
签名验证子模块,用于针对所述备份处理序列中的每一待备份数据,通过该待备份数据的签名信息对该待备份数据进行验证;
第二存储子模块,用于在验证通过的情况下,将该待备份数据存储至备份数据空间中。
可选地,所述装置600还包括:
接收模块,用于接收所述目标节点的数据备份请求,所述数据备份请求由所述目标节点在存储异常时生成;
第二数据处理模块,用于将所述数据备份请求中的待备份数据添加至所述备份处理序列中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开所提供的区块链数据备份方法的步骤。
本公开还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开所提供的区块链数据备份方法的步骤。
图7是根据一示例性实施例示出的一种电子设备700的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的区块链数据备份方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的区块链数据备份方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的区块链数据备份方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的区块链数据备份方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的区块链数据备份方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (11)

1.一种区块链数据备份方法,其特征在于,包括:
获取目标节点的区块链数据的状态信息;
在所述状态信息表征所述目标节点的区块链数据发生变化的情况下,获取所述区块链数据的变化数据;
将所述变化数据作为待备份数据添加至备份处理序列中;
将所述备份处理序列中的待备份数据异步存储至备份数据空间中。
2.根据权利要求1所述的方法,其特征在于,还包括:
在将目标待备份数据存储至所述备份数据空间的情况下,获取所述目标节点的区块链数据的第一哈希值,其中,所述目标待备份数据为所述备份处理序列中的预设待备份数据;
获取所述备份数据空间中的备份区块链数据的第二哈希值;
若所述第一哈希值与所述第二哈希值不一致,则将所述备份数据空间中的备份区块链数据从当前备份节点回滚至前一备份节点;
对所述前一备份节点至当前备份节点之间的待备份数据进行重新备份。
3.根据权利要求1所述的方法,其特征在于,还包括:
在备份完成后,对所述区块链数据进行采样,得到多个区块链采样数据;
基于所述多个区块链采样数据计算数据凭证信息;
将所述数据凭证信息以及所述多个区块链采样数据的索引信息发送至所述目标节点。
4.根据权利要求3所述的方法,其特征在于,所述基于所述多个区块链采样数据计算数据凭证信息,包括:
基于所述多个区块链采样数据构建默克尔树;
计算所述默克尔树的第一根哈希值,得到所述数据凭证信息;
其中,所述区块链采样数据的索引信息用于所述目标节点从所述备份数据空间中获取多个目标区块链数据,所述目标节点基于获取到的多个目标区块链数据计算第二根哈希值,并通过对比所述数据凭证信息和所述第二根哈希值对所述区块链数据的账本数据进行验证。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述将所述变化数据作为待备份数据添加至备份处理序列中,包括:
对所述变化数据进行解析,得到所述变化数据的描述信息,所述描述信息包括所述变化数据所属的通道信息、所述变化数据所对应的智能合约名称、所述变化数据的时间戳中的一者或多者;
将所述变化数据以及所述变化数据的描述信息添加至所述备份处理序列中。
6.根据权利要求5所述的方法,其特征在于,所述将所述备份处理序列中的待备份数据异步存储至备份数据空间中,包括:
在存储每一待备份数据时,获取所述待备份数据的描述信息;
根据获取到的描述信息确定所述待备份数据在所述备份数据空间中的目标存储分区,其中,所述备份数据空间基于通道信息、智能合约名称、时间戳中的一者或多者划分为多个存储分区;
将所述待备份数据保存至所述目标存储分区中。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述将所述变化数据作为待备份数据添加至备份处理序列中,包括:
对所述变化数据进行签名,得到所述变化数据的签名信息;
将所述变化数据以及所述变化数据的签名信息添加至备份处理序列中;
所述将所述备份处理序列中的待备份数据异步存储至备份数据空间中,包括:
针对所述备份处理序列中的每一待备份数据,通过该待备份数据的签名信息对该待备份数据进行验证;
在验证通过的情况下,将该待备份数据存储至备份数据空间中。
8.根据权利要求1至4中任一项所述的方法,其特征在于,还包括:
接收所述目标节点的数据备份请求,所述数据备份请求由所述目标节点在存储异常时生成;
将所述数据备份请求中的待备份数据添加至所述备份处理序列中。
9.一种区块链数据备份装置,其特征在于,包括:
第一获取模块,用于获取目标节点的区块链数据的状态信息;
第二获取模块,用于在所述状态信息表征所述目标节点的区块链数据发生变化的情况下,获取所述区块链数据的变化数据;
执行模块,用于将所述变化数据作为待备份数据添加至备份处理序列中;
第一备份模块,用于将所述备份处理序列中的待备份数据异步存储至备份数据空间中。
10.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8中任一项所述方法的步骤。
11.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-8中任一项所述方法的步骤。
CN202111335577.4A 2021-11-11 2021-11-11 区块链数据备份方法、装置、存储介质及电子设备 Active CN114036002B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111335577.4A CN114036002B (zh) 2021-11-11 2021-11-11 区块链数据备份方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111335577.4A CN114036002B (zh) 2021-11-11 2021-11-11 区块链数据备份方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN114036002A true CN114036002A (zh) 2022-02-11
CN114036002B CN114036002B (zh) 2025-09-12

Family

ID=80144133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111335577.4A Active CN114036002B (zh) 2021-11-11 2021-11-11 区块链数据备份方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN114036002B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114896337A (zh) * 2022-05-06 2022-08-12 远光软件股份有限公司 一种数据上链方法、系统、设备和计算机可读存储介质
CN115080538A (zh) * 2022-06-14 2022-09-20 蚂蚁区块链科技(上海)有限公司 一种区块链版本验证方法及装置
CN120067098A (zh) * 2024-11-27 2025-05-30 厦门美亚亿安信息科技有限公司 一种基于区块链的MySQL数据备份方法、装置及可读介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299336A (zh) * 2018-09-30 2019-02-01 腾讯科技(深圳)有限公司 数据备份方法、装置、存储介质及计算设备
CN109788309A (zh) * 2018-12-25 2019-05-21 陕西优米数据技术有限公司 基于区块链技术的视频文件盗版检测方法及系统
CN110019235A (zh) * 2017-12-29 2019-07-16 百度在线网络技术(北京)有限公司 基于区块链的数据存储、恢复方法、装置、设备及介质
CN110351363A (zh) * 2019-07-12 2019-10-18 全链通有限公司 数据备份方法、设备及计算机可读存储介质
CN111209343A (zh) * 2020-01-22 2020-05-29 腾讯科技(深圳)有限公司 节点数据同步方法、装置、设备以及存储介质
US20200242592A1 (en) * 2019-01-25 2020-07-30 Coinbase, Inc. Syncing blockchain nodes with snapshots
US20210117385A1 (en) * 2019-10-16 2021-04-22 International Business Machines Corporation Database snapshot for managing state synchronization
CN113114759A (zh) * 2021-04-09 2021-07-13 杭州链网科技有限公司 一种实现多链互通的跨链方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019235A (zh) * 2017-12-29 2019-07-16 百度在线网络技术(北京)有限公司 基于区块链的数据存储、恢复方法、装置、设备及介质
CN109299336A (zh) * 2018-09-30 2019-02-01 腾讯科技(深圳)有限公司 数据备份方法、装置、存储介质及计算设备
CN109788309A (zh) * 2018-12-25 2019-05-21 陕西优米数据技术有限公司 基于区块链技术的视频文件盗版检测方法及系统
US20200242592A1 (en) * 2019-01-25 2020-07-30 Coinbase, Inc. Syncing blockchain nodes with snapshots
CN110351363A (zh) * 2019-07-12 2019-10-18 全链通有限公司 数据备份方法、设备及计算机可读存储介质
US20210117385A1 (en) * 2019-10-16 2021-04-22 International Business Machines Corporation Database snapshot for managing state synchronization
CN111209343A (zh) * 2020-01-22 2020-05-29 腾讯科技(深圳)有限公司 节点数据同步方法、装置、设备以及存储介质
CN113114759A (zh) * 2021-04-09 2021-07-13 杭州链网科技有限公司 一种实现多链互通的跨链方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YUYU YIN ET AL: "A Blockchain-Based Incremental Update Supported Data Storage System for Intelligent Vehicles", 《IEEE TRANSACTIONS ON VEHICULAR TECHNOLOGY》, vol. 70, no. 5, 31 May 2021 (2021-05-31), pages 4880 - 4893, XP011859582, DOI: 10.1109/TVT.2021.3068990 *
赵浩然 等: "LHB:用于工业互联网标志解析的轻量级混合区块链模型", 《计算机应用研究》, vol. 38, no. 9, 30 September 2021 (2021-09-30), pages 2594 - 2599 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114896337A (zh) * 2022-05-06 2022-08-12 远光软件股份有限公司 一种数据上链方法、系统、设备和计算机可读存储介质
CN115080538A (zh) * 2022-06-14 2022-09-20 蚂蚁区块链科技(上海)有限公司 一种区块链版本验证方法及装置
CN115080538B (zh) * 2022-06-14 2025-10-31 蚂蚁区块链科技(上海)有限公司 一种区块链版本验证方法及装置
CN120067098A (zh) * 2024-11-27 2025-05-30 厦门美亚亿安信息科技有限公司 一种基于区块链的MySQL数据备份方法、装置及可读介质

Also Published As

Publication number Publication date
CN114036002B (zh) 2025-09-12

Similar Documents

Publication Publication Date Title
CN110263585B (zh) 测试监管方法、装置、设备及存储介质
CN110633323B (zh) 业务数据存储方法、装置、存储介质和计算机设备
CN108897691B (zh) 基于接口模拟服务的数据处理方法、装置、服务器和介质
CN114372296B (zh) 一种基于区块链的用户行为数据审计方法及系统
CN111523890B (zh) 基于区块链的数据处理方法、装置、存储介质及设备
CN109815746B (zh) 一种基于区块链技术的数据防篡改方法及系统
CN114036002B (zh) 区块链数据备份方法、装置、存储介质及电子设备
EP3709568A1 (en) Deleting user data from a blockchain
CN113326165B (zh) 基于区块链的数据处理方法、设备及计算机可读存储介质
CN111339551B (zh) 数据的验证方法及相关装置、设备
CN111209339B (zh) 区块同步方法、装置、计算机以及存储介质
CN110555682B (zh) 基于联盟链的多通道实现方法
CN110019278A (zh) 一种数据验证方法、装置及设备
CN109284331B (zh) 基于业务数据资源的制证信息获取方法、终端设备及介质
CN110851535A (zh) 基于区块链的数据处理方法、装置、存储介质及终端
KR102622665B1 (ko) 블록체인 기반의 데이터 관리 방법 및 장치
CN112291067A (zh) 一种业务操作记录及操作验证方法、装置
CN115879164B (zh) 数据校验方法、装置、设备及存储介质
JP2009128956A (ja) データ処理装置及びデータ処理方法及びプログラム
CN115168489A (zh) 基于区块链的数据存证方法和装置
CN112163036A (zh) 区块链信息的构建和查询方法及相关装置
CN114490415B (zh) 业务测试方法、计算机设备、存储介质和计算机程序产品
CN116340430A (zh) 一种数据同步校验方法及相关设备
CN113221151A (zh) 基于区块链的数据处理方法、装置及存储介质
CN120729635B (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