使用 Docker 创建标准 Rocket Pool 节点

在本节中,我们将逐步介绍使用基于标准 Docker 的设置来安装 Rocket Pool Smartnode 堆栈的过程。 这将安装和配置运行完整节点所需的一切,包括:

  • Rocket Pool Smartnode 软件
  • 您选择的执行(原 ETH1)客户端,或连接到您已经管理的现有客户端
  • 您选择的共识(原 ETH2)客户端,或连接到您已经管理的现有客户端
  • 处理您的信标链验证职责的验证器客户端
  • (可选)用于捕获性能和健康指标的监控堆栈

您所需要做的就是告诉它您想运行什么!

注意

以下说明要求您使用系统的终端来输入和执行命令。 如果您通过 SSH 连接到节点机器,您已经在这样做了。 如果您在节点机器上并使用桌面 UI,您需要打开一个终端窗口来执行以下命令。 如果您不熟悉如何操作,请参阅您操作系统的说明来学习如何执行此操作。

流程概述

在高层次上,以下是安装 Rocket Pool 所涉及的内容:

  1. 下载 Rocket Pool 命令行界面(CLI)
  2. 使用 CLI 安装 Smartnode 堆栈
  3. 在终端中使用易于使用的 UI 配置 Smartnode 堆栈
  4. 完成!

开始之前

Warning

如果使用 Ubuntu,建议在安装 Rocket Pool 之前仔细检查操作系统安装时是否一同安装了 docker。

Ubuntu 安装程序从 snap 软件包管理器获取 docker,这将与 Smartnode 安装的 docker 版本冲突。

运行 snap list,并确保未安装 docker

例如,这是未安装 docker 的机器上的输出:

Name    Version        Rev    Tracking       Publisher   Notes
core20  20230308       1852   latest/stable  canonical✓  base
lxd     5.0.2-838e1b2  24322  5.0/stable/…   canonical✓  -
snapd   2.59.1         18933  latest/stable  canonical✓  snapd

以下是已安装时的输出:

Name    Version        Rev    Tracking       Publisher   Notes
core20  20230308       1852   latest/stable  canonical✓  base
docker  20.10.17       2746   latest/stable  canonical✓  -
lxd     5.0.2-838e1b2  24322  5.0/stable/…   canonical✓  -
snapd   2.59.1         18933  latest/stable  canonical✓  snapd

如果您在 snap list 输出中看到它,请务必使用以下命令将其删除:

sudo systemctl stop snap.docker.dockerd.service

sudo snap remove --purge docker

之后,建议您重启机器(sudo systemctl reboot

下载 Rocket Pool CLI

下载 CLI 的说明因您的操作系统而异。

注意

您必须在将用于 Rocket Pool 节点的机器上执行以下说明。 如果您没有使用直接连接到节点机器的键盘和显示器,您需要远程访问它(例如通过 SSH),并通过该远程连接在其上运行这些命令。

Linux
MacOS

在 Linux 上,首先创建一个新文件夹来保存 CLI 应用程序:

mkdir -p ~/bin

接下来,下载 CLI。 这取决于您的系统使用什么架构。

提示

如果您不知道您的 CPU 架构,可以运行以下命令来查找:

uname -m

此命令的输出将打印您的架构。 注意 x86_64x64amd64 相同。 注意 aarch64arm64 相同。

对于 x64 系统(大多数普通计算机):

wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-amd64 -O ~/bin/rocketpool

对于 arm64 系统:

wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-arm64 -O ~/bin/rocketpool

将其标记为可执行,以便它有权限运行:

chmod +x ~/bin/rocketpool

接下来,注销并重新登录(或关闭 SSH 并重新连接),或者简单地重启。 这是因为您保存 CLI 的路径(~/bin)可能尚未在系统的 PATH 变量(系统搜索可执行文件的位置列表)中。 注销并重新登录将把它放在那里。

现在,使用 --version 标志测试运行它。 您应该看到这样的输出:

rocketpool --version
rocketpool version 1.18.10

提示

如果您看到这样的错误消息,

-bash: /home/user/rocketpool: cannot execute binary file: Exec format error

这意味着您在上面下载了错误的版本。 请使用上面提示中的命令检查您的系统是 x64 还是 arm64,并下载相应的版本。 如果您的系统不是这两者之一,那么您将无法运行 Rocket Pool。

安装 Smartnode 堆栈

现在您已经安装了 CLI,可以部署 Smartnode 堆栈了。 这将使用 Docker、docker-compose 准备您的系统,并加载 Smartnode 文件,使它们准备就绪。 它实际上还不会运行任何东西;那将在稍后进行。

要部署 Smartnode 堆栈,您需要在节点机器上运行以下命令(通过本地登录或通过 SSH 等方式远程连接):

rocketpool service install

这将获取最新版本的 Smartnode 堆栈并进行设置。 您应该看到这样的输出(在最后将打印最新版本的一些发行说明的上方):

如果没有任何错误消息,则安装成功。 默认情况下,它将被放入您用户帐户主文件夹内的 ~/.rocketpool 目录中。

注意

请注意,Smartnode 安装程序无法在所有平台上自动安装 dockerdocker-compose。 如果您在安装过程中收到这样的错误消息:

Automatic dependency installation for the Mint operating system is not supported.
Please install docker and docker-compose manually, then try again with the '-d' flag to skip OS dependency installation.
Be sure to add yourself to the docker group with 'sudo usermod -aG docker $USER' after installing docker.
Log out and back in, or restart your system after you run this command.

那么您只需手动安装这两个东西。

Docker 在此处提供常见的安装说明

Docker-compose 在此处提供常见的安装说明

安装完成后,请确保授予您的用户帐户使用 Docker 的权限:

sudo usermod -aG docker $USER

最后,使用 -d 标志重新运行安装程序以跳过 Docker 安装:

rocketpool service install -d

在此之后,注销并重新登录或重启您的 SSH 会话以使设置生效。

完成此操作后,Smartnode 堆栈将准备就绪可以运行。

配置 Docker 的存储位置

默认情况下,Docker 会将其所有容器数据存储在操作系统的驱动器上。 在某些情况下,这不是您想要的。

注意

如果您对此默认行为满意,请跳到下一节。

要执行此操作,请以 root 用户身份创建一个名为 /etc/docker/daemon.json 的新文件:

sudo nano /etc/docker/daemon.json

这最初将为空,这很正常。添加以下内容:

{
  "data-root": "<your external mount point>/docker"
}

其中 <your external mount point> 是您的其他驱动器挂载到的目录。

Ctrl+O, Enter 保存文件,按 Ctrl+X, Enter 退出编辑器。

接下来,创建文件夹:

sudo mkdir -p <your external mount point>/docker

现在,重启 docker 守护进程以使其获取更改:

sudo systemctl restart docker

之后,Docker 将在您所需的磁盘上存储其数据。

配置 Smartnode 堆栈

安装过程的下一步是对节点进行初始配置。 继续到配置 Rocketpool部分以获取此过程的演练。