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



为了解决销售成本问题,我已经在节点上将各方实现为帐户。

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

例如,我需要确定哪些帐户是";供应商";并且它们是";分销商";。

由于我无法扩展帐户并添加一个";accountType";属性,唯一的选择似乎是创建一个额外的表,该表具有链接到account表的UUID的外键约束。

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

所有问题都很好,

我脑海中浮现:

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

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

  3. 合同应检查(两个命令(:
    a。事务中应该存在类型为AccountInfo的引用状态
    b。UserProfile.UUID必须与AccountInfo.UUID匹配。

    因此,以上两个条件确保了在不首先创建相关的AccountInfo的情况下无法创建/更新UserProfile

  4. CreateUserProfile流将:
    a。调用CreateAccount流,得到UUID
    b。使用该帐户作为参考状态及其UUID来构造和创建相关的UserProfile
    c。显然,如果你需要以上两个操作是原子的,你就不能使用账户库就绪的流,你必须看看CreateAccount流做了什么(即创建输出AccountInfo,生成UUID和账户公钥之间的映射等(,并在你的流中执行。

  5. 共享UserProfile时也是如此,您必须调用共享帐户及其密钥的帐户库子流,然后添加共享UserProfile状态的代码。

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

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

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

最新更新