1

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

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

当我运行时,我在两个系统上得到相同的 enode值admin.nodeInfo.enode

然后在第一台电脑上,

admin.addPeer("enode://e0c4960659b6ce4eda71c67b337055636f67660a711d157a81572b5eff1ed1b77931bef4bd079e2660baa661ac16d696b831e9394cb619378071a2593ecdf17a@[192.168.1.2]:30301");

在第二台电脑上,

admin.addPeer("enode://e0c4960659b6ce4eda71c67b337055636f67660a711d157a81572b5eff1ed1b77931bef4bd079e2660baa661ac16d696b831e9394cb619378071a2593ecdf17a@[13.75.117.156]:30302");

他们俩都回来了true
admin.peerCount回报0

有人可以帮我建立一个私人geth网络吗?

4

2 回答 2

2

步骤1

geth --identity "YourNodeName" --rpc --rpcport "8092" --datadir "DirectoryPathToStoreData" --port "30330" --nodiscover --rpcapi "db,eth,net,web3" --networkid 2010 init PathOfGenesisFile

上面的命令是初始化一个创世纪文件。

注意:所有愿意连接到网络的 Peers 都应该具有相同的 Genesis 文件。

第2步

geth --identity "YourNodeName" --rpc --rpcport "8092" --datadir "DirectoryPathToStoreData" --port "30330" --nodiscover --rpcapi "db,eth,net,web3" --networkid 2010 console

上面的命令打开一个 Geth JavaScript 控制台。在其他系统中也执行上述 2 个步骤。

第三步

在要添加其他系统作为对等体的系统中,键入以下命令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 添加更多对等点。

您可以在不创建创世纪文件的情况下创建私有区块链。如果您选择这样做,请点击此链接

于 2017-09-19T06:32:35.627 回答
0

如此处所述,您的--port--rpcport变量应该不同。结果EnodeURLs也应该不同。

另外,当您第二次运行 geth 时,我会包含您在第一次运行之前使用的所有内容init

于 2017-03-24T14:51:57.163 回答