如何创建Corda自定义数据表

时间:2017-08-10 11:53:45

标签: corda

参考代码:

  • Git克隆网址:git clone https://github.com/corda/cordapp-tutorial
  • 发布M14:git checkout -b release-M14.0

我对Corda中的数据流动有点困惑。我有一些与数据库相关的查询:

  1. 数据库结构是固定的还是我们可以在其中添加自定义表?
  2. 在哪里可以看到表格中的数据?当我进行现金交易时,我可以在我的H2数据库客户端的AULT_CASH_BALANCES表中看到它,但除了现金,我无法看到我的其他交易的任何细节,即,如果我保存字符串然后我我无法获取信息,我只获得了该信息的交易ID。

    是否可以获得整个数据流图?

  3. 每次构建代码时都会创建Node和Vault表吗?

1 个答案:

答案 0 :(得分:1)

您可以通过实现QueryableState接口来定义每个状态类型在节点中的存储方式。实现QueryableState的每个状态类型都有自己的自定义数据库表。

有关示例,请参阅https://github.com/corda/cordapp-tutorial/blob/master/kotlin-source/src/main/kotlin/com/example/state/IOUState.kt。由于IOU状态实现了一个模式(在CorDapp的Kotlin版本中),你可以看到每个IOU状态的H2接口的发送者,接收者和值。

在当前实现中,节点的数据存储在已部署节点的persistence.mv​​.db文件中。每次运行gradlew deployNodes时都会擦除它。但是,如果您只是通过运行gradlew jar创建更新的CorDapp jar,则可以将更新的CorDapp jar从build / libs复制到每个节点的plugins文件夹中,该节点将使用新的插件。