我正在尝试建立一个私人以太坊网络.我在两个不同的端口中在同一台机器(Windows 7)中启动了两个节点.
我无法将一个节点添加为另一个节点的对等节点.到目前为止我所做的就是这个.
启动具有相同网络ID,不同数据目录和不同端口的两个节点.
找到一个节点的节点地址.
> admin.nodeInfo.enode
"enode://5d272e8bee6d29dfff6313999a4a2c3d8109ae6f3eb103480f4536c0542549b9fa12a8d8ae5ebee9c4db55cab553693b04eedbc9b29f35bbc0af1956231b42b4@0.0.0.0:30303"
Run Code Online (Sandbox Code Playgroud)
将节点添加到另一个对等方.
> admin.addPeer("enode://5d272e8bee6d29dfff6313999a4a2c3d8109ae6f3eb103480f4536c0542549b9fa12a8d8ae5ebee9c4db55cab553693b04eedbc9b29f35bbc0af1956231b42b4@192.168.1.5:30303")
true
Run Code Online (Sandbox Code Playgroud)
但是,如果我检查第二个对等体的对等体信息,则表明它没有任何对等体.
> admin.peers
[]
Run Code Online (Sandbox Code Playgroud)
此外,我尝试通过添加节点地址将第一个对等体添加为第二个节点的静态对等体data/static-nodes.json,但仍admin.peers返回空列表.
有谁知道如何解决这一问题?
有很多原因可能会阻止节点同步。
最常见但难以找到的原因之一是设备的系统时钟不同步。即使时钟仅相差 12 秒,节点也不会同步。
来自https://github.com/ethereum/wiki/wiki/Mining:
难度动态调整,使得整个网络平均每 12 秒(即 12 秒出块时间)产生一个区块。这种心跳基本上强调了系统状态的同步,并保证除非攻击者拥有一半以上的网络挖矿能力(所谓的 51% 攻击),否则不可能维持分叉(以允许双花)或重写历史记录。
该问题可以通过在所有设备上使用相同的 NTP 服务器(最好在地理位置上靠近网络)来解决。
通过使用--networkid 12345命令行上的选项,将网络的网络 ID 设置为12345。请确保所有节点的设置相同,并且该值为随机正无符号32位数字(即1 ~ 2147483647)。不要使用12345,因为可能有太多人使用它。
以太坊默认使用 TCP和UDP 端口30303进行相互通信。请确保两者均 30303/TCP 未被 30303/UDP设备上的防火墙阻止。
| 归档时间: |
|
| 查看次数: |
3178 次 |
| 最近记录: |