连接不同计算机上的以太网节点

时间:2016-01-14 21:01:27

标签: ethereum

我正在试验以太坊。我已经通过网站上的说明成功设置了一个私有testnet。但是,我在添加来自不同机器的同行时遇到了麻烦。在我创建的任何节点上,admin.nodeInfo.NodeUrl参数未定义。我通过调用admin.nodeInfo获取了enode地址,当我尝试admin.addPeer(" enode:// address")命令(使用公共IP)时,它返回true但未列出对等体在调用admin.peers时。

我在另一个线程(here)上读到私有testnet只是本地的,但是我看到了大量的文档(herehere。)我试过了第二个教程为自定义networkid和genesis块添加命令行标志。

非常感谢任何建议。如果我能提供更多详细信息,请通知我。

1 个答案:

答案 0 :(得分:2)

在可用文档中很难找到,但关键功能是admin.addPeer()。

https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console

我想有几种方法可以做到,但我在本地PC上运行了1个节点,在远程服务器上运行了一个节点。这样可以在测试合同时为我节省以太,并使我免于使用垃圾污染以太坊区块链。运行admin.addPeer()时的关键是找到" enode"对于每个音符,您将在其中一个节点上运行该函数以查看类似的内容:admin.addPeer(enode @ ipaddress:port)。如果您运行admin.peers并查看除空列表之外的其他内容,则可能是成功的。要检查的主要是来自admin.peers的enode ID和ip地址与您期望的相符。

geth配置设置也有点棘手。您将不得不采用它来满足您的特定用途,但以下是我使用的一些参数:

geth --port XYZ --networkid XYZ --maxpeers X

将XYZ和X替换为您要使用的数字,并确保在启动两个音符时运行相同的参数。可能涉及更多参数,但这应该会让你走得很远。

免责声明:我自己也是Geth的新手以及使用电脑进行Facebook以外的任何事情,所以请尽量回答我的问题。另外,我还没有给你完整的命令行启动Geth,因为我不能100%确定某些参数是否与私有测试网相关,哪些不是。我只给了你那些我确定与运行私人测试网有关的内容。

此外,您可能会发现无法执行任何运行私有测试网的交易。那是因为你需要其中一个开始挖掘。因此,当您准备好开始部署合同时,请运行:miner.start(X)

我很抱歉这不是完全完整,而是在花了1-2周试图找出自己之后传递我的经验,因为文档并没有完全清楚如何做到这一点。我认为应该以Ethereuem的精神积极劝阻,但就我而言,我主要是为了污染区块链。

PS。当我准备好接受提交时,我发现这也带来了更多的亮点。

connecting to the network