提示

这个项目是开源的基于 Apache 2.0 licence 的。这就意味着你可以提交 PRs(Pull Requests) 来解决 bugs 以及添加新功能,如果这些功能目前还没有的话。

什么是 token SDK?

Token SDK 的存在让 CorDapp 的开发者们创建一个使用 tokens 的 CorDapp 变得非常容易。功能包括创建 tokens 类型,颁发 、转移以及兑换指定类型的 tokens。

Tokens SDK 由三个 CorDapp JARs 组成:

  1. 包含基本类型、states 和 contracts 的 contracts
  2. 包含颁发、转移和兑换 tokens 的 flows 的 workflows,以及这些操作使用的 utilities
  3. 针对不同货币的 token 类型定义的钱

Token SDK 目的是想要替换掉核心 Corda 仓库中的金融模块 “finance module”。

对于 SDK 设计背后的更详细的信息,可以参考这里

如何使用 SDK?

使用 tokens 模板

目前来说最简单的方式来开始使用 tokens SDK 就是使用 tokens-template,它是在 kotlin 版本的 “CorDapp template” 的一个 branch。你可以通过下边的命令来获得他们:

git clone http://github.com/corda/cordapp-template-kotlin
cd cordapp-template-kotlin
git checkout token-template

当你 clone 完这个代码后,你应该使用 IntelliJ 打开它。这个会给你一个模板代码库,这已经包含了 token SDK 所有的依赖包,以及一些能够告诉你怎么使用 token SDK 的样例代码。你可以使用 deployNodes 来创建三个节点:

./gradlew clean deployNodes
./build/nodes/runnodes

你可以在 Party A 的 shell 中通过下边的命令来从 PartyAPartyB 颁发一些货币 tokens:

start ExampleFlowWithFixedToken currency: GBP, amount: 100, recipient: PartyB

查看这里的 token 模板代码来谅解更多信息。

向已有的 CorDapp 中添加 token SDK 的依赖

首先,添加一个你希望使用的 tokens SDK 的版本变量:

buildscript {
    ext {
        tokens_release_version = '1.0'
        tokens_release_group = 'com.r3.corda.lib.tokens'
    }
}

接下来,你必须要向你的项目的代码库列表中添加 tokens 开发 artifactory 代码库:

repositories {
    maven { url 'https://ci-artifactory.corda.r3cev.com/artifactory/corda-lib' }
    maven { url 'https://ci-artifactory.corda.r3cev.com/artifactory/corda-lib-dev' }
}

现在你就可以向你的 CorDapp 的每个模块中添加 tokens SDK 的依赖了。对于 contract 模块,添加:

cordaCompile "$tokens_release_group:tokens-contracts:$tokens_release_version"

在你的 workflow build.gradle 中,添加:

cordaCompile "$tokens_release_group:tokens-workflows:$tokens_release_version"

对于 FiatCurrencyDigitalCurrency 定义,添加:

cordaCompile "$tokens_release_group:tokens-money:$tokens_release_version"

如果你希望使用 deployNodes 任务,你需要将下边的依赖添加到你的根 build.gradle 文件中:

cordapp "$tokens_release_group:tokens-contracts:$tokens_release_version"
cordapp "$tokens_release_group:tokens-workflows:$tokens_release_version"
cordapp "$tokens_release_group:tokens-money:$tokens_release_version"

还应该按照下边的语法将这些也添加到 deployNodes 任务中:

nodeDefaults {
    projectCordapp {
        deploy = false
    }
    cordapp("$tokens_release_group:tokens-contracts:$tokens_release_version")
    cordapp("$tokens_release_group:tokens-workflows:$tokens_release_version")
    cordapp("$tokens_release_group:tokens-money:$tokens_release_version")
}

安装 token SDK 二进制文件

如果你希望从源代码开始构建 token SDK 的话,那么你需要按照下边的将二进制文件发布到你的本地的 maven 代码库:

git clone http://github.com/corda/token-sdk
cd token-sdk
./gradlew clean install

扩展阅读:Corda Token SDK 的介绍