Corda Network-Map 已启动且 运行,但 Notary 不在白名单中

Corda Network-Map is up and running, but Notary is not in whitelist

我有一个带有一些节点和一个(非验证)公证人的 Corda 基础设施。他们都在兼容区域使用网络地图,所有 corda 节点,包括公证人,下载相同的网络参数文件。

当执行流程时,Corda 给了我一个异常,因为 Notary 不在网络参数白名单中。我在 R3 文档中找不到任何相关信息。

java.lang.IllegalStateException: Notary [O=Notary, L=Cosenza, C=IT (owningKey = DLAdtNkbnrjn6FGwzE4sCaiDS3tRgMw3KhZfA7bD3icYK1)] specified by the transaction is not on the network parameter whitelist:  []
    at net.corda.core.internal.TransactionUtilsKt.checkNotaryWhitelisted(TransactionUtils.kt:257) ~[corda-core-4.8.jar:?]

请注意,我在 Flow 代码中使用固定的 Notary X500 名称而不是“preferredNotary”,因为它不会被发现。我认为是因为同样的问题。

我是否必须做一些明确的事情才能在网络参数白名单中添加 Notary?

Do I have to do something explicit to add Notary in network parameters whitelist?

是的,你知道。由于您使用的是网络地图服务,因此您的节点将从那里获取其网络参数。

接下来你要做的是

  1. 删除每个节点的当前网络参数。
  2. 将您的公证节点列入网络地图服务的白名单
  3. 重新启动所有节点,以便它们可以从网络地图服务中检索新的网络参数,新公证人就是这样分配的

我不知道您具体使用哪种网络地图服务,但我假设它的 nms 是 cordite。您可以在此处阅读有关如何将公证人列入白名单的信息:https://gitlab.com/cordite/network-map-service/-/blob/master/FAQ.md#14-start-the-notary-node