如何设置专用网络并连接geth中的对等体?

时间:2017-03-24 08:31:18

标签: blockchain ethereum peer local-network private-network

我正在尝试设置专用网络并尝试连接对等设备。目前我正在我的笔记本电脑和台式机上试用它们(它们都连接到不同的互联网)。

我在第一个终端运行以下命令(在两个系统中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");

他们都返回trueadmin.peerCount会返回0

有人可以帮我设置一个私人geth网络吗?

2 个答案:

答案 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之前包含您在第一次运行中使用的所有内容。