准备操作系统
如前一节所述,有许多不同的 VPS 和云提供商。 为所有这些提供商编写指南有些不切实际,但在本节中,我们将介绍为托管在 Amazon Web Services 上的虚拟机准备的典型工作流程。 具体来说,我们将介绍如何选择适当的虚拟硬件配置以及如何为 Rocket Pool 准备操作系统。 一旦您熟悉了他们的生态系统,您应该能够推断如何将这些步骤应用于任何提供商。
创建 EC2 虚拟机
第一步是创建 AWS 账户(如果您还没有账户的话)。 按照该链接中提供的说明或使用现有账户登录,您最终将进入管理控制台仪表板:
接下来,单击屏幕右上角的下拉菜单以选择您希望服务器实际驻留的地理区域。 服务器创建后无法在区域之间移动,因此您需要确保在实际创建服务器之前对当前选定的选项感到满意。
现在,单击工具栏中的 Services。 转到 Compute 部分并选择 EC2。 您的仪表板应该更改为类似于此的视图:
单击橙色的 Launch Instance 按钮,然后从选项列表中选择 Launch Instance 以创建新机器。 您将看到 Amazon Machine Images 的市场。 每个镜像都代表一个具有预安装操作系统和一些其他有用软件组件的机器的特定快照。
对于 Rocket Pool 节点,我们建议您使用 Ubuntu Server 24.04 LTS (HVM) 镜像。
接下来,您必须选择一个 Instance Type。 这决定了您的机器将拥有哪些虚拟硬件资源。
在撰写本文时,以下是不同选项提供的内容:
硬件要求在很大程度上取决于您计划运行哪个共识客户端 - 例如,Nimbus 本身需要不到 1GB 的 RAM,因此在 t2.large 实例上运行它是完全合理的。 对于更占用 RAM 的客户端,您可能需要选择 t2.xlarge 实例以获得额外的空间。
在决定实例类型之前,您可能需要查阅选择您的 ETH 客户端部分,以便确保您选择的实例类型支持您想要的客户端。
做出选择后,单击 Next 按钮。 Instance Details 部分的默认设置都很好,因此保持不变并单击 Next。
当您到达 Add Storage 部分时,您将为系统创建一个新的虚拟硬盘。 由于云的强大功能,这可以稍后扩展,因此现在获得正确的数字并不是绝对关键的。 但是,为了您自己的安心,您应该将大小更改为以下数字之一:
- 如果您只是在Hoodi 测试网络上试用 Rocket Pool,请使用至少 100 GiB。
- 如果您要在以太坊主网络(mainnet)上使用此节点,请使用至少 1 TiB(最好是 2 TiB)。
保留其他设置的默认值并单击 Next。
在 Add Tags 步骤中,您应该单击 click to add a Name tag 按钮并为其提供一个易于记住的名称,以便以后用于识别服务器;如果您需要灵感,可以使用 Rocket Pool Smartnode 之类的名称。 完成后单击 Next。
在 Security Group 部分,保持选中 Create a new security group 选项。 输入名称和描述,例如 Smartnode 和 Smartnode Group。 删除表中的所有现有规则并添加以下规则:
这将允许您通过 SSH(命令行终端)从笔记本电脑或台式机远程连接到服务器。 它还将允许执行客户端和共识客户端连接到以太坊网络上的其他节点。
对于 SSH 访问,这仅在您拥有静态公共 IP 地址时才有效。 您可能需要向 ISP 请求此功能,因为他们中的许多人使用动态 IP 系统并偶尔更改您的公共地址。 如果您无法获得静态地址,则每次地址更改时,您都必须转到 AWS 控制台并使用新的 IP 地址更新此设置。
安全组表现在应该类似于:
现在,检查所有实例详细信息以确保您对它们感到满意,然后在满意时单击 Launch。
当出现 SSH key pair 提示时,选择 Create a new key pair。
给它一个易于记忆的名称,例如 Smartnode Key,然后单击 Download Key Pair。
将这些文件存储在安全的地方,例如 ~/.ssh/(或 Windows 上的 C:\Users\[your username]\.ssh\),您的其他密钥通常驻留的地方。
此密钥对包含您将用于 SSH 到您的机器的私钥。 如果有人获得此密钥,他们将可以完全访问您的节点 - 包括您的 Rocket Pool 节点钱包及其中的所有代币。 您必须始终保持此文件的安全。
接下来,单击 Launch Instance 以创建您的新虚拟服务器。 当出现通知时,单击 View Instances 以转到您的服务器列表。 您将在那里看到您的 Rocket Pool 节点以及有关其配置和状态的一些详细信息。
最后,为您的机器分配一个 Elastic IP Address - 您可以将其视为 AWS 独有的静态 IP 地址。 您的节点将始终可在此地址访问,因此您始终可以使用相同的 SSH 命令连接到它。
转到左侧导航面板中的 Network and Security 并单击 Elastic IPs。 现在,单击 Allocate Elastic IP Address。 默认设置都很好,因此只需单击提示并在完成后返回列表即可。
接下来,在列表中选择新地址。 单击其上方的 Actions 按钮,然后单击 Associate Elastic IP Address。 将资源类型保持设置为 Instance,然后从列表中选择您刚刚创建的 Rocket Pool Smartnode 实例。 单击 Associate 将地址分配给您的虚拟服务器。 现在,如果您查看地址的 Associated Instance ID 列,您可以验证它已分配给您的机器。
访问机器
要访问机器,请在 Linux 或 macOS 上打开一个新终端(在 Windows 上使用 Powershell)并键入以下命令:
如果您将密钥存储在 .ssh 文件夹中,这将使用您在设置期间生成的私钥对自动向机器进行身份验证 - 无需用户名,无需密码。
到达这里后,您就可以完全通过终端访问系统了。
设置交换空间
在大多数情况下,如果您仔细选择执行客户端和共识客户端以及实例类型,您应该不会耗尽 RAM。 话虽如此,增加一点也无妨。 我们现在要做的是添加所谓的交换空间。 本质上,这意味着我们将使用 SSD 作为"备用 RAM",以防万一发生可怕的事情并且您的服务器耗尽了常规 RAM。 SSD 的速度不如常规 RAM,因此如果它达到交换空间,它会减慢速度,但它不会完全崩溃并破坏一切。 将此视为您(很可能)永远不需要的额外保险。
创建交换文件
第一步是创建一个将充当交换空间的新文件。 决定您要使用多少 - 一个合理的开始是 8 GB,因此您有 8 GB 的正常 RAM 和 8 GB 的"备用 RAM",总共 16 GB。 为了超级安全,您可以将其设置为 24 GB,这样您的系统就有 8 GB 的正常 RAM 和 24 GB 的"备用 RAM",总共 32 GB,但这可能有点过度了。 幸运的是,由于您的 SSD 有 1 或 2 TB 的空间,为交换文件分配 8 到 24 GB 是微不足道的。
为了本演练的目的,让我们选择一个不错的中间值 - 比如说,16 GB 的交换空间,总 RAM 为 24 GB。 在我们继续时,只需替换您想要的任何数字即可。
输入此命令,这将创建一个名为 /swapfile 的新文件并用 16 GB 的零填充它。
要更改数量,只需将 count=16 中的数字更改为您想要的任何值。请注意,这需要很长时间,但没关系。
接下来,设置权限,以便只有 root 用户可以读取或写入它(出于安全考虑):
现在,将其标记为交换文件:
接下来,启用它:
最后,将其添加到挂载表中,以便在服务器重启时自动加载:
在末尾添加一个如下所示的新行:
按 Ctrl+O 和 Enter 保存,然后按 Ctrl+X 和 Enter 退出。
要验证它是否处于活动状态,请运行以下命令:
您的输出顶部应该看起来像这样:

如果标有 Swp 的最后一行中的第二个数字(/ 后面的数字)为非零,那么您就已经设置好了。
例如,如果显示 0K / 16.0G,则您的交换空间已成功激活。
如果显示 0K / 0K,则它不起作用,您必须确认您正确输入了前面的步骤。
按 q 或 F10 退出 htop 并返回终端。
配置交换度和缓存压力
默认情况下,Linux 会急切地使用大量交换空间来减轻系统 RAM 的压力。 我们不希望这样。我们希望它使用所有 RAM,直到最后一秒才依赖交换空间。 下一步是更改系统的"交换度",即它使用交换空间的急切程度。 关于将此值设置为什么值有很多争论,但我们发现值 6 效果很好。
我们还想降低"缓存压力",它决定服务器删除其文件系统缓存的速度。 由于我们的设置将有大量备用 RAM,我们可以将此设置为"10",这将在内存中保留缓存一段时间,从而减少磁盘 I/O。
要设置这些,请运行以下命令:
现在,将它们放入 sysctl.conf 文件中,以便在重启后重新应用:
在末尾添加以下两行:
然后像之前一样保存并退出(Ctrl+O,Ctrl+X)。
至此,您的服务器已启动并运行,准备好运行 Rocket Pool! 继续阅读选择您的 ETH 客户端部分。