我可以创建 Corda 自定义数据表吗?

Can I create Corda Custom Data Tables?

参考代码:-
GIT 克隆 url :- git clone https://github.com/corda/cordapp-tutorial
发布 M14 :- git checkout -b release-M14.0

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

  1. 数据库结构是固定的还是我们可以在其中添加自定义的table?

  2. 我在哪里可以看到 table 中的数据流动,当我进行现金交易时,我可以在 VAULT_CASH_BALANCES 中看到 table 在我的 H2 数据库客户端中,但除了现金,我无法看到我的其他交易的任何详细信息,即如果我 保存一个字符串,然后我无法获取信息,我只能获取该信息的交易 ID。 能否得到完整的数据流图?

  3. 是不是每次构建代码的时候都会创建Node和Vaulttable?

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

有关示例,请参阅 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,它就会被擦除。但是,如果您只是通过 运行ning gradlew jar 创建一个更新的 CorDapp jar,然后您可以将更新的 CorDapp jar 从 build/libs 复制到每个节点的 plugins 文件夹中,并且节点将使用新插件。