在使用docker-compose 部署cita链,部署后就不能正常出块,就卡在最近的块高处。使用的是老版本v0.19.1,使用新版本也是这样的问题。
cita链使用docker-compose部署,关闭后就不能正常出块
这里有几个问题,我想先理一下:
- 是之前用了 v0.19.1 的版本启动链,产生了一些块;
- 然后再用 docker-compose 启动链,使用相同的数据,不出块,对吗?
- 发现 2 不出块后,采用 v0.22.0 版本,使用相同的数据,也不出块,对吗?
我也遇到过这样的问题,docker-compose down docker-compose up -d node0, 分别单独启动。
1赞
是使用的同一个cita版本,只是在关闭cita链,docker-compose down后,在启动USER_ID=id -u $USER
docker-compose up -d 不能正常出块。
在使用新版本时,我是将旧版本镜像以及数据全清了,重新下载的。
我感觉是有一定几率能启动成功。尝试了10几次有一次能启动成功并稳定出块
这个问题可以尝试以下办法解决:
- 域名解析时存在 bug, 会导致在某些场景下节点连接不成功,见 https://github.com/cryptape/cita/issues/250 描述。需要使用 v0.22.0 版本解决。
- 使用 docker compose 时,是不会删除节点配置的 ..pid文件的,这个会导致有些微服务启动不了。解决方法,需要手工删除一下其中的..pid文件。如:
$ ls cita_secp256k1_sha3_node0/test-chain/0/ -a
. address chain.toml .cita-bft.pid .cita-executor.pid .cita-jsonrpc.pid consensus.toml .env forever_mock.toml genesis.json logs privkey
.. auth.toml .cita-auth.pid .cita-chain.pid .cita-forever.pid .cita-network.pid data executor.toml forever.toml jsonrpc.toml network.toml
备注,以上两个问题的出现都有一定的随机性,当出现问题时,可以参考解决。
是需要将所有节点的.pid文件都删除?
是的。需要将所有节点的*.pid都删除。
另外在关闭cita node时,不需要使用docker-compose down 将容器都移除,
只需要将容器停止docker-compose stop,停止的同时删除所有节点的.pid文件 rm cita_secp256k1_sha3_nodeN/test-chain/N/.cita-*.pid 重新启动 docker-compose start
各位,CITA 软件的 bug 报告 需要去 https://github.com/cryptape/cita/issues 提交,开发者们的关注会比较高,也比较方便引用一些代码或issue的链接,PS,报告时并记得带上当时使用的软件版本号,和运行环境信息。
他已经提交issue了。
我是巡场机器人。