发送从 A 收到的钱(例如钱)以将其发送给 B
Sending received money (money is an example) from A to send it to B
我对 DLT 技术还很陌生,对 Corda 有一点了解。我不确定是否能很好地理解所有内容,所以这是我试图自己回答的问题(使用 NotaryChangeFlow)。请指正。
问题设置:
我是节点 A。我与节点 B 和节点 C 共享事实。他们不共享任何事实。
对于节点 B,我们有公证人 B 跟踪我们的交易。
对于节点 C,我们有公证人 C 跟踪我们的交易。
问题:
如果 B 寄给我,假设是 5 欧元。
我如何使用这 5 欧元将其发送到 C
我的解决方案:
A 和 B 创建一个事务更新两个状态 + 更新公证人 B 的状态。
A将公证人B更改为公证人C。
A 使用他与 B 共享的状态,并使用公证人 C 作为验证者向他与 C 共享的事实汇款。
A汇款给C
这样:B 知道 A 使用了 5 欧元,C 知道 5 欧元已添加到 A 余额中,然后转给他。
这是正确的方法吗?
谢谢!
是的,你是对的。让我重申一下,让它更清楚一点。 Corda 中的状态与特定的公证人相关联,并且只能与该特定的公证人一起使用。如果需要在不同的公证人处花费状态,则首先执行公证人变更交易。在 Notary Change Transaction 中,有问题的状态在当前公证人处花费并由新公证人重新发行。
所有这些都是为了确保公证人能够做好他们的工作,防止网络中的双花尝试。除了正在交易状态的公证人之外,任何公证人都不会获得有关该状态先前交易的任何信息,并且在没有该信息的情况下将无法防止双重支出尝试。
所以现在在您的情况下,B 想使用公证人 N1 将 5 美元发送给 A,现在 A 想使用公证人 N2 将同样的 5 美元发送给 C。这将是一个两步过程:
- A 进行公证变更交易,他在 N1 花费 5 美元状态并在 N2 重新发行状态。所有这些都由库流程
NotaryChangeFlow
. 处理
- 现在,一旦更改了公证人,A 现在就可以构造一个交易来在公证人 N2 处花费状态。
在语句 B know has been used by A
中,您需要将 A 添加为参与者/观察者,以便他收到任何更新通知。一般来说,这不是对现金的要求,因为一旦我必须把钱寄给另一方,我不应该知道他用它做了什么。但如果这是某些用例的要求,则需要相应地设计 cordapp。
我对 DLT 技术还很陌生,对 Corda 有一点了解。我不确定是否能很好地理解所有内容,所以这是我试图自己回答的问题(使用 NotaryChangeFlow)。请指正。
问题设置:
我是节点 A。我与节点 B 和节点 C 共享事实。他们不共享任何事实。 对于节点 B,我们有公证人 B 跟踪我们的交易。 对于节点 C,我们有公证人 C 跟踪我们的交易。
问题:
如果 B 寄给我,假设是 5 欧元。 我如何使用这 5 欧元将其发送到 C
我的解决方案:
A 和 B 创建一个事务更新两个状态 + 更新公证人 B 的状态。 A将公证人B更改为公证人C。 A 使用他与 B 共享的状态,并使用公证人 C 作为验证者向他与 C 共享的事实汇款。 A汇款给C
这样:B 知道 A 使用了 5 欧元,C 知道 5 欧元已添加到 A 余额中,然后转给他。
这是正确的方法吗?
谢谢!
是的,你是对的。让我重申一下,让它更清楚一点。 Corda 中的状态与特定的公证人相关联,并且只能与该特定的公证人一起使用。如果需要在不同的公证人处花费状态,则首先执行公证人变更交易。在 Notary Change Transaction 中,有问题的状态在当前公证人处花费并由新公证人重新发行。
所有这些都是为了确保公证人能够做好他们的工作,防止网络中的双花尝试。除了正在交易状态的公证人之外,任何公证人都不会获得有关该状态先前交易的任何信息,并且在没有该信息的情况下将无法防止双重支出尝试。
所以现在在您的情况下,B 想使用公证人 N1 将 5 美元发送给 A,现在 A 想使用公证人 N2 将同样的 5 美元发送给 C。这将是一个两步过程:
- A 进行公证变更交易,他在 N1 花费 5 美元状态并在 N2 重新发行状态。所有这些都由库流程
NotaryChangeFlow
. 处理
- 现在,一旦更改了公证人,A 现在就可以构造一个交易来在公证人 N2 处花费状态。
在语句 B know has been used by A
中,您需要将 A 添加为参与者/观察者,以便他收到任何更新通知。一般来说,这不是对现金的要求,因为一旦我必须把钱寄给另一方,我不应该知道他用它做了什么。但如果这是某些用例的要求,则需要相应地设计 cordapp。