# 在一台VPS上设置多个主节点

## 1.  获取支持IPv6的VPS服务器

您需要支持IPv6的VPS服务器才能在其上运行多个主节点。你可以从任意VPS提供商处获取。下面列出了一些：

* [Aruba](https://www.arubacloud.com/)
* [DigitalOcean](https://www.digitalocean.com/)
* [Hetzner](https://www.hetzner.de/)
* [Vultr](https://www.vultr.com)

选择具有以下规格的VPS服务器：

* 至少**1 GB的内存**
* 操作系统为**Ubuntu 16.04 LTS**
* **IPv6支持**（有的提供商默认提供，有的您必须另行选择）

为默认的“root”用户设置一个**强密码**（24个字符或更多）并保存。

选择VPS服务器的名称。&#x20;

服务商提供不同地区部署的VPS - 选择您喜欢的地区。这应该需要几分钟。

**保存VPS服务器的IP地址。**

另一个重要步骤是**找出您的服务器分配的IPv6地址**。 VPS提供商会为你分配一系列的IPv6地址。

您只需要保存第一个IPv6地址，因为我们将使用连续的地址。

IPv6地址如下所示：

```
2a00:6d40:0040:5C0b:0000:0000:0000:0001
```

连续的IPv6地址如下所示：

```
2a00:6d40:0040:5C0b:0000:0000:0000:0002
2a00:6d40:0040:5C0b:0000:0000:0000:0003
etc.
```

## 2. 登录和系统设置

下载[PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)，即我们将用来访问VPS的SSH客户端。选择适合您操作系统的版本（64位或32位）。

安装PuTTY并运行它。

您会看到这个屏幕：<br>

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXrp_Xb_hxXHL-Hu_5F%2F-LXrqpBHvrhBuWqDhTVB%2F1puttysetup.png?alt=media\&token=62111da5-83bf-44b7-ab99-7b22071ee7f9)

&#x5728;*“Host name (or IP address)”*（主机名称\[或IP地址]）框中输入您的**VPS IP地址**。

保持其他设置不变，&#x5728;*“Saved Sessions”*（保存的会话）框中输入您的会话名称，然后单&#x51FB;*“Save”*（保存）。您的VPS信息将保存，之后，您只需要双击会话名称即可连接到您的VPS。

通过单&#x51FB;*“Open”*（打开）或双击列表中的会话名称**连接到您的VPS**。当您第一次连接时，PuTTY会显示一个警告窗口：<br>

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXtSrTcgp4-BRqptAWt%2F-LXtU4kznUgL-QY5QhnS%2FPuttyalert.png?alt=media\&token=21e7cf40-7974-42d5-bb89-51827877e611)

单&#x51FB;*“Yes”*（是）继续连接，且让此窗口以后不显示。&#x20;

您你将看到要求您登录的PuTTY终端屏幕：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXrp_Xb_hxXHL-Hu_5F%2F-LXrqpBOSAJGOPLH-0Oa%2F2loginscreen1.png?alt=media\&token=d14fc61c-fa8e-4773-bf64-472b7e0ab177)

输入您的VPS用户名“root”，然后按回车键。之后系统会要求您输入密码。输入密码并再次按回车键。您现在将看到与此类似的屏幕：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LZ8ty-wSw0WXWY2M1am%2F-LXrqpBQGkl5pXoZuBIR%2F3loginscreen2.png?alt=media\&token=94da50c1-c038-4816-8643-996210b729c0)

**更新VPS服务器**：您的VPS需要更新。您可以使用以下命令运行它：

```
apt-get update -y && apt-get upgrade -y
```

{% hint style="info" %}
您可以通过**右键**将命令**粘贴**到PuTTY终端窗口中。只需将光标放在要粘贴文本的位置，然后点击鼠标右键即可。

您也可以使用鼠标从PuTTy终端**选择文字**，进行**复制**。
{% endhint %}

等待更新过程完成，您将返回到命令提示符：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXrp_Xb_hxXHL-Hu_5F%2F-LXrqpBV_mYPoUDYfQcO%2F6vpsafterupdate.png?alt=media\&token=6705b14f-5cad-4183-9c6a-c12537ac2b32)

## 3. 为您的主节点设置网络

{% hint style="warning" %}
某些VPS提供商允许您通过一个控制面板配置IPv6地址，因此不需要执行此步骤，你可以跳到**第4部分 - Nodemaster脚本安装**。

只需确保为您的主节点配置足够多的IPv6地址！
{% endhint %}

{% hint style="warning" %}
有的VPS提供商没有完全自动的IPv6配置，但允许您在VPS配置过程中启用IPv6。在这种情况下，interfaces文件中的第一个IPv6地址已经配置好，因此您需要在下面的配置过程中跳过第一个IPv6地址，然后添加缺少的地址。
{% endhint %}

现在开始**为您的主节点设置网络**。我们将使用Linux内置的文本编辑器Nano来完成这项工作。

输入以下内容：

```
nano /etc/network/interfaces
```

Nano将打开包含网络配置的interfaces文件：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXry0NyIMwKg8juY990%2F-LXrzzD5iudcTA9TsDbA%2F7nanostart.png?alt=media\&token=88b55c9e-2f55-4144-bc02-cd80b0317fe3)

现在您要决定要运行多少个主节点，因为您必须为它们配置足够多的IPv6地址。

需要先前VPS提供商分配给您的IPv6地址，即我之前让您保存的地址。

将以下文本复制到文本编辑器中（记事本即可），并**将“YourIPv6address”部分替换为您的IPv6地址**：

```
up ip addr add YourIPv6address/64 dev eth0
```

现在看起来应该类似于：

```
up ip addr add 2a01:6e60:0010:23fd:0000:0000:0000:0001/64 dev eth0
```

将包含IPv6地址的文本复制到剪贴板中。

现在切换到PuTTY并将光标移动到文字末尾的下一行。

确保它位于这行的开头，然后通过右键单击粘贴文本。按回车键进入下一行并再次粘贴文本。根据需要重复多次。

现在您的终端屏幕应该与此类似：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXsIXAQPgQTQJi9zHqr%2F-LXsIvTk9-ru2IxQpcQp%2F8nanoedit.png?alt=media\&token=c959cd09-6f08-418f-8efa-f91499f54b99)

请注意，此VPS提供商没有提供任何自动配置IPv6地址，因此我必须自己配置它们。

要退出Nano，请按CTRL + X，然后按Y和回车键确认并将更改写入文件。您将返回到命令提示符。

现在是时候**重启您的VPS**了。请输入：

```
reboot
```

然后按回车键。您将与​​VPS断开连接，所以请关闭此终端窗口，重新启动PuTTY并再次登录。

{% hint style="danger" %}
**不要跳过重启步骤，因为这对设置IPv6地址至关重要！**
{% endhint %}

现在我们需要测试IPv6地址是否处于活动状态，请输入：

```
ping6 <your IPv6 address>
```

如果地址处于活动状态，您将收到类似响应：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXsIXAQPgQTQJi9zHqr%2F-LXsKaf8BR_MsxOVuLhh%2F9pingtest.png?alt=media\&token=18f60bb4-4215-4816-97db-434893646114)

按CTRL + C取消ping。&#x20;

对所有主节点IPv6地址重复此过程。如果所有这些都响应您的ping，那么你就可以安装Nodemaster脚本了。

## 4. Nodemaster脚本安装

要将命令复制到VPS，请输入：

```
git clone https://github.com/NewCapital/nodemaster MNVPS && cd MNVPS
```

这会将Nodemaster脚本克隆到VPS上的**MNVPS目录**。&#x20;

成功克隆后，您会收到这个响应并返回到命令提示符：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXtsAaRhnlp1TS_B1Df%2F-LXtuu-RLvMzGvaptTM-%2F10gitclone.png?alt=media\&token=14a303de-7711-4b89-a7da-a260c3855ac0)

{% hint style="info" %}
您可以先针对更多的主节点设置VPS，然后在获得足够的抵押品后再启动它们。
{% endhint %}

开始实际安装，请输入（在此示例中，**4**是我们要安装的**主节点数量**）：

```
./install.sh -p twins -n 6 -c 4
```

该脚本将开始设置您的主节点并编译TWINS源文件。

**要有耐心，因为这需要一段时间（在我的情况下需要18分钟）。**

这是脚本设置完成VPS并编译完成TWINS源代码后看到的屏幕：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXsL3NHCwZaAr_9RVbb%2F-LXsWN4gHohHV1AiEoxN%2F11scriptdone.png?alt=media\&token=abff2824-b981-463d-87f3-a740dba1b166)

{% hint style="danger" %}
**不要运行**屏幕上列出的命令，因为您必须先编辑VPS上的各个主节点配置文件！
{% endhint %}

现在我们需要编辑主节点配置文件。它们位于/etc/masternodes目录中，因此请输入以下命令移至该目录：

```
cd /etc/masternodes
```

获取配置文件列表，请输入

```
ls
```

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXsi1fvG0ysRkIdL5Rh%2F-LXsj5zJnf9H2ba4mLkU%2F12configfilelist.png?alt=media\&token=db4404d6-6cea-415f-a5e7-0000f21ce603)

我们需要使用nano编辑文件并填写一些信息。为此，请输入：

```
nano twins_nX.conf
```

用相应的配置文件编号替换X。&#x20;

有一个重要字段：**主节点私钥**字段。我已在图片上标注出来：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXtX11RFtFtykUssYUn%2F-LXtXKI5_MIuIU2niqX6%2F8AnanoeditwIP.png?alt=media\&token=73601736-0e65-4ed6-aceb-73ca14749f59)

删除主节点私钥字段中“=”号后的文本并**粘贴您的主节点私钥**。&#x20;

现在按CTRL + X，然后按Y和回车键保存文件。&#x20;

重复此步骤，直到配置完所有的主节点。

## 5. 启动您的主节点

现在已准备好启动主节点守护进程（daemon）：&#x20;

**如果您配置好了脚本设置的所有主节点**，则只需输入

```
activate_masternodes_twins
```

您的主节点将会启动。

**如果您只配置了脚本设置的某些主节点**，则必须为每个主节点输入3个命令：

```
systemctl daemon-reload
systemctl enable twins_nX
systemctl restart twins_nX
```

将X替换为您配置的主节点的编号。

现在你要通过输入以下内容来**验证您的守护程序是否正在运行**：

```
systemctl status twins_nX.service
```

将X替换为要检查的主节点的编号。

成功运行的主节点将进行以下响应：

![](https://1656297259-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXpIa_undrOYkGQm38v%2F-LXsl4JU9SGS9R8hVjjG%2F-LXsnr62zTVOSxTZhyQS%2F14daemoncheck.png?alt=media\&token=2de972a6-87a2-46fd-b4c8-0ccdd9e16f9b)

按CTRL + C退出，并为所有的主节点重复这一过程。&#x20;

这样就完成了。现在您只需要从您的控制钱包中启动主节点。

## 6.  检查您的主节点

我们现在可以检查每个主节点的状态&#x20;

将X替换为您配置的主节点的编号

```
twins-cli -conf=/etc/masternodes/twins_n1.conf masternode status 
```

然后查看主节点是否已成功启动。&#x20;

你应该看到类似信息：`{`\
`“txhash” : “334545645643534534324238908f36ff4456454dfffff51311”,`\
`“outputidx” : 0,`\
`“netaddr” : “45.11.111.111:37817”,`\
`“addr” : “WmXhHCV6PjXjxJdSXPeC8e4PrY8qTQMBFg”,`\
`“status” : 4,`\
`“message” : “Masternode successfully started”`\
`}`

**在钱包中启动主节点后，还需要检查主节点浏览器。**

要执行此操作，用鼠标从终端窗口复制您的主节点钱包地址（上面的示例中，地址为`WmXhHCV6PjXjxJdSXPeC8e4PrY8qTQMBFg`），访问TWINS区块[浏览器](https://explorer.win.win/masternodes)的主节点部分，将地址复制在右上角的搜索框，找到您的主节点。

你的主节点状态应显示为“ACTIVE”（运行中）。

{% hint style="info" %}
启动主节点后，其状态将按以下顺序变化：

"ACTIVE" --> 启动后约2-3小时

"EXPIRED" --> 只显示几分钟

"REMOVED" --> 只显示几分钟

"ENABLED" --> 最终主节点将保持此状态， "Active" 时间将开始增加

注意：若您本地钱包中的主节点状态为“MISSING”（丢失），请检查其在[主节点浏览器](https://explorer.win.win/masternodes)中状态，它可能是 EXPIRED / REMOVED，这两种状态没有问题。
{% endhint %}

{% hint style="danger" %}
不要着急！收到第一次主节点奖励的时间通常是之后奖励时间的**2-3倍**。如果从钱包再次启动主节点，此计时器将重置为零。
{% endhint %}

&#x20;这便是设置主节点的步骤。恭喜！您已成功创建了主节点。
