首页 > 解决方案 > 需要为每个构建生成节点信息文件,即使 node.conf 保持不变

问题描述

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

请注意,每次我从头开始启动 Corda 网络。

我试图了解这是如何设置的,以便设置我们的测试环境。

谢谢

完整的堆栈跟踪:

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]

标签: corda

解决方案


分别对待每个案例:

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

这种情况下的问题是,当一个节点第一次启动时,它会生成一个新的公钥/私钥对。然后它使用这个密钥对来生成它的证书和nodeInfo. 和证书中的密钥对nodeInfo必须匹配。这就是为什么您在替换nodeInfo证书而不是证书时看到用户验证错误的原因。

  • 如果我复制节点信息文件和生成节点信息文件时使用的证书目录的内容,我会收到合同验证错误。

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


推荐阅读