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

时间:2020-07-06 19:15:14

标签: corda

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

我可以从节点中检索帐户列表,但是由于AccountInfo类中没有此类字段,因此我无法识别帐户类型。

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

由于我无法扩展帐户并添加“ accountType”属性,因此唯一的选择似乎是创建一个附加表,该表具有与帐户表的UUID链接的外键约束。

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

1 个答案:

答案 0 :(得分:0)

所有都是好问题,

我的头顶上

  1. 创建一个状态UserProfile,该状态具有:
    一种。 UUID
    b。 issuer
    C。 accountType

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

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

    因此,以上两个条件确保了您必须先创建相关的UserProfile才能创建/更新AccountInfo

  4. CreateUserProfile流将:
    一种。调用CreateAccount流并获得UUID
    b。使用该帐户作为参考状态及其UUID来构造和创建相关的UserProfile
    C。显然,如果您需要上述2个动作是原子动作,则无法使用帐户库就绪流,而必须查看CreateAccount流的作用(即,创建输出AccountInfo,在UUID和帐户的公钥等),然后按您的流程进行操作。

  5. 共享UserProfile时相同,您必须调用共享一个帐户及其键的帐户库子流,然后添加共享UserProfile状态的代码

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

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

要满足您的简单要求,需要做很多工作:-/
希望我们能得到其他答案,因为我也很好奇。