原文链接:Guide to Configuring Withdrawal Credentials on Ethereum
本文作者:Somer Esat;编译:Cointime Freya
概述
2023年4月12日,上海/Capella(统称Shapella)硬分叉为以太坊区块链启用了提款功能。
在此情况下,提款是指定期支付给执行验证器职责的ETH质押奖励,或是验证器退出时的ETH质押存款。
注意:这些提款与合并后启用的用于接收区块生产奖励的费用接收者不同。
指南的概念流程是:
- 确定你的验证器提款凭证是否已设置;
- 如果没有,请收集必要的验证器信息并设置;
- 使用验证器信息生成的签名消息;
- 广播该签名消息以更新验证器。
让我们开始吧!
步骤1:确定验证器状态
如果你已经设置了验证器的提款凭证(如果你创建验证器时使用了eth1_withdrawal_address标志),则无需再进行任何操作,可以在这里停止。如果你不确定,请将下面链接中的<YourEthDepositAddress>替换为你用来存入32 ETH的Eth地址进行检查。
https://beaconcha.in/validators/deposits?q=<YourEthDepositAddress>。
将显示一个验证器表格(如果你有多个验证器)。提款凭证一栏显示每个验证器的状态。
如果提款凭证一栏显示绿色文本0x01(也称为“类型1”),则说明提款凭证已经设置完毕。无需进行任何操作。
如果提款凭证栏显示黄色文本0x00(也称为“类型0”),则提款凭证尚未设置。为了进一步验证,请单击每个验证器密钥。
如果提款凭证已更新,它将在“存款”选项卡上进行确认。如果你所有的验证器都已更新,则无需再进行任何操作。
如果你的一个或多个验证器没有被更新,“存款”选项卡将如下所示:
步骤2:收集验证器信息
设置提款凭证需要验证器的相关信息:
- 验证器的索引位置。
- 验证器的索引编号。
- 验证器的旧BLS提款凭证。
- 新提款凭证的Eth1地址。
- 用于创建验证器的助记词。
我们将对每个项目进行详细说明。
在接下来的这些部分中,你将验证器信息保存到一个文本文件中,以便你以后可以参考。但是,请勿将助记词保存到文本文件中。
1. 验证器的索引位置
当你第一次创建验证器时,它会被分配一个索引位置。如果你只创建了一个验证器,那么索引位置就是0。如果你创建了多个验证器,那么它将是一个从0开始的数字序列。
索引位置用于指示你要为哪些验证器设置提款凭证。例如,如果你创建了3个验证器,并且希望为第二个验证器生成提款凭证,那么索引位置将为1。如果你想为所有3个验证器生成提款凭证,那么索引位置将是0。如果你想为3个验证器中的最后2个生成提款凭证,那么索引位置将是1。
此值必须是单个数字(而不是数字列表)。
2. 验证器的索引编号
每个验证器在加入Beacon Chain时都会被分配一个索引。要查找验证器索引编号,请使用步骤1中的查询方法,找到与你的ETH存款地址相关的验证器。
对于每个验证器,请单击“验证器密钥”。它将加载一个页面,显示顶部的验证器索引编号。
在此示例中,索引为107619。如果你有多个验证器,请用逗号分隔验证器索引编号。如107619,107620,107621。
注意:如果你有一个以上的验证器,索引编号应该按照正确的顺序排列,否则在提交签名信息时会出现错误。正确的顺序是验证器索引编号按照你第一次创建验证器时生成的顺序,与存款数据文件对齐。一般来说,如果索引编号按升序排列,就像上面的例子一样,你可能会成功。如果出现错误,请调整顺序并再次尝试。
3. 验证器的旧BLS提款凭证
这是最初在创建验证器时分配给你的验证器的提款凭证。请使用步骤1中的查找功能找到与你的ETH存款地址相关联的验证器。
提款凭证一栏包含了每个验证器的旧BLS提款凭证。在这个例子中,该凭证为0x009690e5d4472c7c0dbdf490425d89862535d2a52fb686333f3a0a9ff5d2125e。如果你有多个验证器,请用逗号分隔BLS提款凭证。例如:0x00...,0x00...,0x00...。
4. 新提款凭证的Eth1地址
这是将成为新提款凭证的Eth1地址,也是一个在你控制范围内的地址。这是所有ETH质押奖励的发送地址。如果你退出验证器,它也是质押的ETH存款的发送地址。
重要提示:与此地址关联的私钥必须在你的控制范围内,否则你将无法访问提取的ETH。
它应该是一个有效的以太坊地址。例如:
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045。
5. 用于创建验证器的助记词
这是在你生成验证器文件时由staking-deposit-cli工具创建的助记词。稍后需要在生成签名消息时提供。不要将其保存到文本文件中。
注意:如果你使用了多个助记词来创建验证器,则需要收集验证器的信息,并按步骤为每个助记词及其相关验证器生成签名消息。
收集完这些信息后,生成的文本文件可能如下所示:
Index Position: 0Index Number: 1000,1001Old BLS:
0x00c223a861a98d56881969d0ecf771dfd76c1b7c1d423a7f9019a44ff7aec040,0x009690e5d4472c7c0dbdf490425d89862535d2a52fb686333f3a0a9ff5d2125eEth1 Address: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
将文件保存到USB驱动器中,以便稍后将其复制到空气隔离的计算机中。
步骤3:收集所需软件
- 在Windows上解压该文件。
- 使用以下命令下载并解压Linux操作系统。修改下面的URL以匹配最新版本的下载链接。
staking-deposit-cli工具将用于使用上面收集的验证器信息生成签名消息。下载,解压,并将其复制到USB驱动器中。
$ cd ~$ curl -LO https://github.com/ethereum/staking-deposit-cli/releases/download/v2.5.0/staking_deposit-cli-d7b5304-linux-amd64.tar.gz$ tar xvf staking_deposit-cli-d7b5304-linux-amd64.tar.gz$ cd staking_deposit-cli-d7b5304-linux-amd64
将文件复制到USB驱动器。
USB驱动器现在应该包含上面创建的文本文件和deposit或deposit.exe二进制文件。
步骤4:生成签名信息
接下来,我们将生成一个签名信息,其中包含更新提款凭证所需的信息。
staking-deposit-cli工具使用助记词对消息进行签名。由于助记词的敏感性质,强烈建议你在没有连接互联网的计算机上运行该工具。
有不同的方法可以进行;以下是两种选项:
- 选项1-空气隔离的计算机(推荐):将USB驱动器连接到完全空气隔离的计算机(从未连接到网络或互联网),并将文件复制到空气隔离的计算机中。
- 选项2-当前计算机(不推荐):从当前计算机运行。网络连接可能会泄漏你的助记词密钥。如果没有完全空气隔离的计算机,请在继续之前断开当前计算机的网络连接。
在安全的计算机上,运行二进制文件并复制/粘贴文本文件中的数据以提供所需信息。
在Linux上:$ ./deposit generate-bls-to-execution-change
在Windows上:deposit.exe generate-bls-to-execution-change
提供你的语言偏好。
选择网络。主网用于生产,其他的是测试网。
输入你的助记符。
输入索引位置。
输入验证器编号。
输入旧的BLS提款凭证。
输入将成为新提款地址的Eth1地址。
再输入一次,并确定它是正确的。一旦设置,就不能更新或更改。
成功!
注意:这一步需要进行验证,以确保旧的BLS提款凭证是由助记词创建的。如果不匹配,则该过程将失败。例如:“[错误]给定的提款凭证与助记词产生的旧BLS提款凭证不匹配”。请确保你输入了正确的助记词。
SignedBLSToExecutionChange JSON文件将在指定位置创建。该目录的内容如下所示:
该文件包含每个验证器的凭证变化数据。它已被签名,所以你不应该手动修改任何内容。
请仔细检查文件,特别是“to_execution_address”。如果你注意到错误,请删除JSON文件,并使用正确的值重新生成。
如果你在空气隔离的计算机上运行该程序,请将SignedBLSToExecutionChange JSON文件复制到USB驱动器上。
步骤5:提交已签名的消息进行广播
将包含上面创建的SignedBLSToExecutionChange JSON文件的USB驱动器连接到具有互联网访问权限的计算机上。
Beaconcha.in团队提供了一个实用程序,用于在以太坊硬分叉发生后提交提款凭证更改以进行广播。如果你要为主网提交签名消息,那么请在浏览器中点击这里:
https://mainnet.beaconcha.in/tools/broadcast
如果你提交的是测试网,那么将URL调整为适当的测试网。
按照提示提供JSON文件,再次仔细检查所有内容后,单击Submit & Broadcast按钮。
注意:此时还有其他验证功能,以确保提供的旧BLS提款凭证与验证器索引匹配。如果不匹配,则提交将无效。例如:“fromBLSPubkey与索引为1000的验证器的withdrawalCredentials不匹配”。返回并使用正确的值重新生成签名消息JSON文件。
如果你的请求成功被接收,将显示一个收据。
你现在已经提供了一个签名消息来更新验证器提款凭证。它将在以太坊硬分叉完成后(尽早)通过 Beacon Chain广播。所以,现在也许是一个最佳时机。
恭喜!你的验证器很快就会成为 0x01!
步骤6:好东西
设置提款凭证后,你可以检查一些事项。在下面的链接中,将 <YourValidatorIndex> 替换为你的验证器的索引。
https://beaconcha.in/validator/<YourValidatorIndex>
存款选项卡将确认提款凭证已成功更改。
提款选项卡将会显示处理的ETH奖励和大约支付时间
完成!
*本文由CoinTime整理编译,转载请注明来源。
所有评论