检查更新

节点操作者的职责之一是确保系统安装了最新的安全补丁。 自动更新虽然方便,但可能会干扰节点操作,因此手动运行更新可能更可取。 无论哪种情况,您必须确保机器定期打补丁!

注意

大多数情况下,更新不需要系统停机超过几分钟。 您可能担心这样的停机时间会对信标链余额产生负面影响。 请放心,离线这么短的时间的惩罚完全可以忽略不计

您错过的每次证明都会使您受到略低于成功证明所赚取金额的惩罚。 根据经验,如果您离线一小时,在重新上线一小时后就会赚回来。

另请注意,短时间离线绝对不可能罚没。 罚没仅在您攻击网络时发生,而离线维护不算攻击网络。

请保持系统更新 - 不要担心停机惩罚!

更新操作系统

您应该经常检查操作系统的包管理器或更新服务,以确保快速应用任何新的重要安全补丁。 具体说明因每个操作系统而异,可以在系统文档中找到,但这里有一些示例。

Ubuntu
MacOS

在终端中,输入以下内容:

sudo apt update

这将访问包服务器并检查是否有任何已安装的包有新版本可用。 如果有可用更新,输出将如下所示:

Fetched 3974 kB in 2s (1641 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
12 packages can be upgraded. Run 'apt list --upgradable' to see them.

您可以使用以下命令安装更新:

sudo apt dist-upgrade

这将显示即将更新的包列表,如果总安装大小足够大,它将显示大小并提示您确认接受:

12 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 51.3 MB of archives.
After this operation, 52.2 kB of additional disk space will be used.
Do you want to continue? [Y/n]

确保您有足够的可用空间来执行此操作,然后按 yEnter 开始更新过程。

进度条完成并返回到终端提示符后,运行以下命令清理刚刚替换的包的任何旧版本:

sudo apt autoremove

接下来,检查系统是否需要重启:

cat /var/run/reboot-required

如果上述命令打印 No such file or directory,则不需要重启,您可以跳过下面的步骤。

但是,如果命令打印 *** System restart required ***,那么您应该在能够重启时重启机器以完成更新的应用:

sudo reboot

Rocket Pool 将优雅地关闭,并在系统重启后自动启动。

更新 Smartnode 堆栈

Rocket Pool 偶尔会发布新版本的 Smartnode 堆栈。 更新可能包含 CLI 或 Rocket Pool Docker 容器的新版本,以及执行层和共识层客户端的新版本。

了解新版本的最一致方法是订阅 Rocket Pool Discord 服务器;它们将始终发布在发布频道中,您将收到通知。

注意

请注意,运行 apt update 不会更新节点软件。 必须使用以下步骤手动完成。

提示

完成 Smartnode 升级后,Grafana 仪表板仍会指示有可用更新。 当系统下次自动检查更新时,它将在一天内自动清除。

如果您想在更新后立即清除它,只需运行: sudo apt update
提示

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

uname -m
此命令的输出将打印您的架构。 请注意,x86_64x64amd64 相同。 请注意,aarch64arm64 相同。

升级步骤取决于节点使用的模式。从以下选项中选择:

Linux(Docker 或混合模式)
Linux(原生模式)
macOS(Docker 或混合模式)

停止 Rocket Pool 服务:

rocketpool service stop

下载新的 Smartnode CLI:

对于 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

现在运行安装命令:

rocketpool service install -d

-d 标志告诉它忽略系统依赖项(如 Docker),因为您已经有它们了。

如果您想查看更改内容,请打开设置管理器 - 审核页面将显示新内容:

rocketpool service config

完成后,再次启动 Rocket Pool:

rocketpool service start

最后,检查版本以确保 CLI 和 Smartnode 堆栈都是最新的:

rocketpool service version

输出应该是这样的:

Your Smartnode is currently using the Hoodi Test Network.

Rocket Pool client version: 1.5.0
Rocket Pool service version: 1.5.0
Selected Eth 1.0 client: Geth (Locally managed)
Image: ethereum/client-go:v1.10.21
Selected Eth 2.0 client: Lighthouse (Locally managed)
Image: rocketpool/lighthouse:mevboost-5ee3bc5

客户端和服务都应与新发布版本匹配。

手动更新执行层或共识层客户端

Smartnode 堆栈的每个新版本都将附带对执行层和共识层 Docker 容器的最新兼容版本的更新引用。 但是,在某些情况下,您可能希望在等待新的 Smartnode 堆栈发布之前升级其中一个客户端。 本节将向您展示如何做到这一点。

Docker 模式
原生模式

在 Docker 模式下更新到新客户端版本很简单。

首先打开设置管理器:

rocketpool service config

要更改执行层客户端版本,请转到 Execution Client 类别。 修改 Container Tag 设置:

要更改共识层客户端版本,请转到 Consensus Client 类别。 修改 Beacon Node Container Tag 设置:

对更改满意后,像往常一样保存并退出。 Smartnode 将提供自动重启所有受影响的容器。