| 知乎专栏 | 多维度架构 |
新增节点显示 true ,但是使用 admin.peers 查看不到。
> admin.addPeer("enode://c4586276391b3c88ec23889d1bc825d0c7d69bd5765d4545686f835608068b8dc48799d2686a04ea0f9e17aed099bf9b56935679fa6493e9b17151624a320714@172.16.0.17:30303")
true
> admin.peers
[]
查看节点,如果发现 ip: "::" 同时 discovery: 0
> admin.nodeInfo
{
enode: "enode://9f6490ffb5236f2ddc5710ae73d47c740e0a3644bbd2d67029cf4a6c4693d2f470b642fd2cc3507f7e851df60aaeb730a1270b7a477f91ec5b6b17a8a4b40527@[::]:30303?discport=0",
id: "9f6490ffb5236f2ddc5710ae73d47c740e0a3644bbd2d67029cf4a6c4693d2f470b642fd2cc3507f7e851df60aaeb730a1270b7a477f91ec5b6b17a8a4b40527",
ip: "::",
listenAddr: "[::]:30303",
name: "Geth/v1.7.3-stable-4bb3c89d/linux-amd64/go1.9.1",
ports: {
discovery: 0,
listener: 30303
},
protocols: {
eth: {
difficulty: 131072,
genesis: "0x611596e7979cd4e7ca1531260fa706093a5492ecbdf58f20a39545397e424d04",
head: "0x611596e7979cd4e7ca1531260fa706093a5492ecbdf58f20a39545397e424d04",
network: 123456
}
}
}
>
解决方案启动时可能增加了 --nodiscover 参数,去掉参数后可以解决。
有三种方法新增节点
第一种,启动指定
geth --bootnodes enode://pubkey1@ip1:port1,enode://pubkey2@ip2:port2,enode://pubkey3@ip3:port3
第二种,在控制台中添加
> admin.addPeer('enode://9f6490ffb5236f2ddc5710ae73d47c740e0a3644bbd2d67029cf4a6c4693d2f470b642fd2cc3507f7e851df60aaeb730a1270b7a477f91ec5b6b17a8a4b40527@172.16.0.1:30303')
第三种,在文件 ~/.ethereum/geth/static-nodes.json 中添加节点数据
[ "enode://9f6490ffb5236f2ddc5710ae73d47c740e0a3644bbd2d67029cf4a6c4693d2f470b642fd2cc3507f7e851df60aaeb730a1270b7a477f91ec5b6b17a8a4b40527@172.16.0.17:30303", "enode://pubkey@ip:port" ]
这个文件内容是一个数组,类似 ["","",""] 。