首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在本地Geth专用网上获取节点以发现其对等点

如何在本地Geth专用网上获取节点以发现其对等点
EN

Ethereum用户
提问于 2018-10-29 01:10:57
回答 1查看 2K关注 0票数 3

我正在开发一个私有块链,它由运行在不同端口上的4个节点组成。

我试图让每个节点将其连接传递给它的对等节点,这样网络就会完全连接(每个节点都有彼此的节点作为其对等点)。然而,节点并没有发现它们的对等点。

节点1被指定为bootstrap node,节点2和3在启动时连接到它。然而,节点1将以节点2和3作为其对等点,而节点1将仅作为其自己的对等点。我希望节点2和3能够发现彼此。

此外,当我从Node 1运行admin.addPeer(node4's enode)时,它不会被广播给它的同行。

我的问题是:如何启用一个对等点发现协议,其中每个节点都将其所有对等节点通信到其每个对等点?

我知道有一些黑客可以绕过这件事。例如,我可以简单地将其他三个节点的enode地址中的每一个传递给Geth中每个节点的--bootnodes。或者,我可以在每个对等的admin.peers上使用D5。但我认为Geth有自动化功能,我想使用他们的解决方案。

StartNode脚本:

geth --networkid 63261 --mine --minerthreads 1 --datadir . --rpc --rpcport "8547" --port "30305" --rpccorsdomain "*" --nat "any" --rpcapi eth,web3,personal,net --unlock 0 --password "./node3password.sec" --ipcdisable --bootnodes "node1enode" console 2>> geth.log

在运行./BCNetworkName.json脚本之前,我已经初始化了我的每个节点,以指向我的私有网络的Genesis (D7)。geth --datadir ./NodeN init BCNetworkName.json

EN

回答 1

Ethereum用户

回答已采纳

发布于 2018-10-29 11:37:29

Bootnodes是一种廉价而有效的解决方案,可以帮助网络自我发现,但它们需要赶上适当的成因文件来隔离您的网络。

当您运行geth时,会从头开始重新创建成因块,然后它开始与块1中的对等点同步。

对于您的私有块链,您需要向所有节点提供这个文件,这样它们就可以彼此交谈,而不必运行外接程序。

您可以找到更多关于成因块这里的信息。

如果您熟悉docker,您可以检查 Github存储库,该存储库处理geth映像,以便运行专用网络。你可以学到很多关于同龄人自我发现的知识。

票数 3
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/61345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档