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

Posted

技术标签:

【中文标题】Corda Network-Map 已启动并运行,但 Notary 不在白名单中【英文标题】:Corda Network-Map is up and running, but Notary is not in whitelist 【发布时间】:2021-12-19 11:39:28 【问题描述】:

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

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

【问题讨论】:

您好,您是否使用网络引导程序来部署网络? 【参考方案1】:

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

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

接下来你要做的是

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

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

【讨论】:

以上是关于Corda Network-Map 已启动并运行,但 Notary 不在白名单中的主要内容,如果未能解决你的问题,请参考以下文章

如何为在 docker 容器内运行的 corda 节点运行迁移脚本?

在 Corda 中将状态标记为已使用而不更改其内容

如何从 Corda 的 CordApp 中超时/终止正在运行的流程

java corda模板构建问题

在corda中使用spring security的基本身份验证

中国Corda网的技术来源特点组件