如何在Corda上寫一個派发股息的Dapp
對應的 Github項目
前言
在CSDN上首次写文章。我经常在世界各地为不同的开发者做有关Corda的培训,发觉他们对新功能代码库 TokenSDK很有兴趣,所以决定写一个相关的样本Dapp作为大家的参考。
这是一个记载了一些我创建此示例CorDapp的过程。基本的Corda的概念我会先跳过,但一些关键内容我会解释一下。
如果您还没有运行示例,可以从这个Github项目中下载并运行。
样本有六个重要的Flow,模拟了股票的发行,转移以至派息时的支付。
架构
这个博客介绍了我创建此示例CorDapp的过程。 尽管我不会介绍所有Corda的基本概念,但我将解释一些关键内容。
样品概述
如果您还没有运行示例,请随时从Github项目中下载并运行建议的示例。
样本有六个重要流。 它们模拟股票的发行,转移以及最终分配方式以及股息的支付方式。
1. CreateStock 发行股票
要发行新的股票,首先要暸解EvolvableToken
,因为我接下来创建的StockState
将继承这个class,而它的特性是能够独立的更新代币(Token)的特性,而不影响代币的持有人。
而要创造StockState,我们只需使用Token-SDK内建的CreateEvolvableTokenFlow
。 这个StockState
包含股票信息,例如股票名称,股票代码,宣布股息等。您可以扩展它以添加更多信息,例如年度报告等等。
Observer 观察员
在实际发行股票时,应通知证监会等监管机构。 在Corda,我们将这些监管机构视为观察员,他们只是记录State的变化,无需签署交易。 做法就像以下这一行代码,提供的observers参数将只记录StockState
的创造。
subFlow(new CreateEvolvableTokens(stockState,observers));
在TokenSDK中,大多数内建Flow都带有一个observer参数,开发人员不必自己特意写一个观察员用的flow,非常方便。
2. MoveStock 转移股票
MoveStock这步很直白简单。在TokenSDK中,把Token从一方转移到另一方就像是一行的代码那麽容易。 我们不仅可以将股票转让给其他人,还可以交换其他一些资产,例如金钱。 我们稍后的篇幅再细说。
subFlow(new MoveFungibleTokens(amount, recipient));