导入/恢复现有钱包

如果您已经有一个想要用于节点的钱包,或者您正在恢复之前使用 Smartnode 创建的钱包,本指南将帮助您完成导入/恢复过程。

请从以下部分中选择适当的选项。

恢复 Smartnode 钱包

如果您使用 Smartnode 生成了节点钱包,并且只是在新机器上恢复它,过程非常简单。 确保您已经安装了 Smartnode 软件,然后在安装完成后只需运行以下命令:

rocketpool wallet recover
注意

如果出于某种原因,您想恢复钱包但恢复附加到节点 minipool 的任何验证器密钥,您可以指定 -k 标志以跳过重建过程:

rocketpool wallet recover -k

如果您不指定此标志,Smartnode 将尝试恢复您的 minipool 的验证器密钥;但是,请注意,在您的 Execution 客户端完成同步之前,这不会起作用。 请查看其日志文件以了解何时完成;完成后,您可以运行此步骤。

这将首先要求您输入要用于加密钱包的密码。 之后,它会要求您输入您的 24 个单词助记恢复短语。 小心输入 - 出于安全考虑,它不会显示在屏幕上,并且在输入时很容易出错,所以请慢慢来。

完成后,您应该看到类似以下的输出:

$ rocketpool wallet recover

Please enter a password to secure your wallet with:

Please confirm your password:

Please enter your recovery mnemonic phrase:

Recovering node wallet...
The node wallet was successfully recovered.
Node account: <your wallet address>
No validator keys were found.

如果您没有看到任何错误,那么您的钱包和验证器将被恢复。

完成后,请务必使用以下命令重新启动 Docker 和 Hybrid 模式用户的验证器客户端:

docker restart rocketpool_validator

Native 模式用户只需重新启动他们的验证器容器进程。

这将确保 VC 接收所有新恢复的验证器密钥。

将现有地址导入为节点钱包

如果您有一个想用于节点的地址,但没有使用 Smartnode 创建它(例如,您使用 MetaMask 或硬件钱包创建了它),那么这是要遵循的部分。

警告

通过这样做,您的地址将成为热钱包。 私钥将存储在您的节点机器上。

如果您导入的地址是冷钱包,例如硬件钱包,请注意硬件钱包提供的保护将不再存在!

如果您将此钱包用于任何其他加密货币活动您必须在将其导入节点之前将其所有资金迁移到单独的地址(例如不同的硬件钱包)!仅在此地址上留下足够的 ETH 用于节点的 gas 成本(通常 0.5 ETH 就足够了)。

在导入您的地址作为节点钱包之前,请按照保护您的节点指南中的步骤尽可能地保护您的机器。

此功能仅适用于 Smartnode v1.4.3 或更高版本。 如果您的版本较低,您需要先升级。

这是一个多步骤过程,因此请仔细遵循以下部分。

步骤 1:添加外部生成的验证器密钥

如果您没有附加到要导入的地址的任何现有 minipool,则可以跳过此步骤。

如果您的地址已经注册为 Rocket Pool 节点钱包(例如通过 Allnodes 等服务),并且已经有活跃的 minipool,并且您想将它们与您的地址一起导入到 Smartnode 堆栈中,您将需要为每个相应验证器提供私有密钥库文件。 这些文件将使用您自己选择的密码加密,因此您将需要每个文件的密码。

您需要从当前运行您节点的服务获取这些文件才能导入它。 某些服务提供商可能能够根据请求检索这些文件。 如果您使用 Allnodes,您可以在初始设置过程中获取这些文件,但除非您在 minipool 创建期间保存了它们,否则将来将无法检索它们。

选择您的安装模式并按照以下步骤操作。

Docker 和 Hybrid 模式
Native 模式

首先,确保您已使用 rocketpool service start 启动了 Smartnode。 这将创建一个特殊文件夹,可用于保存验证器的加密密钥库文件。

默认情况下,该文件夹位于 ~/.rocketpool/data/custom-keys。 如果您自定义了安装或数据目录,请适当替换以找到 custom-keys 文件夹。

使用文件资源管理器或 ls 命令检查以确保此文件夹存在。 如果不存在,不用担心 - 只需使用以下命令创建文件夹:

mkdir ~/.rocketpool/data/custom-keys

接下来,将每个验证器密钥库文件放入此文件夹。 文件的名称无关紧要,但它们必须是符合 EIP-2335 格式的 JSON 文件。

Smartnode 将在下一步中查找您放置在此目录中的任何密钥库文件。

注意

导入过程将查找附加到注册到您导入的地址的 minipool 的验证器密钥。 您不能使用此过程将其他验证器密钥(例如用于单独质押验证器)导入到 Smartnode 堆栈管理的验证器客户端中。

如果您有兴趣这样做,请参阅反向混合模式运行文档。

步骤 2(可选):测试导入地址

如果您想测试恢复过程以确保您有正确的助记词和密码而不实际重新生成节点钱包的私钥或导入验证器密钥,您可以使用以下命令:

rocketpool wallet test-recovery -a 0x1234abcd...

其中 0x1234abcd... 是您要导入的地址,以 0x 前缀开头。 您需要助记短语来导入地址的私钥。

提示

如果出于某种原因,您想恢复钱包但恢复 minipool 的任何验证器密钥,您可以指定 -k 标志以跳过验证器密钥恢复过程。 例如:

rocketpool wallet test-recovery -a 0x1234abcd... -k

Smartnode 将自动搜索最流行的派生路径(例如 Ledger Live、MyEtherWallet、Trezor 和 Smartnode 堆栈使用的路径)和地址索引,以找到与您提供的地址相对应的设置。

提示

如果您有自定义派生路径,请使用 -d 标志指定它。 例如:

rocketpool wallet test-recovery -d "m/44'/60'/0'/%d"

对路径中可以迭代以使用不同索引的部分使用 %d

如果您有自定义地址索引,请使用 -i 标志指定它。 例如,如果您的地址是标准派生路径上的第 6 个,您可以使用:

rocketpool wallet test-recovery -i 5

如果需要,您可以同时使用 -d-i 标志。

首先,系统会提示您输入地址的助记短语:

Please enter the number of words in your mnemonic phrase (24 by default):
24

Enter Word Number 1 of your mnemonic:

小心输入,Smartnode 将开始搜索所有标准选项以找到它(除非您使用 -d 和/或 -i 标志明确指定它们)。

接下来,如果您有要从步骤 1 导入的私有密钥库文件,系统将提示您输入每个密钥库文件的密码:

It looks like you have some custom keystores for your minipool's validators.
You will be prompted for the passwords each one was encrypted with, so they can be loaded into the Validator Client that Rocket Pool manages for you.

Please enter the password that the keystore for <validator pubkey> was encrypted with:

它们将按公钥列表组织,而不是文件名。 确保您知道哪个文件对应哪个验证器公钥,以便输入正确的密码。

完成此操作后,测试恢复过程将继续进行并报告是成功还是失败:

Searching for the derivation path and index for wallet 0x1234abcd...
NOTE: this may take several minutes depending on how large your wallet's index is.
The node wallet was successfully recovered.
Derivation path: m/44'/60'/0'/0/%d
Wallet index:    0
Node account:    0x1234abcd...
Validator keys:
<validator pubkey>

以上表示测试恢复成功。

步骤 3:导入地址

警告

如果您的地址是不是由您自己的自托管 Smartnode 管理的 Rocket Pool 节点(例如由 Allnodes 等外部服务托管),在开始此导入过程之前与运行您节点的服务协调至关重要,并告知他们您想迁移到自己的自托管系统。

必须确认他们已关闭您节点的验证,并且永远不会恢复它,并使用 Blockchain 浏览器(如 https://beaconcha.in)手动确认您的验证器不再进行证明。 您必须确认每个验证器至少错过了 2 次证明,以确保您可以安全迁移。 否则,您将同时进行证明,您的 MINIPOOL 将被罚没!

Smartnode 将要求您在允许您继续导入过程之前确认您已完成此操作。

如果测试恢复成功,或者如果您跳过了它,您接下来将导入钱包并重新生成其所有关联的密钥文件。 该过程与上述完全相同,但使用 recover 命令而不是 test-recovery 命令:

rocketpool wallet recover -a 0x1234abcd...

运行此命令时,系统将首先提示您输入密码以加密您导入的节点钱包。

Please enter a password to secure your wallet with:

Please confirm your password:

之后,助记词和自定义验证器密钥库密码提示将像以前一样继续。

输入所有这些信息后,Smartnode 将恢复您的地址和(如果未禁用)您的 minipool 的自定义验证器密钥:

Searching for the derivation path and index for wallet 0x1234abcd...
NOTE: this may take several minutes depending on how large your wallet's index is.
The node wallet was successfully recovered.
Derivation path: m/44'/60'/0'/0/%d
Wallet index:    0
Node account:    0x1234abcd...
Validator keys:
<validator pubkey>

您地址的私钥现在将存储在 data/wallet 文件中(例如 ~/.rocketpool/data/wallet),其密码将存储在 data/password 文件中(例如 ~/.rocketpool/data/password)。

每个验证器的私钥将存储在 Smartnode 支持的每个共识客户端的 data/validators 文件夹中。

注意

通过以这种方式导入地址,验证器密钥不是从您的节点钱包派生的,因此它们以后不能通过简单运行 rocketpool wallet recover 来恢复,就像使用普通节点钱包一样。

如果您以后需要再次恢复或导入此钱包,您将需要遵循相同的过程,这意味着您需要将这些验证器私有密钥库及其密码备份在安全的地方。

如果您丢失它们,您将无法再恢复这些验证器密钥!

步骤 4:清理

此时,您现在可以删除 data/custom-keys 目录中的所有私有密钥库文件。 Smartnode 将已经导入它们并为它们分配了随机密码,因此这些密钥库文件不再需要。

最后,确保您的 data 目录中没有名为 custom-key-passwords 的文件(例如 ~/.rocketpool/data/custom-key-passwords)。 Smartnode 将仅在恢复过程中构建此临时文件,无论恢复过程是否成功,都将自动删除它;如果出于任何原因未能删除它,它将在控制台输出中提醒您。 但是,过于小心总是没有坏处的。

下一步

导入或恢复节点钱包后,请按照命令行界面简介指南中的下一步操作。