Нотариус не может установить сервис Corda

Я пытался настроить службы Business Network Operator в своем решении, добавив набор инструментов, предоставленный r3, в качестве зависимости corrdapp в моем приложении. Я могу создать приложение, но когда я выполняю узлы, я получаю ошибку для нотариуса

[ERROR] 19:21:14+0530 [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]

[ОШИБКА] 19:21:14+0530 [главная] internal.NodeStartupLogging. - Исключение при запуске узла - [errorCode=dfc7g6, moreInformationAt=https://errors.corda.net/OS/4.5/dfc7g6]

Я добавляю журнал

[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 в sun.reflect.NativeConstructorAccessorImpl.newInstance0(собственный метод) ~[?:1.8.0_201] в sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java: 1.8 0_201] в sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_201] в java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_201] в net.corda.node.internal.AbstractNode.installCordaService(AbstractNode.kt:833) ~[corda-node-4.5.jar:?] в net.corda.node.internal.AbstractNode.installCordaServices(AbstractNode.kt:798) ~[corda-node-4.5.jar:?] в net.corda.node.internal.AbstractNode.access$installCordaServices(AbstractNode.kt:205) ~[corda-node-4.5.jar:?] в net.corda.node.internal.AbstractNode$start$8.invoke(AbstractNode.kt:533) ~[corda-node-4.5.jar:?] в net.corda.node.internal.AbstractNode$start$8.invoke(AbstractNode.kt:205) ~[corda-node-4.5.jar:?] в сети.corda.nodeapi.internal.persistence.CordaPersistence.inTopLevelTransaction(CordaPersistence.kt:284) ~[corda-node-api-4.5.jar:?] в net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:249) ~[corda-node-api-4.5.jar:?] в net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:270) ~[corda-node-api-4.5.jar:?] в net.corda.node.internal.AbstractNode.start(AbstractNode.kt:523) ~[corda-node-4.5.jar:?] в net.corda.node.internal.Node.start(Node.kt:565) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:219) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartupCli$runProgram$2.run(NodeStartup.kt:135) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:196) ~[corda-node-4.5.jar:?] в сети.corda.node.internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:142) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartupLogging$DefaultImpls.attempt(NodeStartup.kt:535) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartup.attempt(NodeStartup.kt:142) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartup.initialiseAndRun(NodeStartup.kt:195) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartupCli.runProgram(NodeStartup.kt:133) ~[corda-node-4.5.jar:?] в net.corda.cliutils.CordaCliWrapper.call(CordaCliWrapper.kt:200) ~[corda-tools-cliutils-4.5.jar:?] в net.corda.node.internal.NodeStartupCli. вызовите (NodeStartup.kt:88) ~[corda-node-4.5.jar:?] на net.corda.node.internal.NodeStartupCli.call(NodeStartup.kt:69) ~[corda-node-4.5.jar:?] в picocli.CommandLine.execute(CommandLine.java:1173) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine.access$800(CommandLine.java:141) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine$RunLast.handle(CommandLine.java:1367) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine$RunLast.handle(CommandLine.java:1335) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1243) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine.parseWithHandlers(CommandLine.java:1526) ~[picocli-3.9.6.jar:3.9.6] в net.corda.cliutils.CordaCliWrapperKt.start(CordaCliWrapper.kt:89) ~[corda-tools-cliutils-4.5.jar:?] в net.corda.node.Corda.main(Corda.kt:13) ~[corda-node-4.5.jar:?] Вызвано: java.lang.NullPointerException на com.r3.businessnetworks.member.flows.ConfigUtils.loadConfig(ConfigUtils.kt:16) ~[?:?] в com.r3.businessnetworks.membership.flows.bno.service.BNOConfigurationService.(BNOConfigurationService.kt:21) ~[?:?] ... 33 еще [ERROR] 2020-09-04T14:21:15,458Z [main] internal.NodeStartupLogging. - Исключение при запуске узла - [errorCode=dfc7g6, moreInformationAt=https://errors.corda.net/OS/4.5/dfc7g6] java.lang.reflect.InvocationTargetException: null в sun.reflect.NativeConstructorAccessorImpl.newInstance0(собственный метод) ~[?:1.8.0_201] в sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_201] в sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl. ~ 45) 1.8.0_201] в java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_201] в net.corda.node.internal.AbstractNode.installCordaService(AbstractNode.kt:833) ~[corda-node-4.5.jar:?] в net.corda.node.internal.AbstractNode.installCordaServices(AbstractNode.kt:798) ~[corda-node-4.5.jar:?] в net.corda.node.internal.AbstractNode.access$installCordaServices(AbstractNode.kt:205) ~[corda-node-4.5.jar:?] в net.corda.node.internal.AbstractNode$ start $8.invoke(AbstractNode.kt:533) ~[corda-node-4.5.jar:?] в net.corda.node.internal.AbstractNode$ start $8.invoke(AbstractNode.kt:205) ~[corda-node-4.5.jar:?] в net.corda.nodeapi.internal.persistence.CordaPersistence.inTopLevelTransaction(CordaPersistence.kt:284) ~[corda-node-api-4.5.jar:?] в net.corda.nodeapi.internal.persistence. CordaPersistence.transaction(CordaPersistence.kt:249) ~[corda-node-api-4.5.jar:?] в net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:270) ~[corda-node-api-4.5.jar:?] в net.corda.node.internal.AbstractNode.start(AbstractNode.kt:523) ~[corda-node-4.5.jar:?] в сети. corda.node.internal.Node.start (Node.kt:565) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:219) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartupCli$runProgram$2.run(NodeStartup.kt:135) ~[corda-node-4.5.jar:?] в net.corda.node. internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:196) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:142) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartupLogging$DefaultImpls.attempt(NodeStartup.kt:535) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartup.attempt(NodeStartup.kt:142) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartup.initialiseAndRun(NodeStartup.kt:195) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartupCli.runProgram(NodeStartup.kt:133) ~[corda-node-4.5.jar:?] в net.corda.cliutils.CordaCliWrapper.call(CordaCliWrapper.kt:200) ~[corda-tools-cliutils-4.5.jar:?] в net.corda.node.internal.NodeStartupCli.call(NodeStartup.kt:88) ~[corda-node-4.5.jar:?] в net.corda.node.internal.NodeStartupCli.call(NodeStartup.kt:69) ~[corda-node-4.5.jar:?] в picocli.CommandLine.execute(CommandLine.java:1173) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine.access$800(CommandLine.java:141) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine$RunLast.handle(CommandLine.java:1367) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine$RunLast.handle(CommandLine.java:1335) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1243) ~[picocli-3.9.6.jar:3.9.6] в picocli.CommandLine.parseWithHandlers(CommandLine.java:1526) ~[picocli-3.9.6.jar:3.9.6] в net.corda. cliutils.CordaCliWrapperKt.start(CordaCliWrapper.kt:89) ~[corda-tools-cliutils-4.5.jar:?] в net.corda.node.Corda.main(Corda.kt:13) ~[corda-node-4.5.jar:?] Вызвано: java.lang.NullPointerException в com.r3.businessnetworks.membership.flows.ConfigUtils.loadConfig(ConfigUtils.kt:16) ~[?:?] в com.r3.businessnetworks.membership.flows.bno.service.BNOConfigurationService.(BNOConfigurationService.kt:21) ~[?:?]... еще 33?] Вызвано: java.lang.NullPointerException на com.r3.businessnetworks.membership.flows.ConfigUtils.loadConfig(ConfigUtils.kt:16) ~[?:?] На com.r3.businessnetworks.membership.flows.bno. service.BNOConfigurationService. (BNOConfigurationService.kt:21) ~[?:?]... еще 33?] Вызвано: java.lang.NullPointerException на com.r3.businessnetworks.membership.flows.ConfigUtils.loadConfig(ConfigUtils.kt:16) ~[?:?] На com.r3.businessnetworks.membership.flows.bno. service.BNOConfigurationService. (BNOConfigurationService.kt:21) ~[?:?]... еще 33

1 ответ

Вам не хватает файла конфигурации этого CorDapp, как описано здесь; Вы должны:

  1. Создать config папка внутри вашего узла cordapps папка (т.е. node-folder/cordapps/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, прочтите мою статью.

Кстати, в соответствии с этим; Поддержка используемого вами CorDapp будет прекращена 31 сентября 2020 года.

Другие вопросы по тегам