请问关于新增普通节点的问题

我参考这个来新增节点。

里面提到

$ ./bin/cita append --chain_name test-chain --node "127.0.0.1:4004"
$ ls test-chain/
  0  1  2  3  4  template

我有问题:

  1. 对于不同节点位于不同服务器上的情况,请问新增的节点,它需要把哪个节点下面的目录0,1,2,3全部copy过来?还是只需要任意找一个节点,把 template copy 过来就行了
  2. ./bin/cita append --chain_name test-chain --node "127.0.0.1:4004"这条命令只需要在新增节点运行还是需要在之前 0,1,2,3节点里面都需要运行?因为如果只在新增节点里面运行,我担心之前的节点无法发现新增节点。
  3. 如果之前所有节点都是使用内网通信(即create时候填的是内网ip,因为此时服务器都是内网互通的),然后新增节点是公网IP,那新增节点能否正常通信?

可以参考 删除节点报错

  1. 节点配置是集中化生成的,应该本来就有一个地方存放着之前所有的节点配置。是的,不只是template,还需要之前所有节点的配置。
  2. 在一个集中化的文件夹里运行,这个命令会同时修改之前节点的网络配置文件。因此之前的节点的配置也要更新。
  3. 你说的这种情况,之前节点的修改,工具是可以处理好的。但是新增的这个节点就不行了,因为它还会使用之前节点的内网ip,需要手工修改网络配置。比较好的方式是,使用域名或者主机名来代替ip,这样中间可以有个适配层。
1赞

因此,对于运行一段时间的网络,需要从集中的把配置修改好的,test-chain 文件夹分发到各个节点,并且各个节点根据自己是哪个节点把 data,和 log 文件夹(运行一段时间的链好像就新增了这两个文件夹)copy 进对于的节点文件就好?

操作流程是对的。
但是data和log两个文件夹不用动,直接把配置文件拷贝过来覆盖就可以了。
对于新增节点操作来说,老的节点配置只会修改network配置文件。cita的network配置文件是可以热更新的。

好的