从A发送收到的钱(例如,钱)以将其发送到B

时间:2020-07-17 12:02:41

标签: corda

我对DLT技术还很陌生,并且对Corda有所了解。我不确定是否一切都很好理解,所以这是我试图回答自己的问题(使用NotaryChangeFlow)。请纠正我。

问题设置:

我是节点A。我与节点B和节点C共享事实。它们不共享任何事实。 对于节点B,我们有公证人B跟踪我们的交易。 对于节点C,我们有公证人C跟踪我们的交易。

问题:

如果B寄给我5欧元。 如何使用这5欧元将其发送给C

我的解决方案:

A和B创建一个更新两个状态+更新公证B状态的事务。 A将公证人B更改为公证人C。 A使用公证人C作为验证者,消耗与B共享的状态,并向与C共享的事实汇款。 A汇款给C。

这样:B知道A已用了5欧元,C知道已将5欧元添加到A余额中,然后将其转移给他。

这是正确的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,您是正确的。让我再次重申一下。 Corda中的州与特定的公证人有关,只能与该特定的公证人一起使用。如果需要将状态花在其他公证处,则首先执行公证变更交易。在公证变更交易中,所涉及的状态在当前公证处使用,并与新公证一起重新发布。

所有这一切都是为了确保公证人能够尽其所能防止网络中的双重支出尝试。除了正在处理某州的公证人以外,任何公证人都不会获得有关该州先前交易的任何信息,并且如果没有该信息,也将无法防止两次花钱的尝试。

因此,在您的情况下,B希望使用公证人N1将$ 5发送给A,而A希望使用公证人N2将相同的$ 5发送给C。这将分为两个步骤:

  1. A进行了公证变更交易,他在N1花费了$ 5州,然后在N2重新发行了州。所有这些都由库流NotaryChangeFlow处理。
  2. 现在,一旦更改了公证人,A现在就可以构建事务以将状态花费在公证人N2上。

在语句B know $5 has been used by A上,您需要添加A作为参与者/观察者,以便将任何更新通知给他。通常,这不是现金要求,因为一旦我必须将钱汇给另一方,我就不应该知道他是怎么做的。但是,如果这是某些用例的要求,则必须相应地设计cordapp。

相关问题