提交新状态而无须参加Corda

时间:2018-09-17 09:42:01

标签: commit entity-relationship corda

我正在尝试控制自己的Corda数据库,例如,我想提交一个没有Flow的新状态。你能告诉我怎么做吗?而且,有人可以给我Entity Relationship Diagram的Corda数据库。

谢谢。

1 个答案:

答案 0 :(得分:0)

这不是直截了当的。这是您需要执行的步骤的简要概述:

  • 使用客户端实用程序来创建与您要添加到数据库的交易相对应的SignedTransaction包括交易对手和公证签名!
  • 存储事务的以下属性以供以后使用:
    • 交易的ID
    • 交易公证
    • 序列化的SignedTransaction blob
    • 对于每个输出状态:
      • 其输出索引
      • 合同状态类名称
    • 对于每种输入状态:
      • 其状态参考(输出索引和生成交易ID)
  • 按照说明here
  • 登录到节点的数据库
  • 将具有事务ID和序列化的NODE_TRANSACTIONS blob的条目添加到SignedTransaction表中
  • 对于每个输出状态,将一个条目与先前存储的信息一起添加到VAULT_STATES表中
    • CONSUMED_TIMESTAMPLOCK_IDLOCK_TIMESTAMP应该为空
    • RECORDED_TIMESTAMP应该是当前时间
    • STATE_STATUS应该没有食用
  • 对于每个输入状态,将其在VAULT_STATES表中的条目更新为已消耗
    • 您可以使用之前存储的状态参考来识别相关输入状态

这是假设您的州没有实现需要更新其他表(例如LinearStateQueryableStateSchedulableStateFungibleAsset)的接口。