如何备份/恢复Corda节点?

3

如果 Corda 节点出现故障,应该采取哪种恰当的恢复过程?Corda 交易仅与特定业务网络的合格节点共享,而不是与每个节点共享。因此,在恢复失败节点时,从其他节点复制数据将无法正常工作,需要从备份中恢复。然而,备份镜像并不完全相同于其他正确节点,我想知道如何恢复 Corda 节点的一致性。

2个回答

3

节点数据存储

Corda节点将其重要信息存储如下:

  • 节点的数据存储在标准的SQL数据库中
    • 默认情况下,存储在名为persistence.mv的H2数据库文件中
  • 节点的密钥和证书存储在Java密钥库中,在certificates文件夹中

从节点崩溃中恢复

如果节点崩溃:

  • 数据库和certificates文件夹的内容不会受到影响
  • 正在进行的流可以从其最近的检查点重新启动
  • Artemis消息可以重新播放

换句话说,您可以生成一个新节点,重新添加persistence.mv文件、certificates文件夹和CorDapps,当您再次启动它时,该节点的行为就像什么也没有发生。

从节点文件损坏/删除中恢复

只要您能够恢复以下内容,数据丢失/损坏是非致命的:

  • 节点的数据库
  • 节点的certificates文件夹中的内容

节点的所有者有责任确保使用标准业务程序保护和备份这些文件。如果这两者都能够恢复并重新添加到新节点中,则该节点应如往常一样启动。

如果无法恢复节点certificates文件夹的内容,则您将不再拥有私钥,也无法在分类帐上花费资产。

如果某些数据无法从节点的数据库中恢复,则节点可以尝试从其他适用的节点(例如交易历史记录)重新请求此数据。但是,没有办法强制交易对手共享此信息。


我明白了,谢谢。如果停机时间很长,可能会出现恢复数据库更新的大量消息传递。是否有任何功能可以加速这些大量消息传递?还是这取决于应用程序的实现方式? - Yoshi
消息传递将由平台自动处理,使用 Artemis 消息队列。 - Joel

0
Corda具有一种名为协作恢复的内置功能,可帮助恢复由于灾难而丢失的数据。据我所知,它可以帮助恢复分类账数据。我尝试测试了这个工具,但目前还没有得到任何积极的结果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接