Qtum节点是如何实现全球的通信与协作的
扫描二维码
随时随地手机看文章
4月12日,Qtum量子链全节点激励计划发布,瓜分百万大奖!活动正式启动截止目前为止奖励持续发出了32个,社区热度持续不减,但对于Qtum全节点如何去连接,为什么家庭网络无法实现连接Qtum全节点?包括相关的端口设置却知之甚少,因此奉上此篇社区教程帮助你更深入了解。在参加活动收获奖励的同时,也让社区的朋友能够成为Qtum技术专家。
传统中心化的应用程序有时仅需家庭网络就可以很好的使用,但Qtum全节点设置会出现很多的状况,例如你的防火墙、路由器、病毒软件都会为自动阻止你。
随时打开社交APP,你可以随时向陌生人发起好友请求,本文就以 “好友请求”为例来讲解Qtum节点的连接,就容易理解Qtum的节点是如何实现网络协作的。
那么,究竟什么是Qtum全节点,节点网络是如何相互连接的?如何设置这些内置的防火墙和路由器?
为了解答以上的问题,我们有必要先了解端口和网络协议基本概念,熟悉“netstat”这个工具。Qtum节点(核心钱包)会与多达125个节点相连接。前8个连接仅为出站连接:节点向外连接到其他8个节点。如果打开路由器和家庭网络的端口3888,节点将接受其他9到125个节点的接入连接。具有接入连接的节点会支持连接到网络的新节点,并会上传区块从而同步那些新节点。具有8个出站连接的节点做不到这一点。
1. 节点、钱包、共识
开始之前,先回顾下节点、钱包和共识在区块链中的作用。
· 节点:在计算机网络中,节点是连接到网络的端点应用程序,为网络提供数据接口。Qtum全节点会接入到Qtum网络,将区块链同步到本地存储空间,并实时验证。Qtum节点可以增强具有这些功能的网络的安全性,并有助于提高对该类网络效率。
· 钱包:钱包持有用于管理交易、显示账户余额等的私钥。轻钱包(移动钱包、网络钱包、硬件钱包等)具有此功能,但它们并不是全节点,因为它们不会管理区块链账本,也不会像全节点那样对所有交易和区块进行处理。相反,这些轻钱包会通过调用API连接到运行了全节点的主服务器上。
· 共识: “共识”就是一个协议达成的过程,用于确定下一个生产区块的节点。所有矿工(或委托人)都遵循相同的共识协议。
那么你会意识到Qtum核心钱包具有以下三个功能:节点、钱包、共识,并且核心钱包应用程序可以通过以下方式运行:
1. 仅一个节点(没有QTUM)
2. 一个节点和一个钱包(有QTUM,但没有被委托)
3. 一个节点、钱包和共识(有QTUM并且正处于委托状态)
2. Qtum 节点
根据设计,Qtum节点的前8个连接仅为外联。你发起了好友请求,并与其他节点连接。这种“外联”概念可能会让人觉得困惑;节点总是与对等节点进行双向通信,但对此的解释是对于前8个连接,你的节点会主动向其他节点发起连接从而来启动连接。
超过8个对等节点的连接都将是传入连接(除非你使用的是“addnode”命令,该命令始终会发起好友请求)。同时,你的节点将接受来自其他节点的连接请求-远程节点正在发送“好友请求”。具有传入连接的节点在Qtum网络上具有特殊功能:它们允许新节点接入网络,并将之前存储的区块上传到这些新节点。正是因为它们,网络就不能随着新的节点而扩大。
下面我们将看到,节点接收传入连接的能力取决于路由器和家庭网络是否打开了端口3888,以便这些传入的好友请求能够到达节点。
3. 路由器和家庭网络
大多数的家庭网络是通过互联网服务提供商(ISP)提供的网络访问设备连接到互联网的,该设备可以是电缆调制解调器、DSL调制解调器或其他网络接口设备。调制解调器通常有一个内置的路由器,路由器提供从单个ISP到家庭网络上多个内部IP地址的地址转换。这些内部IP地址通常由UPNP(通用即插即用)等协议自动分配,需要了解的是路由器会将单个外部公共IP地址映射到多个内部专用IP地址从而使得设备能接入家庭网络。
让我们来看一个在家庭网络上运行的Qtum节点的简化网络:
ISP为这个宽带客户提供的公共IP地址是123.24.67.89,互联网上任何地方的计算机都可以向这个地址发送消息。运行Qtum节点的计算机A的内部网络IP地址为192.168.1.10,运行网络浏览服务的计算机B的内部网络IP地址为192.168.1.11,计算机C也是如此。
若进行通讯,路由器知道如何将一个网页请求发送回计算机B,以及将一个Qtum节点传出的节点请求返回到计算机A。但是在Qtum节点与具有这些传出的对等节点请求的前8个节点连接之后又会发生什么呢?
对于传入的对等节点的请求,路由器并不能够智能地自动将这些好友请求路由到计算机A中的节点。网络上的其他对等节点可以看到IP地址123.45.67.89正在运行着一个Qtum节点,它们会发送好友请求(通过端口3888),但路由器不知道是否要将该消息发送到计算机A、B或C。好友请求会被忘记,因此无法建立传入连接,计算机A中的Qtum对等节点永远都交不到任何新朋友。
IP地址上的端口后缀将传入消息导向特定应用程序。例如,你的网络可以接收发送到端口80或端口101或端口3888的消息。要将传入的好友请求发送到节点,我们需要开放计算机A的端口3888来使用端口转发功能。
在这里我们需要,要打开端口3888,我们将路由器配置为将端口3888的任何流量都转发到IP地址192.168.1.10上,从而到达计算机A中的节点。根据你的网络设置,你还可以从钱包中映射端口3888:选择设置--选项-网络-使用UPnP来映射端口。
4. 安全性说明
网络上总是存在风险的,并且不能100%保证安全性。请理解端口是如何进行转发的,并确定它是否适合于你的网络和安全配置。为了提高安全性,你可以使用VPN或TOR连接,并更新你的的所有路由器、防火墙、操作系统和钱包软件。最大程度的保证加密货币的安全性的方式就是使用是硬件钱包或离线的冷钱包。
5. 端口转发
要设置端口转发,你需要登录到路由器,首先,让我们获取路由器在网络上的IP地址。在待运行节点的计算机上(本例中的计算机A),打开Web浏览器并在URL地址栏中输入地址192.168.1.1(路由器IP)。如果这样打不开路由器的登录页面,请打开计算机上的终端或命令行窗口,然后在Mac/Linux上输入“ifconfig”或在Windows上输入“ipconfig”。你将看到家庭网络上的设备列表。查找“默认网关”行从而获取路由器的IP地址:
接下来,你需要登录到路由器。如果你之前从来没有更改过帐户名和密码,你可以在路由器文档中查找信息,也可以在显示默认路由器密码的网站中获取。
网站portforward.com有流程和屏幕截图,教你如何在数百个路由器上配置端口转发(只需点击它们的广告),过程基本上就是登录到你的路由器,找到设置端口转发的部分,然后填写一个表,将TCP输入端口3888分配给节点的本地IP地址。
6. Canyouseeme.Org
可以使用网站canyouseeme.org来确认端口3888是否已经打开。这个网站的运行机制是将“好友请求”发送到本地计算机上的特定端口(正在运行canyouseme网页的浏览器所在的计算机)。确保Qtum节点正在运行中,以便它能够响应请求。如果端口已经打开并且节点正在运行,则该网站会返回下面这条提示消息:
7. Qtum-Qt钱包对等节点信息
你可以使用帮助-调试窗口…-对等节点 来查看Qtum-Qt钱包上的对等节点的连接情况。在这里,你可以看到出站对等节点连接旁边有一个小的“向下箭头”,在入站对等节点连接旁边有一个小的“向上箭头”。或者只需单击对等节点来查看详细信息,信息显示如下:
通过使用带有命令行接口的服务器钱包qtumd,你可以通过输入命令“getconnectioncount”和“getpeerinfo”来查看对等节点连接情况。
8. Netstat实用程序
在本节中,我们介绍了一些网络实用程序和诊断技术。通常情况下,家庭网络允许Qtum节点自动开始同步,但如果不能自动同步的话,这些工具可能有助于排除故障。
要想监控家庭网络,推荐使用netstat,它可以使用程序通过命令提示符来运行此工具。Mac和Windows系统是内置该程序的,不过在Linux上你可能需要手动安装它(#apt get install net tools)。参考文献2中给出了netstat选项列表。
“netstat -n”命令将以数字的形式显示网络地址和端口,它会列出连接到远程节点端口3888上的节点。这里的前3行显示了连接到节点端口3888的传入连接,其余8行显示了路由器分配的随机端口号的传出连接,因此它可以知道哪个本地计算机应该得到响应:
参考材料:
1. 只有输出连接的节点才有助于网络的运行,但由于不能接受新的对等节点或上传区块来帮助新的对等节点同步区块链
2. netstat程序