Blockchain Corda帐户:发出SyncKeyMappingFlow以同步公钥

Blockchain Corda帐户:发出SyncKeyMappingFlow以同步公钥,blockchain,corda,Blockchain,Corda,在我们的Corda项目中,我们有两个节点,节点A和节点B。在节点A上创建一个帐户,并与节点B共享。从节点A,我们使用新的RequestKeyForAccount(accountInfo)请求公钥。Node-B不知道该公钥。因此,为了同步公钥,我们从Node-A调用了新的SyncKeyMappingFlow(flowSession,Collections.singletonList(anonymousParty))。我们还在Node-B上实现了一个响应程序流,它调用了新的SyncKeyMappin

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

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

以下是参考资料:

在同步键映射之前;您能否确认Node-B实际收到了在Node-A上创建的帐户?您可以在Node-B上查询它吗?还要检查节点的日志,看看是否有有用的消息。帐户创建后立即与Node-B共享。但正如下面的回答中所提到的,我只得到在Node-B上创建的帐户(Node-A共享的帐户不会作为
accountservice.ouraccounts()的一部分返回)
。我检查了Node-B和Node-A日志,没有发现任何错误。
ouraccounts()
仅返回当前节点为
主机的帐户
;Node-B不是主机。