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