提示
这个项目是开源的基于 Apache 2.0 licence 的。这就意味着你可以提交 PRs(Pull Requests) 来解决 bugs 以及添加新功能,如果这些功能目前还没有的话。
什么是 token SDK?
Token SDK 的存在让 CorDapp 的开发者们创建一个使用 tokens 的 CorDapp 变得非常容易。功能包括创建 tokens 类型,颁发 、转移以及兑换指定类型的 tokens。
Tokens SDK 由三个 CorDapp JARs 组成:
- 包含基本类型、states 和 contracts 的 contracts
- 包含颁发、转移和兑换 tokens 的 flows 的 workflows,以及这些操作使用的 utilities
- 针对不同货币的 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 中通过下边的命令来从 PartyA
向 PartyB
颁发一些货币 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"
对于 FiatCurrency
和 DigitalCurrency
定义,添加:
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 的介绍