先上异常输出:
$ pwd
/home/cbpm/data/cita/cita_secp256k1_sha3
$ ls
bin localtime resource scripts test-chain
$ ls test-chain/
0 1 2 3 4 6 template
$ bin/cita append --chain_name test-chain --node "127.0.0.1:4005"
Traceback (most recent call last):
File "/opt/cita/scripts/create_cita_config.py", line 553, in <module>
main()
File "/opt/cita/scripts/create_cita_config.py", line 547, in main
funcs_router[args.subcmd](args, work_dir)
File "/opt/cita/scripts/create_cita_config.py", line 359, in run_subcmd_append
info.append_node(args.node)
File "/opt/cita/scripts/create_cita_config.py", line 256, in append_node
shutil.copytree(self.configs_dir, node_dir, False)
File "/usr/lib/python3.6/shutil.py", line 321, in copytree
os.makedirs(dst)
File "/usr/lib/python3.6/os.py", line 220, in makedirs
mkdir(name, mode)
FileExistsError: [Errno 17] File exists: '/opt/cita/test-chain/6'
操作过程:
1、本来是使用append命令像创建一个分布式的节点(IP用的是局域网内可以相互访问到的),然后将test-chain 目录下的新节点目录和template目录打包传输到目标服务器,发现创世块的四个节点IP全是127.0.0.1,无法启动该节点,出现这位朋友出现的问题(我目前不知道这是不是和前面配置中的IP有关),所以退而求其次,准备在创世块所在服务器新增节点。
2、在创世块所在服务器,删除各个节点下的network.toml中的[[peer]]对应IP数据,以及template、configsnetwork.toml中的对应网络节点,然后使用上问题输出中的append命令添加块出现问题。
更新:
我首先在服务器A上使用create创建了四个节点,都跑在 test-chain这条链上,然后再在服务器A上使用append追加第五个节点,这个节点IP使用的是目标服务器B的IP,使用的命令如下:
./bin/cita append --chain_name test-chain --node "192.168.31.128:4005"
创建好后,就开始了以上的第一步,将A服务器上的第五号节点的目录和template目录打包发送到服务器B,但是出错。
然后放弃在服务器B上的操作,进入到上面的第二步,并且我把5号节点的目录删除了。
这样操作之后,append新节点就开始出错:append执行之后,test-chain目录下出现了5
这个目录,但是报了一个错,与上面的输出类似:File exists: ‘/opt/cita/test-chain/4’,所以我手动将5这个目录改为4:
$ mv 4 5
然后,就是上面代码清单里面的append操作以及其异常输出了。