I’m trying to run a remote Console against Canton running in Docker with the simple topology, but get an error I don’t understand.
The script to run Canton:
docker run --rm \
--volume "$PWD/config:/canton/config" \
--name canton \
-p 5011:5011 \
-p 5012:5012 \
-p 5021:5021 \
-p 5022:5022 \
-p 5018:5018 \
-p 5019:5019 \
-e POSTGRES_USER=canton \
-e POSTGRES_PASSWORD=supersafe \
-e POSTGRES_HOST=host.docker.internal \
digitalasset-docker.jfrog.io/canton-enterprise daemon \
-c /canton/config/simple_topology.conf \
-c /canton/config/postgres.conf \
--bootstrap /canton/config/simple_ping.canton \
--log-level-canton=INFO \
--log-profile=container
The remote config:
canton.remote-participants.participant1 {
admin-api {
address="0.0.0.0"
keep-alive-client {
time="40s"
timeout="20s"
}
port="5012"
}
ledger-api {
address="0.0.0.0"
keep-alive-client {
time="40s"
timeout="20s"
}
port="5011"
}
}
The script to start Console:
/Users/gyorgybalazsi/canton/canton-enterprise-2.8.1/bin/canton \
-c ./config/remote-participant1.conf
--log-level-canton=DEBUG
When I issue the command health.status
in the Console I get the following message:
@ nodes.remote(0).health.status
res4: com.digitalasset.canton.health.admin.data.NodeStatus[com.digitalasset.canton.console.InstanceReferenceCommon#Status] = Request failed for participant1. Is the server running? Did you configure the server address as 0.0.0.0? Are you using the right TLS settings? (details logged as DEBUG)
GrpcServiceUnavailable: UNAVAILABLE/io exception
Request: com.digitalasset.canton.admin.api.client.commands.StatusAdminCommands$GetStatus@3a744e32
Causes: Connection reset
The following error gets logged:
2024-02-08 16:09:34,011 [canton-env-ec-23] INFO c.d.c.a.api.client.GrpcCtlRunner tid:0d93d9b3fb27702848328b8f48a0c7c1 - Request failed for participant1. Is the server running? Did you configure the server address as 0.0.0.0? Are you using the right TLS settings? (details logged as DEBUG)
GrpcServiceUnavailable: UNAVAILABLE/io exception
Request: com.digitalasset.canton.admin.api.client.commands.StatusAdminCommands$GetStatus@2e96489b
Causes: Connection reset
java.net.SocketException: Connection reset
at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426)
at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:254)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132)
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:357)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:833)
What am I doing wrong?