Corda4上的Corda Settler

时间:2019-02-12 11:37:15

标签: corda

我将Corda-Settler升级到Corda 4版本,并添加了涟漪库涟漪核心和涟漪弹力城堡,以使其独立于本地安装。 部署节点时,出现以下错误:

  

[错误] 2019-02-12T11:02:31,343Z [main] internal.Node.installCordaServices-Corda服务com.r3.corda.finance.obligation.oracle.services.XrpOracleService无法实例化。原因是:找不到关键“节点”的配置设置[errorCode = n3sk62,moreInformationAt = https://errors.corda.net/OS/4.0-RC03/n3sk62]   com.typesafe.config.ConfigException $ Missing:找不到关键“节点”的配置设置       在com.typesafe.config.impl.SimpleConfig.findKeyOrNull(SimpleConfig.java:152)〜[corda.jar :?]       在com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:170)〜[corda.jar :?]       在com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:184)〜[corda.jar :?]       在com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:189)〜[corda.jar :?]       在com.typesafe.config.impl.SimpleConfig.getList(SimpleConfig.java:258)〜[corda.jar :?]       在com.typesafe.config.impl.SimpleConfig.getHomogeneousUnwrappedList(SimpleConfig.java:329)〜[corda.jar :?]       在com.typesafe.config.impl.SimpleConfig.getStringList(SimpleConfig.java:387)〜[corda.jar :?]       在com.r3.corda.finance.obligation.oracle.services.XrpOracleService $ nodes $ 2.invoke(XrpOracleService.kt:22)〜[?:?]       在com.r3.corda.finance.obligation.oracle.services.XrpOracleService $ nodes $ 2.invoke(XrpOracleService.kt:19)〜[?:?]       在kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)〜[kotlin-stdlib-1.2.71.jar:1.2.71-release-64(1.2.71)]       在com.r3.corda.finance.obligation.oracle.services.XrpOracleService.getNodes(XrpOracleService.kt)〜[?:?]       在com.r3.corda.finance.obligation.oracle.services.XrpOracleService。(XrpOracleService.kt:24)〜[?:?]       在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)〜[?:1.8.0_191]       在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)〜[?:1.8.0_191]       在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)〜[?:1.8.0_191]       在java.lang.reflect.Constructor.newInstance(Constructor.java:423)〜[?:1.8.0_191]       在net.corda.node.internal.AbstractNode.installCordaService(AbstractNode.kt:649)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.AbstractNode.installCordaServices(AbstractNode.kt:579)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.AbstractNode.access $ installCordaServices(AbstractNode.kt:118)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.AbstractNode $ start $ 7.invoke(AbstractNode.kt:380)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.AbstractNode $ start $ 7.invoke(AbstractNode.kt:118)〜[corda-node-4.0-RC03.jar :?]       在net.corda.nodeapi.internal.persistence.CordaPersistence.inTopLevelTransaction(CordaPersistence.kt:227)〜[corda-node-api-4.0-RC03.jar :?]       在net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:212)〜[corda-node-api-4.0-RC03.jar :?]       在net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:190)〜[corda-node-api-4.0-RC03.jar :?]       在net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:196)〜[corda-node-api-4.0-RC03.jar :?]       在net.corda.node.internal.AbstractNode.start(AbstractNode.kt:369)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.Node.start(Node.kt:419)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:180)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.NodeStartupCli $ runProgram $ 2.run(NodeStartup.kt:109)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.NodeStartup $ initialiseAndRun $ 5.invoke(NodeStartup.kt:161)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.NodeStartup $ initialiseAndRun $ 5.invoke(NodeStartup.kt:116)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.NodeStartupLogging $ DefaultImpls.attempt(NodeStartup.kt:445)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.NodeStartup.attempt(NodeStartup.kt:116)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.NodeStartup.initialiseAndRun(NodeStartup.kt:159)〜[corda-node-4.0-RC03.jar :?]       在net.corda.node.internal.NodeStartupCli.runProgram(NodeStartup.kt:107)〜[corda-node-4.0-RC03.jar :?]       在net.corda.cliutils.CordaCliWrapper.call(CordaCliWrapper.kt:184)〜[corda-tools-cliutils-4.0-RC03.jar :?]       在net.corda.cliutils.CordaCliWrapper.call(CordaCliWrapper.kt:152)〜[corda-tools-cliutils-4.0-RC03.jar :?]       在picocli.CommandLine.execute(CommandLine.java:1056)处〜[picocli-3.8.0.jar:3.8.0]       在picocli.CommandLine.access $ 900(CommandLine.java:142)〜[picocli-3.8.0.jar:3.8.0]       在picocli.CommandLine $ RunLast.handle(CommandLine.java:1246)〜[picocli-3.8.0.jar:3.8.0]       在picocli.CommandLine $ RunLast.handle(CommandLine.java:1214)〜[picocli-3.8.0.jar:3.8.0]       在picocli.CommandLine $ AbstractParseResultHandler.handleParseResult(CommandLine.java:1122)〜[picocli-3.8.0.jar:3.8.0]       在picocli.CommandLine.parseWithHandlers(CommandLine.java:1405)〜[picocli-3.8.0.jar:3.8.0]       在net.corda.cliutils.CordaCliWrapperKt.start(CordaCliWrapper.kt:72)〜[corda-tools-cliutils-4.0-RC03.jar :?]       在net.corda.node.Corda.main(Corda.kt:13)〜[corda-node-4.0-RC03.jar :?]   [INFO] 2019-02-12T11:02:31,343Z [main] internal.Node.installCordaService-已安装com.r3.corda.finance.ripple.services.XRPService Corda服务   [INFO] 2019-02-12T11:02:31,390Z [main] vault.NodeVaultService.oldStatesPresent-从先前版本检查Vault中的状态   [INFO] 2019-02-12T11:02:31,406Z [main] vault.NodeVaultService.oldStatesPresent-完成了对旧状态的检查。存在的旧状态:错误   [INFO] 2019-02-12T11:02:34,076Z [main] statemachine.SingleThreadedStateMachineManager.invoke-节点已准备好,信息:NodeInfo(addresses = [localhost:10011],legalIdentitiesAndCerts = [O = Oracle,L = New York,C = US],platformVersion = 4,序列号= 1549969092158)   [INFO] 2019-02-12T11:02:34,716Z [main] BasicInfo.printBasicNodeInfo-已加载6个CorDapp:组合的CorDapp:合同CorDapp:供应商R3发行的Corda Finance Demo版本1,许可证为开源(Apache 2),工作流CorDapp:供应商R3的Corda Finance Demo版本1,许可证为开源(Apache 2),合并的CorDapp:合同CorDapp:我的供应商的合同名称版本1我的公司已获得我的许可证,工作流CorDapp:我的工作流名称的版本1我的公司有我的许可证,合并的CorDapp:合同CorDapp:我的供应商的合同名称第1版我公司有我的许可证,工作流的许可证,CorDapp:我的工作商名,版本1,我的厂商,我有许可证,我的许可证,CorDapp -0.1版本未知,许可证未知未知,CorDapp oracle-0.1版本未知,许可证未知,未知,CorDapp波纹-0.1版本未知,未知许可证,未知   [WARN] 2019-02-12T11:02:34,716Z [main] internal.Node.logLoadedCorDapps-找到了3个未知信息的CorDapp。他们将来将无法在Corda上运行。   [INFO] 2019-02-12T11:02:34,747Z [Node thread-1] internal.Node.registerJmxReporter-注册JMX报告器:   [INFO] 2019-02-12T11:02:34,763Z [Node thread-1] internal.Node.registerJolokiaReporter-注册Jolokia JMX报告者:   [INFO] 2019-02-12T11:02:34,794Z [main] BasicInfo.printBasicNodeInfo-“ Oracle”的节点启动并在151.81秒内注册   [INFO] 2019-02-12T11:02:34,794Z [main] rpc.RPCServer.start-使用配置RPCServerConfiguration(rpcThreadPoolSize = 4,reapInterval = PT1S,deduplicationCacheExpiry = PT24H)启动RPC服务器

我既没有触摸oracle的构建文件,也没有触摸相应的类或xrp.conf。 感谢您的帮助!提前非常感谢!

1 个答案:

答案 0 :(得分:0)

这是我的解决方案:在com.r3.corda.finance.obligation.oracle.services.XrpOracleService中,需要对代码进行一些小的更改,添加ClassLoader起到了神奇的作用

Private Sub CommandButton1_Click()
    Dim sName As String
    Dim oRng As Range

    sName = InputBox("New Shipment", "New AWB Number", "Enter the AWB Number")

    If sName <> "" Then
        ThisWorkbook.Sheets("Templete").Copy Before:=Sheets(3)  
        ActiveSheet.Name = sName
        MsgBox "New AWB Number Tracking Added"
    Else
        MsgBox "Failed"  
    End If

    Sheets("Summary").Select
    Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Activate

    ActiveCell.Value = sName
    'ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "'Sheet(3)'!A1"
End Sub