【问题标题】:Notary cannot install Corda serviceNotary 无法安装 Corda 服务
【发布时间】:2020-12-23 19:23:38
【问题描述】:

我试图通过在我的应用程序中添加 r3 提供的 toolkit 作为 corrdapp 依赖项,在我的解决方案中配置业务网络运营商服务。我能够构建应用程序,但是当我运行节点时,我收到 Notary 错误

更新

我正在添加日志

    [ERROR] 2020-09-04T14:21:15,399Z [main] internal.Node. - Unable to install Corda service com.r3.businessnetworks.membership.flows.bno.service.BNOConfigurationService -  [errorCode=dfc7g6, moreInformationAt=https://errors.corda.net/OS/4.5/dfc7g6]
java.lang.reflect.InvocationTargetException: null
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_201]
    [...]
    at net.corda.node.Corda.main(Corda.kt:13) ~[corda-node-4.5.jar:?]
Caused by: java.lang.NullPointerException
    at com.r3.businessnetworks.membership.flows.ConfigUtils.loadConfig(ConfigUtils.kt:16) ~[?:?]
    at com.r3.businessnetworks.membership.flows.bno.service.BNOConfigurationService.<init>(BNOConfigurationService.kt:21) ~[?:?]
    ... 33 more
[ERROR] 2020-09-04T14:21:15,458Z [main] internal.NodeStartupLogging. - Exception during node startup -  [errorCode=dfc7g6, moreInformationAt=https://errors.corda.net/OS/4.5/dfc7g6]
java.lang.reflect.InvocationTargetException: null
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_201]
    [...]
    at net.corda.cliutils.CordaCliWrapperKt.start(CordaCliWrapper.kt:89) ~[corda-tools-cliutils-4.5.jar:?]
    at net.corda.node.Corda.main(Corda.kt:13) ~[corda-node-4.5.jar:?]
Caused by: java.lang.NullPointerException
    at com.r3.businessnetworks.membership.flows.ConfigUtils.loadConfig(ConfigUtils.kt:16) ~[?:?]
    at com.r3.businessnetworks.membership.flows.bno.service.BNOConfigurationService.<init>(BNOConfigurationService.kt:21) ~[?:?]
    ... 33 more

【问题讨论】:

  • 请用更多错误堆栈更新您的问题;您可以在logs 文件夹中找到您节点的日志文件。
  • 你好,我已经添加了日志

标签: blockchain corda notary


【解决方案1】:

您缺少此 CorDapp 的配置文件,如 here 所述;你必须:

  1. 在节点的cordapps 文件夹(即node-folder/cordapps/config)内创建一个config 文件夹。
  2. 在该文件夹中创建一个membership-service.conf 文件。
  3. 在该文件中添加:
    // Whitelist of accepted BNOs. Attempt to communicate to not whitelisted 
    // BNO would result into an exception
    bnoWhitelist = ["O=BNO,L=New York,C=US", "O=BNO,L=London,C=GB"]
    
    // Name of the notary to use for BNO transactions such as membership approval
    notaryName = "O=Notary,L=Longon,C=GB"
    

您使用的 CorDapp 依赖于配置文件(上述 3 个步骤创建该文件),当它丢失时会导致 NullPointerException。要了解有关 CorDapp 配置文件的更多信息,请阅读my article

顺便说一句,根据this;您使用的 CorDapp 将于 2020 年 9 月 31 日弃用。

【讨论】:

  • 是的.. // Name of the Notary notaryName = "O=Notary,L=London,C=GB" bnoWhitelist = ["O=BNO,L=Tokyo,C=JP"] // Name of the contract to validate membership transactions with. // Defaults to "net.corda.businessnetworks.membership.states.MembershipContract" if not specified // membershipContractName = "com.app.MyMembershipContract" // Name of the class that implements MembershipAutoAcceptor interface. Optional parameter. // membershipAutoAcceptor = "com.app.MyMembershipAutoAcceptor" 还是一样
  • 您是否将membership-service.conf 放在your-node-folder/cordapps/config 文件夹中然后重新启动节点
  • 我部署了节点,然后运行了一个脚本文件,将membership-service.conf复制到所需的目录,然后我启动了节点。
  • 您可以浏览到 configs 文件夹并确认文件已复制到那里吗?
  • 是的,它在那里
猜你喜欢
  • 2018-12-19
  • 1970-01-01
  • 2018-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
  • 2021-12-11
相关资源
最近更新 更多