corda - 需要为每个构建生成节点信息文件,即使 node.conf 保持不变
问题描述
我在 docker 环境中运行我们的 corda 应用程序。因此,我为每个节点生成节点信息文件并将它们复制到节点以启动应用程序。最初我假设只要 node.conf 保持不变,我就可以使用相同的节点信息文件,但事实并非如此。
如果我在重建后使用相同的节点信息文件。节点相互连接良好。但是,当启动流程时,我从其中一个节点(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]
解决方案
分别对待每个案例:
- 如果我在重建后使用相同的节点信息文件。节点相互连接良好。但是,当启动流程时,我从其中一个节点(security.ActiveMQJAASSecurityManager.validateUser - 无法验证用户{})收到以下 AMQP 错误,下面是完整的堆栈跟踪。
这种情况下的问题是,当一个节点第一次启动时,它会生成一个新的公钥/私钥对。然后它使用这个密钥对来生成它的证书和nodeInfo
. 和证书中的密钥对nodeInfo
必须匹配。这就是为什么您在替换nodeInfo
证书而不是证书时看到用户验证错误的原因。
- 如果我复制节点信息文件和生成节点信息文件时使用的证书目录的内容,我会收到合同验证错误。
这种情况下的问题是,从 Corda 3 开始,每个网络都有一个接受的合同 JAR 文件的白名单。我假设作为重建节点的一部分,您正在重建 CorDapp JAR 文件。由于 JAR 文件包含时间戳,因此它们的哈希值在构建之间不会相同,并且网络将无法识别新的 CorDapp JAR,从而导致合约验证失败。但是,如果您使用的是引导程序,则可以使用此处的说明更新合约白名单。
推荐阅读
- machine-learning - 如何提高我的神经网络准确性(说话人识别 - MFCC)
- mysql - 我需要一个万无一失的清单,用于在 Amazon Web Services 上托管已经构建的电子商务网站
- vb.net - 将 Solidworks 工程图另存为带前缀的 PDF 文件
- excel - #N/A 当我尝试在 excel 中使用此 IFS 公式时
- javascript - 如何在 HTML 数据表的每一行中添加一个表单?
- r - R:当grid.arrange / ggplot2中的两行网格排列图时,边距太大
- javascript - Jquery ajax 调用返回 URL 并加载到框架或 div
- reactjs - 使用 webpack 运行 npm run build 时反应 Typescript 错误
- java - 如何使用 Spring JPA 检索某个记录器之前和之后的记录?
- r - 我的代码没有出现错误,但也没有绘图