为了解决销售成本问题,我已经在节点上将各方实现为帐户。
我可以从节点中检索帐户列表,但我无法识别帐户类型,因为AccountInfo类中没有这样的字段。
例如,我需要确定哪些帐户是";供应商";并且它们是";分销商";。
由于我无法扩展帐户并添加一个";accountType";属性,唯一的选择似乎是创建一个额外的表,该表具有链接到account表的UUID的外键约束。
- 使用Corda SDK会是什么样子
- 假设我有一个额外的表,我如何确保在创建帐户时创建这些数据
- 当我与其他节点共享帐户时,如何确保复制此数据
所有问题都很好,
我脑海中浮现:
-
创建一个状态
UserProfile
,该状态具有:
a。UUID
b。issuer
c。accountType
-
它应该有两个命令:
Create
/Update
。 -
合同应检查(两个命令(:
a。事务中应该存在类型为AccountInfo
的引用状态
b。UserProfile.UUID
必须与AccountInfo.UUID
匹配。因此,以上两个条件确保了在不首先创建相关的
AccountInfo
的情况下无法创建/更新UserProfile
。 -
CreateUserProfile
流将:
a。调用CreateAccount
流,得到UUID
b。使用该帐户作为参考状态及其UUID
来构造和创建相关的UserProfile
c。显然,如果你需要以上两个操作是原子的,你就不能使用账户库就绪的流,你必须看看CreateAccount
流做了什么(即创建输出AccountInfo
,生成UUID
和账户公钥之间的映射等(,并在你的流中执行。 -
共享
UserProfile
时也是如此,您必须调用共享帐户及其密钥的帐户库子流,然后添加共享UserProfile
状态的代码。 -
通过这种方式,您可以向
UserProfile
添加您想要的任何字段并根据它们进行查询,并且由于UUID
在UserProfile
和帐户(即AccountInfo
(之间匹配,因此您将始终知道哪个UserProfile
属于哪个帐户,反之亦然。 -
显然,您的
UserProfile
发行人必须确保每个帐户只能有一个UserProfile
。
要实现你的简单要求需要做很多工作:-/
希望我们能得到其他答案,因为我也很好奇。