Corda 需要为每个构建生成节点信息文件,即使node.conf保持不变

Corda 需要为每个构建生成节点信息文件,即使node.conf保持不变,corda,Corda,我正在docker环境中运行corda应用程序。因此,我为每个节点生成节点信息文件,并将它们复制到节点以启动应用程序。起初,我假设只要node.conf保持不变,就可以使用相同的node info文件,但事实并非如此 如果我在重建后使用相同的节点信息文件。节点彼此连接良好。但是,当启动流时,我从其中一个节点(security.ActiveMQJAASSecurityManager.validateUser-无法验证用户{})获得以下AMQP错误,下面是完整的堆栈跟踪 如果复制节点信息文件以及生

我正在docker环境中运行corda应用程序。因此,我为每个节点生成节点信息文件,并将它们复制到节点以启动应用程序。起初,我假设只要node.conf保持不变,就可以使用相同的node info文件,但事实并非如此

  • 如果我在重建后使用相同的节点信息文件。节点彼此连接良好。但是,当启动流时,我从其中一个节点(security.ActiveMQJAASSecurityManager.validateUser-无法验证用户{})获得以下AMQP错误,下面是完整的堆栈跟踪

  • 如果复制节点信息文件以及生成节点信息文件时使用的证书目录的内容,则会出现合同验证错误

请注意,每次我都从零开始启动corda网络

  • 这是预期的行为吗
  • 如果node.conf保持不变,那么节点信息文件绑定到给定构建的哪些属性(根证书等)
  • 根开发人员证书是否每次生成时都会更改
我试图了解如何设置它,以便设置我们的测试环境

谢谢

完整堆栈跟踪:

auditorcontainer | D 18:25:36+0000 [Thread-4 (activemq-netty-threads)] security.ActiveMQJAASSecurityManager.validateUser - Couldn't validate user {}
auditorcontainer |  javax.security.auth.login.FailedLoginException: Username not provided
auditorcontainer |      at net.corda.node.services.messaging.NodeLoginModule.login(ArtemisMessagingServer.kt:255) ~[corda-node-3.2-corda.jar:?]
auditorcontainer |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
auditorcontainer |      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
auditorcontainer |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
auditorcontainer |      at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680) ~[?:1.8.0_151]
auditorcontainer |      at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext.login(LoginContext.java:587) ~[?:1.8.0_151]
auditorcontainer |      at org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager.getAuthenticatedSubject(ActiveMQJAASSecurityManager.java:186) ~[artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager.validateUser(ActiveMQJAASSecurityManager.java:93) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.authenticate(SecurityStoreImpl.java:129) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.broker.AMQPConnectionCallback.isSupportsAnonymous(AMQPConnectionCallback.java:105) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.broker.AMQPConnectionCallback.getSASLMechnisms(AMQPConnectionCallback.java:93) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onAuthInit(AMQPConnectionContext.java:324) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatchAuth(ProtonHandler.java:326) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:221) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocofl.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:125) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:138) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:631) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68) [artemis-core-client-2.2.0.jar:2.2.0]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.handlerRemoved(ByteToMessageDecoder.java:219) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved0(DefaultChannelPipeline.java:631) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:468) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:428) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at org.apache.activemq.artemis.core.protocol.ProtocolHandler$ProtocolDecoder.decode(ProtocolHandler.java:186) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at org.apache.activemq.artemis.core.protocol.ProtocolHandler$ProtocolDecoder.channelRead(ProtocolHandler.java:128) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1240) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1041) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.9.Fin:qll.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1017) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
auditorcontainer | D 18:25:36+0000 [Thread-4 (activemq-netty-threads)] impl.PostOfficeImpl.route - Couldn't find any bindings for address=internal.activemq.notifications on message=CoreMessage[messageID=32,durable=true,userID=null,priority=0, timestamp=0,expiration=0, durable=true, address=internal.activemq.notifications,properties=TypedProperties[_AMQ_NotifType=SECURITY_AUTHENTICATION_VIOLATION,_AMQ_NotifTimestamp=1534530336155]]@339279392 {}
auditorcontainer | D 18:25:36+0000 [Thread-4 (activemq-netty-threads)] impl.PostOfficeImpl.route - Message CoreMessage[messageID=32,durable=true,userID=null,priority=0, timestamp=0,expiration=0, durable=true, address=internal.activemq.notifications,properties=TypedProperties[_AMQ_NotifType=SECURITY_AUTHENTICATION_VIOLATION,_AMQ_NotifTimestamp=1534530336155]]@339279392 is not going anywhere as it didn't have a binding on address:internal.activemq.notifications {}
auditorcontainer | D 18:25:36+0000 [Thread-4 (activemq-netty-threads)] messaging.NodeLoginModule.login - Processing login for SystemUsers/Peer {}
auditorcontainer | D 18:25:36+0000 [Thread-4 (activemq-netty-threads)] security.ActiveMQJAASSecurityManager.validateUser - Couldn't validate user {}
auditorcontainer |  javax.security.auth.login.LoginException: java.lang.IllegalArgumentException: No TLS?
auditorcontainer |      at net.corda.node.services.messaging.NodeLoginModule$determineUserRole$1.invoke(ArtemisMessagingServer.kt:296)
auditorcontainer |      at net.corda.node.services.messaging.NodeLoginModule.determineUserRole(ArtemisMessagingServer.kt:299)
auditorcontainer |      at net.corda.node.services.messaging.NodeLoginModule.login(ArtemisMessagingServer.kt:261)
auditorcontainer |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
auditorcontainer |      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
auditorcontainer |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
auditorcontainer |      at java.lang.reflect.Method.invoke(Method.java:498)
auditorcontainer |      at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)
auditorcontainer |      at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
auditorcontainer |      at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
auditorcontainer |      at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
auditorcontainer |      at java.security.AccessController.doPrivileged(Native Method)
auditorcontainer |      at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
auditorcontainer |      at javax.security.auth.login.LoginContext.login(LoginContext.java:587)
auditorcontainer |      at org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager.getAuthenticatedSubject(ActiveMQJAASSecurityManager.java:186)
auditorcontainer |      at org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager.validateUser(ActiveMQJAASSecurityManager.java:93)
auditorcontainer |      at org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.authenticate(SecurityStoreImpl.java:129)
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.sasl.PlainSASL.authenticate(PlainSASL.java:33)
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.sasl.ServerSASLPlain.processSASL(ServerSASLPlain.java:48)
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.checkServerSASL(ProtonHandler.java:306)
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:271)
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:240)
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:125)
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:138)
auditorcontainer |      at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:631)
auditorcontainer |      at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.handlerRemoved(ByteToMessageDecoder.java:219)
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved0(DefaultChannelPipeline.java:631)
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:468)
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:428)
auditorcontainer |      at org.apache.activemq.artemis.core.protocol.ProtocolHandler$ProtocolDecoder.decode(ProtocolHandler.java:186)
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)
auditorcontainer |      at org.apache.activemq.artemis.core.protocol.ProtocolHandler$ProtocolDecoder.channelRead(ProtocolHandler.java:128)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
auditorcontainer |      at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1240)
auditorcontainer |      at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1041)
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
auditorcontainer |      at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1017)
auditorcontainer |      at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394)
auditorcontainer |      at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299)
auditorcontainer |      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
auditorcontainer |      at java.lang.Thread.run(Thread.java:748)
auditorcontainer |
auditorcontainer |      at javax.security.auth.login.LoginContext.invoke(LoginContext.java:856) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680) ~[?:1.8.0_151]
auditorcontainer |      at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) ~[?:1.8.0_151]
auditorcontainer |      at javax.security.auth.login.LoginContext.login(LoginContext.java:587) ~[?:1.8.0_151]
auditorcontainer |      at org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager.getAuthenticatedSubject(ActiveMQJAASSecurityManager.java:186) ~[artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager.validateUser(ActiveMQJAASSecurityManager.java:93) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.authenticate(SecurityStoreImpl.java:129) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.sasl.PlainSASL.authenticate(PlainSASL.java:33) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.sasl.ServerSASLPlain.processSASL(ServerSASLPlain.java:48) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.checkServerSASL(ProtonHandler.java:306) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:271) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:240) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:125) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:138) [artemis-amqp-protocol-2.2.0.jar:?]
auditorcontainer |      at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:631) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68) [artemis-core-client-2.2.0.jar:2.2.0]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.handlerRemoved(ByteToMessageDecoder.java:219) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved0(DefaultChannelPipeline.java:631) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:468) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:428) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at org.apache.activemq.artemis.core.protocol.ProtocolHandler$ProtocolDecoder.decode(ProtocolHandler.java:186) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at org.apache.activemq.artemis.core.protocol.ProtocolHandler$ProtocolDecoder.channelRead(ProtocolHandler.java:128) [artemis-server-2.2.0.jar:2.2.0]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1240) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1041) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1017) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-all-4.1.9.Final.jar:4.1.9.Final]
auditorcontainer |      at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
根据,节点需要证书,因为它们使用证书彼此连接(毕竟这是一个许可的网络)。因此,您不能使用相同的证书,因此每个节点都必须有自己的证书

如果您想自动化构建过程,我建议使用来引导网络。您可以使用相同的配置文件(即与使用docker相同的设置),您只需拥有它的多个副本:例如node1.conf、node2.conf等。一旦存储库中有了所有文件,您就可以简单地运行

java -jar network-bootstrapper-VERSION.jar --dir <nodes-root-dir>
java-jar-network-bootstrapper-VERSION.jar--dir
它将为您生成运行网络所需的/nodes文件夹。如果这样做,则不必每次都重建网络,尽管可以


您可以从下载该工具。

分别下载每个案例:

  • 如果我在重建后使用相同的节点信息文件。节点彼此连接良好。但是,当启动流时,我从其中一个节点(security.ActiveMQJAASSecurityManager.validateUser-无法验证用户{})获得以下AMQP错误,下面是完整的堆栈跟踪
这种情况下的问题是,当节点首次启动时,它会生成一个新的公钥/私钥对。然后,它使用该密钥对生成其证书和
nodeInfo
节点信息中的密钥对和证书必须匹配。这就是为什么在替换
nodeInfo
而不是证书时会看到用户验证错误

  • 如果复制节点信息文件以及生成节点信息文件时使用的证书目录的内容,则会出现合同验证错误

本例中的问题是,从Corda 3开始,每个网络都有一个接受合同JAR文件的白名单。我假设作为重建节点的一部分,您正在重建CorDapp JAR文件。因为JAR文件包含时间戳,所以它们的哈希值在不同的构建中是不相同的,并且网络将无法识别新的CorDapp JAR,从而导致合同验证失败。但是,如果您使用的是引导程序,则可以使用说明更新合同白名单。

为您的问题添加更多上下文,否则您可能不会收到好的答案。不幸的是,引导程序在生成节点信息文件方面与corda有相同的问题,它在其中执行节点名称的网络名称查找。我在这里概述了:。对于网络中可访问的节点名称,这无疑是一个很好的改进。