以太坊开发文档05 - 本地集群
本页介绍如何设置本地节点集群,建议如何使其成为私有节点,以及如何在eth-netstat网络监视应用程序上连接节点。完全控制的以太坊网络作为网络集成测试的后端(核心开发人员处理与网络/区块链同步/消息传播等相关的问题或者DAPP开发人员测试多块和多用户场景)是有用的。
我们假设您可以geth
按照构建说明进行构建
设置多个节点
为了在本地运行多个以太坊节点,您必须确保:
- 每个实例都有一个单独的数据目录(
--datadir
) - 每个实例运行在不同的端口上(eth和rpc)(
--port and --rpcport
) - 在集群的情况下,实例必须彼此了解
- ipc端点是唯一的或ipc接口被禁用(
--ipcpath or --ipcdisable
)
你启动第一个节点(让我们使端口明确,禁用ipc接口)
geth --datadir="/tmp/eth/60/01" -verbosity 6 --ipcdisable --port 30301 --rpcport 8101 console 2>> /tmp/eth/60/01.log
我们使用控制台启动节点,以便我们可以获取实例的enode url:
> admin.nodeInfo.NodeUrl
enode://8c544b4a07da02a9ee024def6f3ba24b2747272b64e16ec5dd6b17b55992f8980b77938155169d9d33807e501729ecb42f5c0a61018898c32799ced152e9f0d7@9[::]:30301
[::]
将被解析为localhost(127.0.0.1
)。如果您的节点在本地网络上,请检查每台主机,并ifconfig
在Linux和MacOS上找到您的IP地址:
$ ifconfig|grep netmask|awk "{print $2}"
127.0.0.1
192.168.1.97
如果您的同事不在本地网络上,则需要知道您的外部IP地址(使用服务)来构建enode网址。
现在,您可以启动第二个节点:
geth --datadir="/tmp/eth/60/02" --verbosity 6 --ipcdisable --port 30302 --rpcport 8102 console 2>> /tmp/eth/60/02.log
如果你想把这个实例连接到之前启动的节点上,你可以把它作为一个对等的控制台来添加admin.addPeer(enodeUrlOfFirstInstance)
。
您可以通过在geth控制台中输入来测试连接:
> net.listening
true
> net.peerCount
1
> admin.peers
...
本地群集
作为上述的扩展,你可以很容易地产生一个本地节点集群。它也可以被编写,包括挖掘所需的账户创建。请参阅gethcluster.sh
脚本,以及README文件的用法和示例。
专用网络
如果节点没有连接到主网络节点,则以太网网络是专用网络。在这种情况下,私人只意味着保留或孤立,而不是保护或安全。由于节点之间的连接只有在对等体具有相同的协议版本和网络标识时才有效,因此可以通过将其中任何一个设置为非默认值来有效隔离您的网络。我们建议使用语义networkid
命令行选项。它的参数是一个整数,主网络有id
1(默认)。因此,如果您提供自己的自定义网络ID与主网络不同,则您的节点将不会连接到其他节点并形成专用网络。
监视你的节点
本页介绍如何使用以太坊(集中式)网络状态监视器(有时称为“eth-netstats”)来监视节点。
本页或本自述文件 介绍如何为(私有或公用)本地群集设置自己的监视服务。
- 上一篇: 以太坊的Java客户端使用
- 下一篇: 以太坊开发文档07 -挖矿