Corda帐户:使用SyncKeyMappingFlow发行以同步公钥

时间:2020-09-21 12:17:14

标签: blockchain corda

在Corda项目中,我们有两个节点,即Node-A和Node-B。在Node-A上创建一个帐户,并与Node-B共享。从节点A,我们已经请求使用 new RequestKeyForAccount(accountInfo)的公共密钥。节点B不知道此公钥。因此,为了同步公钥,我们从节点A调用了new SyncKeyMappingFlow(flowSession, Collections.singletonList(anonymousParty))。我们还在Node-B上实现了一个响应者流程,该流程调用了new SyncKeyMappingFlowHandler(flowSession))子流程。发起方和响应方流程均正常运行。当尝试使用accountService.accountKeys(accountInfo.getState().getData().getLinearId().getId()).toString())在Node-B上查找属于该帐户的公共密钥列表时,我们得到一个空列表。理想情况下,我们应该获取在Node-A上请求的公钥。这是同步公钥的适当方法吗?如果这是有缺陷的方法,请提出另一种方法。

1 个答案:

答案 0 :(得分:0)

根据源代码,accountKey仅返回在调用节点上生成的密钥。

这里是参考: https://github.com/corda/accounts/blob/master/workflows/src/main/kotlin/com/r3/corda/lib/accounts/workflows/services/AccountService.kt#L66