docker启动添加节点问题

在新的宿主机上部署node节点如何配置网络?配置的ip地址无法通信,宿主机上使用docker启动服务./env.sh ./scripts/create_cita_config.py append --chain_name “test-chain” --node “???:???”

新node日志:- ERROR - [NodeManager] Can not convert to socket address! error: failed to lookup address information: Name or service not known
network.toml的配置怎么调整

你需要在原来生成节点配置的地方执行:

./scripts/create_cita_config.py append --chain_name test-chain --node "127.0.0.1:4004"

后面的那个 IP:PORT 是你需要添加的新主机的 IP:PORT.

执行了并且拷贝到新的主机上,启动之后日志报错。docker也没有将4000端口映射出来 ,之间如何进行通信?

你用的是 linux 系统还是 macOS ?

如果是 linux ,原来主机的端口会自动从 docker 里暴露出来的。

centos7.4

哦,这个系统我没有试过,你需要试一下。

如果不行,你需要手工改写 docker 的启动脚本,把端口暴露出来。

另外,请注意。这里的 IP 就不是 127.0.0.1 了,而是你主机的公网 IP。

相关通信是通过4000端口通信吗?

这个端口,就是你自己指的那个。难道你忘了?

指定之后出来的node4的network.toml文件是否也需要修改? 发现节点是新node去发现现有的节点 还是现有节点去发现?

你用 append 命令添加就不需要更改任何文件。

只要拿着新的生成的节点配置文件到新节点上去启动。

启动后,新节点会自动加入这个网络,但前提是网络必须是连通的。

还是无法访问通,开始4个node节点的在cita1宿主机上,现在要在cita2上增加节点

cita2 主机上的 network.toml 方便发出来看一下吗?

修改前

Current node ip is 192.168.10.102

id_card = 5
port = 4000
[[peers]]
id_card = 0
ip = “node0”
port = 4000

[[peers]]
id_card = 1
ip = “node1”
port = 4000

[[peers]]
id_card = 2
ip = “node2”
port = 4000

[[peers]]
id_card = 3
ip = “node3”
port = 4000

修改后

Current node ip is 192.168.10.102

id_card = 5
port = 4000
[[peers]]
id_card = 0
ip = “192.168.10.101”
port = 4000

[[peers]]
id_card = 1
ip = “192.168.10.101”
port = 4000

[[peers]]
id_card = 2
ip = “192.168.10.101”
port = 4000

[[peers]]
id_card = 3
ip = “192.168.10.101”
port = 4000

都无法完成通信,node1与node5的4000端口都映射到宿主机上了

你用的是 docker-compose 启动?

有两点先改一下:

  1. CITA1 的那个节点上的各个节点端口不可以都暴露为 4000,否则做有冲突;
  2. CITA2 上的 IP 是内网 IP,我不清楚是不是云主机,如果是云主机得用公网 IP。先保证这个 IP 可 ping 通。

cita1上只暴露了node1,是vpc主机,2边可以通,在cita1的宿主机上telnet,192.168.10.102 400是可以通。cita2访问192.168.10.101:4000也是通
INFO - [NodeManager] Dialing node: V4(192.168.10.101:4000), waiting for next round.
2019-04-25T11:16:41.516600387+00:00 - INFO - [NodeManager] Dialing node: V4(192.168.10.101:4000), waiting for next round.
2019-04-25T11:16:44.516680073+00:00 - INFO - [NodeManager] Dialing node: V4(192.168.10.101:4000), waiting for next round.
2019-04-25T11:16:45.516955825+00:00 - WARN - [P2pProtocol] Dialed Error in V4(192.168.10.101:4000) : IoError(Custom { kind: TimedOut, error: StringError(“deadline has elapsed”) }).

您的问题最后解决了吗?

请问这个问题最后是怎么解决的?