我正在尝试设置专用网络并尝试连接对等设备。目前我正在我的笔记本电脑和台式机上试用它们(它们都连接到不同的互联网)。
我在第一个终端运行以下命令(在两个系统中data dir
在两个系统中都不同)):
geth --rpc --rpcaddr "0.0.0.0" --rpcport "8545" --rpccorsdomain "http://localhost:5000, http://localhost:6000" --port "2403" --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" --rpcapi "db,eth,net,web3" --networkid 1001201 --datadir "E:\User\priv\data" init "E:\User\priv\genesis.json"
然后我跑:
geth --datadir "E:\User\priv\data"
现在,在第二个终端:
geth attach ipc:\\.\pipe\geth.ipc
当我运行admin.nodeInfo.enode
时,我在两个系统上都获得相同的enode 值
然后在第一台PC上,
admin.addPeer("enode://e0c4960659b6ce4eda71c67b337055636f67660a711d157a81572b5eff1ed1b77931bef4bd079e2660baa661ac16d696b831e9394cb619378071a2593ecdf17a@[192.168.1.2]:30301");
在第二台PC上,
admin.addPeer("enode://e0c4960659b6ce4eda71c67b337055636f67660a711d157a81572b5eff1ed1b77931bef4bd079e2660baa661ac16d696b831e9394cb619378071a2593ecdf17a@[13.75.117.156]:30302");
他们都返回true
但admin.peerCount
会返回0
。
有人可以帮我设置一个私人geth网络吗?
答案 0 :(得分:2)
第1步
geth --identity "YourNodeName" --rpc --rpcport "8092" --datadir "DirectoryPathToStoreData" --port "30330" --nodiscover --rpcapi "db,eth,net,web3" --networkid 2010 init PathOfGenesisFile
以上命令用于初始化Genesis文件。
注意:所有愿意连接到网络的对等方应该具有相同的Genesis文件。
Step2
geth --identity "YourNodeName" --rpc --rpcport "8092" --datadir "DirectoryPathToStoreData" --port "30330" --nodiscover --rpcapi "db,eth,net,web3" --networkid 2010 console
以上命令打开Geth JavaScript控制台。 在其他系统中执行上述2个步骤。
第3步
在您要将其他系统添加为对等类型的系统中,使用以下命令admin.addPeer("Argument")
其中Argument是通过在其他系统中键入admin.nodeInfo()
获得的其他节点的enode值。
Eg:admin.nodeInfo
{
enode: "enode://965dc2b0f39e199d3a07871293015d8a4ad9349834fc27b7ee5e87bea89547e4fafda3ce7982ae07c14b8770c87a6c14e3fe2f91ef0d0ca717eb6ae56aa3e74b@[::]:30330?discport=0",
//////////
}
其中30330
是其他系统的网络ID。
复制到30330
。您需要提供其他系统的IP地址代替
[::]
如果该节点能够充当对等节点,则返回true,但并不意味着它被添加到我们的网络中,以便知道type net.peerCount
。如果添加,则返回1.
您可以按照步骤3添加更多同行。
您可以在不创建Genesis文件的情况下创建私有区块链。如果您选择这样做,请关注this link。
答案 1 :(得分:0)
按照here所述,您的--port
和--rpcport
变量应该不同。结果EnodeURLs
也应该不同。
此外,当您第二次运行geth时,我会在init
之前包含您在第一次运行中使用的所有内容。