如何向 Corda 帐户添加额外信息?

How Do I Add Extra Info To A Corda Account?

我已将各方实施为节点上的帐户,以解决可销售性成本。

我可以从节点中检索帐户列表,但我无法识别帐户类型,因为帐户信息中没有这样的字段 class。

例如,我需要确定哪些帐户是“供应商”,哪些是“分销商”。

由于我无法扩展帐户并添加“accountType”属性,唯一的选择似乎是创建一个额外的 table,其外键约束链接到帐户 table.

  1. 使用 Corda SDK 会是什么样子?
  2. 假设我有一个额外的table,我如何确保在创建帐户时创建此数据?
  3. 当我与其他节点共享帐户时,如何确保复制此数据?

都是很好的问题,

超出我的想象:

  1. 创建一个状态 UserProfile 其中有:
    一种。 UUID
    b. issuer
    C。 accountType

  2. 它应该有 2 个命令:Create / Update.

  3. 合约应该检查(对于两个命令):
    一种。事务中应该有一个AccountInfo类型的引用状态。
    b. UserProfile.UUID 必须匹配 AccountInfo.UUID.

    所以以上 2 个条件确保你不能 create/update a UserProfile 而不首先创建相关的 AccountInfo.

  4. CreateUserProfile 流程将:
    一种。调用 CreateAccount 流程并获取 UUID.
    b.使用该帐户作为参考状态及其 UUID 来构建和创建相关的 UserProfile.
    C。显然,如果您需要上述 2 个操作是原子的,则不能使用帐户库就绪流,您必须查看 CreateAccount 流做了什么(即创建输出 AccountInfo,生成之间的映射帐户的 UUID 和 public 密钥等...)并在您的流程中执行。

  5. 共享 UserProfile 时相同,您必须调用共享帐户及其密钥的帐户库子流程,然后添加共享 UserProfile状态。

  6. 通过这种方式,您可以添加任何您想要的字段 UserProfile 并通过它们进行查询,并且由于 UUIDUserProfile 和帐户 (即 AccountInfo),您将始终知道哪个 UserProfile 属于哪个帐户,反之亦然。

  7. 显然,您的 UserProfile 发行人必须确保您每个帐户只能有一个 UserProfile

实现您的简单要求需要大量工作:-/
希望我们能得到其他答案,因为我也很好奇。