本文深入探讨了Qtum所有节点运行时最感兴趣的一个问题:Qtum节点如何连接其他对等节点,流程是怎样的,连接不上时如何排除故障?对于大多数应用程序来说,家庭网络使用起来足够简单,但是当您遇到Qtum节点的问题时,您打算怎么办呢?路由器-防火墙-杀毒软件系统内置了很多保护功能,可以保证你的网络安全和正常运行。然而,运行区块链对等网络可能会与这些内置的保护措施相冲突。
比如你的节点发出“好友请求”,试图与其他节点连接。它们确认请求者可以与您的节点聊天。您的节点也可以接收来自其他节点的“朋友请求”。我们将了解什么是Qtum全节点,Qtum网络和对等连接如何工作,以及如何设置可能阻止这些通信的防火墙和路由器。
我们将在端口和网络协议上花一些时间,并将涉及与“netstat”网络状态相关的工具。我希望我们完成这些工作后,你会知道你的Qtum节点是如何愉快地与世界各地的节点交换信息的。
Qtum主网性能
根据我的计算,在Qtum主网连续稳定运行中,Qtum全网权重约为20.800.00。计算的依据是一个余额为20.800.000的稳定采矿地址获得了2022年Suoyi.com区块奖励的8.9%。
2022尚力财经小编
设置杀毒软件
由于诸多历史原因,很多杀毒程序在下载Qtum wallet安装文件时会误报病毒错误,并隔离或删除这些下载。要解决此问题,请添加防病毒程序的白名单。如有问题,请从https://github.com/qtumproject/qtum/releases Qtum GitHub网站下载,并使用验证文件进行验证。
Qtum对等连接
Qtum节点(核心钱包)最多可连接125个对等点。前8个连接仅出站:连接到其他8个节点。如果路由器和家庭网络的端口3888打开,节点将接受来自对等体9到125的入站连接。值得注意的是,无论挖矿节点连接8个节点还是125个节点,都不会影响其挖矿奖励。具有8个以上对等连接的节点支持连接到网络的新节点,并将下载块来同步这些新节点。具有8个出站连接的节点无法做到这一点。现在我们已经绕过了防病毒程序并安装了钱包,我们可以启动这个节点并开始连接到其他节点。
2022尚力财经小编
全节点连接
在了解关于Qtum对等连接如何工作的细节之前,我们先来看看所有节点的作用、挖掘钱包以及出站连接和入站连接的问题。Qtum的所有节点都连接到Qtum的对等网络上,对等网络将整个区块链同步到本地存储,并实时验证和传输每个块和事务。Qtum节点使用这种验证来保护网络,然后将块/事务转发给其他节点。QTUM的所有节点可以额外持有Qtum和mine以赢得区块奖励。这些所有的节点有助于保护网络,并有机会赢得块奖励。
对于Qtum来说,所有的节点总是钱包,但钱包不总是所有的节点。具有入站连接的节点在Qtum网络上有特殊的功能:它们允许新节点连接到网络,并将它们以前保存的块下载到这些新节点上。对于有入站连接的节点,我们应该特别感激。没有它们,网络就无法通过添加新节点来增长。正如我们将在接下来看到的,节点允许主网络上的入站连接的能力取决于从路由器到归属网络的端口3888,因此这些入站朋友请求实际上可以到达节点。
路由器和家庭网络
大多数家庭网络通过互联网服务提供商(ISP)提供的网络接入设备连接到互联网,这些设备可以是电缆调制解调器、DSL调制解调器或其他网络接口设备。 调制解调器通常有一个内置路由器,其工作是提供从ISP提供的单个公共互联网地址到家庭网络上多个内部IP地址的地址转换。这些内部IP地址通常由UPnP(通用即插即用)等协议自动分配。路由器会将一个外部IP地址映射到家庭网络中连接的多台设备的内部IP地址,这一点很重要。
Netstat工具
在本节中,我们添加一些实用的网络程序和诊断技术。通常,您的家庭网络允许自动同步Qtum Festival 2022中的小编辑点,但如果没有,这些工具可能有助于消除错误。为了监控你的家庭网络,netstat(网络状态)程序是一个很好的开始。它内置在Mac和Windows中,您可能需要在Linux上安装它(apt-get install net-tools)。“netstat -n”命令将以数字形式显示网络地址和端口,显示一个节点连接到端口3888上的远程节点:
addnode命令
如果您的新节点没有连接到对等节点,则需要使用“addnode”命令来帮助。你可以告诉节点发送“朋友请求”到一个特定的IP。但是应该用哪些IP呢?addnode命令的一个很好的对等IP地址来源是coinexchange.io,它列出了来自Qtum节点的“getpeerinfo”数据。要在此站点中使用IP地址,请通过调试窗口中的命令行输入它,例如addnode123.45.67.8933603888add。对addnode命令的正确响应是“null”,然后您的节点将尝试连接到对等IP地址一两分钟。您可以尝试手动添加5或10个对等连接。
启动时连接
在本节中,我们将学习节点如何在启动时建立连接,并使用netstat监听网络,查看节点如何连接。我们的netstat命令是“netstat -an 30”,这意味着所有连接的和监听的端口每30秒以数字格式显示一次。当启动一个节点时,有几种方法可以找到要连接的对等点。如果该节点以前已经运行过,它会将IP地址和时间保存在peers.dat文件中。
如果节点是新的,或者在peers.dat文件中找不到一些好的IP地址,它将向DNS服务器查询当前IP地址的列表。最后,您可以手动输入IP地址,尝试使用“addnode”命令。第一,我们在安装的时候,把节点设置成全局启动,不使用peers.dat文件中的历史(只需重命名peers.dat文件,让节点找不到)。接下来的
是一个新节点寻找其他节点的消息序列。此节点不使用以前“朋友”的peers.dat文件。在半个小时的过程中,它会尝试多个IP地址,找到两个对等体进行连接:
Qtum核心钱包有一个文件包含了所有的“好友请求”,即peers.dat文件。用peers.dat文件启动同一个节点(把之前的文件名改回“peers.dat”)可以让钱包在12分钟内连接10个对等点。下图是在wallet中寻找新朋友(没有peers.dat文件——如上图)和只是联系以前的朋友(使用peers.dat文件)的区别:
Debug.log文件用于网络事件
Qtum节点现在准备好了。我们将通过设置调试来设置它的特写镜头.这是在启动wallet时由debug=net开关完成的:c : program files qtumqtum-Qt . exe-debug=net根据您的操作系统调整该命令。使用此选项,节点将记录上述文章内容就是网络活动的所有详细信息。对于显示如何建立连接的简单列表(更完整的序列在接下来的参考文献7中给出),日志显示:
(1)启动后,我们的节点根据peers.dat文件尝试连接多个IP。十天前它看到了59.189.111.143节点。但是现在连不上。
(2)我们的节点连接到DNS种子服务器以获取一些最近的IP地址。
(3)我们的节点正在尝试连接到地址35.226.31.206。将尝试第6个节点。
(4)我们的节点向35.226.31.206的节点发送版本消息(软件版本、块号和时间基准)。版本消息是“好友请求”。远程节点将使用其自己的版本消息进行响应。
(5)节点交换verack消息(版本确认)以确认连接。现在他们是好朋友,可以开始聊天了。我们的节点将从远程节点请求额外的IP地址,并发送其他“朋友请求”。
(6)我们的节点将其最新的块(它离线4个块)发送到35.226.31.206,并请求下载该块以赶上进度。
(7)我们的节点开始从节点6接收块。请注意时间标记。在节点启动后,需要45秒来尝试连接到节点6(对等节点1到节点5未连接),然后等待一秒来完成连接(verack消息)并开始下载块。