0

我有一个带有一些节点和(未验证)公证人的 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”,因为找不到它。我认为这是因为同样的问题。

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

4

1 回答 1

0

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

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

那你需要做的是

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

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

于 2021-12-26T02:09:20.557 回答