如何在 Corda 上兑换资产?

How to exchange money for asset on Corda?

我正在尝试编写一个简单的 cordapp 来发行和销售债券。

知道了:

1) 银行发行债券。 (0 个输入,1 个输出,银行是发行人和持有人)

还想要这个:

1) 客户可向银行查询客户欲购买的债券种类(即币种、面值、期限)及债券价格。

如果银行有客户寻求的债券并且客户同意价格,我想创建一个交易,在该交易中债券的所有者从银行更改为客户,并在其中交换资金。

现在我认为这笔交易应该由客户发起。但是客户没有债券状态。我可以通过使用 sendAndReceive 从银行获得它,但是在转换为分类账交易时债券状态无法解决(可以理解)。所以我在想我是否必须先将发行债券的整个交易发送给客户?我想那会起作用,但看起来很笨重。我错过了什么吗?

是的,客户需要发行债券的交易。否则,他们将无法验证此发行交易,因此无法确保他们正在创建的新交易有效。

它将按如下方式工作:

  • 银行将从他们的交易存储中检索债券发行交易,并调用 SendTransactionFlow 将此交易发送给客户(客户会调用 ReceiveTransactionFlow 作为响应)
  • 银行将从他们的金库中检索债券状态并将其发送给客户
  • 客户端将正常建立交易