【问题标题】:Back chain validation under node failures in R3 CordaR3 Corda 中节点故障下的回链验证
【发布时间】:2020-04-11 03:51:37
【问题描述】:

我是 Corda 的新手。我的问题不是关于任何特定的实现,而是更多的架构问题。

如果涉及的节点之一永久死亡并且无法响应,那么在回链验证期间会发生什么?该交易如何验证?

我看到this issue 只谈论交易量如何减慢验证速度。如果其中一个节点永久失败,验证是否会停止?

根据Corda webinar on Consensus,在视频开始 5 分钟的示例中,后链是 Charlie -> Dan -> Alice -> Bob。在这种情况下,如果 Charlie 或 Dan 不可用,则无法验证提议的交易。同一个网络研讨会进一步表示,这在以太坊等其他区块链中不是问题。

正如 Adel Rustum 所建议的那样,可以预见对高可用性记录管理器的需求的应用程序肯定可以在设计阶段适应这样的节点。

但是,由于广域网的变幻莫测,不愿泄露全球部署信息的注重隐私的应用程序可能会遭受许多交易验证失败。想法?

【问题讨论】:

    标签: corda


    【解决方案1】:
    1. 简短的回答是,交易验证将失败(如果该节点是唯一拥有该交易的节点);这就是使用 DLT(或区块链)的意义所在。如果在创世之前你不能回到某个数据块的历史,那么你就无法验证该块及其祖先是如何创建的。
    2. 至于您在问题中提到的问题; Corda Enterprise 4.4 引入了一项称为批量反向链获取的新功能,它允许修改获取验证特定交易所需的交易的方式。以前它是深度优先,现在您可以将其更改为广度优先并指定一次调用中要获取多少事务。更多详情请见this video

    【讨论】:

    • 是否可以这么说,在长链 A->B->C->D ... 中,单点故障与可能停止验证的祖先一样多?根据 Corda 隐私模型,与其他 DLT 不同,在这种情况下只有两个节点会知道任何单个链接,并且任何一个节点的故障都可能有问题,对吧?
    • 更正您的陈述:不是“只有两个节点”;这完全取决于您所在州的参与者,可以是任意数量的参与者(这是您在设计阶段决定的)。
    • 所有参与者在他们的交易存储中注册交易,并在他们的保险库中注册结果状态。所以链并不总是线性的,它更像是一棵树;如果交易有 3 个参与者,那么 A 可以在其下有 3 个分支(A->B1、A->B2、A->B3),因此它可以从这 3 个参与者中的任何一个请求该交易。 Corda Enterprise 还提供高可用性节点,每个节点都被复制,您可以进行热/冷交换,此外您需要定期备份节点的数据库;所以失败的情况是极不可能的。
    【解决方案2】:

    后链验证不依赖于过去参与交易的节点。后链的验证仅由当前正在进行的交易中的那些节点完成。在验证后链时,不需要联系(或保持在线)参与涉及相关状态演变的过去交易的其他节点。

    后链验证仅涉及检查过去发生在特定状态下用作当前交易输入的所有交易是否有效。通过为之前的交易再次运行合约来检查有效性。没有真正需要联系先前交易的各方。

    但是,您需要确保参与当前交易的各方在线并做出响应,因为您需要他们的签名才能成功完成交易。

    【讨论】:

    • Ashutosh,当交易被验证并且有输入时;生成这些输入(作为当时的输出)的交易也需要以递归方式进行验证,直到我们得到一个完全验证的图(因此称为反向链验证),并且如果当前节点没有这些交易,它将从参与这些事务的节点请求它们。因此,RT 的问题是:如果具有其中一项交易(回链验证所需)的节点之一关闭或被删除,会发生什么情况。我不认为你的答案是正确的。
    • 啊!我误解了这个问题。谢谢你在那里纠正我。 :)
    • @AdelRustum - 节点 (B) 会不会与已经拥有整个后链的新节点 (C) 共享交易? (作为解决此交易的一部分)。为什么 C 必须联系交易 (A) 中较早涉及的节点。 B 将拥有完整的链,它可以与 C 共享。为什么会依赖 A?
    • @AmolPednekar 好问题,老实说,我不知道交易解决方案的全部细节;也许当它解决一个事务时,它会请求以前的事务但不存储它们;这就是为什么它必须在您的示例中联系节点 A。同样,您必须对此进行研究。如果您找到答案,请告诉我:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 2013-12-30
    相关资源
    最近更新 更多