Eth2存款合约发布!如何质押你的 ETH 成为验证者呢?

作者:Ryan Sean Adams

译者:Jhonny

编辑:Mickey

Eth2 马上要来了。

根据以太坊基金会官博消息 (见下图) ,今日 Eth2 规范 v1.0 版本正式发布,包括发布阶段0信标链主网的存款合约 (Deposit Contract) 地址 ,Eth2 信标链创世区块的诞生时间预计是 2020 年12月1日。

当前 Eth2 存款合约已经部署,以太坊基金会公布的官方存款合约地址为:

0x00000000219ab540356cbb839cbe05303d7705fa

根据Eth2 Launch Pad ( launchpad.ethereum.org )显示,截至撰文时,已经有 19,685 ETH 被质押进了该存款合约中 !当存款合约中的 ETH 质押量达到 524,288 ETH (也即有 16,384 名验证者参与抵押,每名验证者抵押 32 ETH) 时,则 Eth2 信标链主网 (Eth2阶段0) 将于12月1日正式启动,否则信标链创世区块诞生时间将顺延。 [备注:Eth2 Launch Pad 是 Eth2 验证节点快捷启动平台]

需要注意的是,如果 ETH 持有者想要成为 Eth2 的验证节点,必须要具有必要的硬件要求和技术专长,并通过官方的 Eth2 Launch Pad 按照分步说明进行操作,切勿直接将 ETH 发送到该存款合约地址 ,直接将 ETH 发送到该合约地址将导致交易失败,而并不意味着在 Eth2 上参与质押。

如何成为 Eth2 网络验证者呢?在质押 ETH 之前需要注意些什么呢?......我们将在本文涵盖以下内容:

  1. Eth2 验证者硬件要求;

  2. 选择和安装 Eth2 客户端‘

  3. 搭建 Eth1 节点;

  4. 使用 Eth2 Launch Pad 完成质押。

01

硬件要求


基于 Eth2 去中心化的设计目标,预计 Eth2 验证者将使用各种不同的基础设施 (本地部署,云端等等)。

👉如果你此前尚未参与 Eth2 测试网的 ETH 质押操作,可以使用 Medalla 测试网进行试验,以此来决定哪种设置能够给予你最佳的参与性能。在正式成为 Eth2 信标链验证者之前,请确保先在测试网上进行一些测试!可通过此链接参与成为 Medalla 测试网的验证者:

https://medalla.launchpad.ethereum.org/

下面我们将给予一些成为 Eth2 验证者的硬件要求,帮助你提前做好准备!

推荐的硬件规格:

  • 操作系统: 64-bit Linux, Mac OS X, Windows

  • 处理器 : Intel Core i7-4770 or AMD FX-8310 (或更佳)

  • 内存 : 8GB RAM

  • 存储空间 : 100GB 固态硬盘可用空间

  • 互联网连接 : 宽带网络连接 (10 Mbps)

  • 电源 : 不间断电源供应 (UPS)

或者选择云提供商,以Digital Ocean云提供商为例:

  • 相应的 Digital Ocean 虚拟机实例:

  • 内存 : 8GB RAM

  • 存储空间 : 160GB 固态硬盘可用空间

  • 正常运行时间 : 99.99%

  • 可用性 : 8 个数据中心

  • $/每小时 : $0.060

  • $/每月 : $40

最低硬件规格:

  • 操作系统 : 64-bit Linux, Mac OS X, Windows

  • 处理器 : Intel Core i5-760 or AMD FX-8110 (或者更佳)

  • 内存 : 4GB RAM

  • 存储空间 : 20GB 固态硬盘可用空间

  • 互联网连接: 宽带网络连接n (10 Mbps)

  • 电源 : 不间断电源供应 (UPS)

相应的 Digital Ocean 虚拟机实例:

  • 内存 : 4GB RAM

  • 存储空间 : 80GB 固态硬盘可用空间

  • 正常运行时间 : 99.99%

  • 可用性 : 8 个数据中心

  • $/小时 : $0.030

  • $/月 : $20

02

选择并安装 Eth2 客户端


Eth2有着多个客户端可以选择,验证者在运行验证者节点世可以选择不同的客户端实现。

截至目前,已经有 4 个 Eth2 客户端团队开发的 Eth2 客户端可供选择 ,这些 Eth2 客户端分布式:Teku、Nimbus、Lighthouse 和 Prysm

Eth2 客户端

PrysmPrysmatic Labs 团队开发(Discord):

LighthouseSigma Prime 团队开发 (Discord):

TekuConsenSys 开发 (Discord):

NimbusStatus 开发 (Discord):

  • Nimbus 是一个 Eth2 研究项目和一个客户端实现,旨在在嵌入式系统和个人移动设备 (包括搭载资源限制的硬件的较早的智能手机) 上良好运行。Nimbus (Apache 2许可) 使用 Nim 语言编写,Nim 是一种具有类似于 Python 语法的语言,可编译为C语言。

  • 使用说明:

    https://nimbus.team/docs/

  • Github:

    https://github.com/status-im/nim-beacon-chain

03

安装 Eth1 节点


运行 Eth2 验证者节点除了需要安装一个 Eth2 客户端之外,还需要运行一个 Eth1 节点,此 Eth1 节点用于监视验证者的 32 ETH 抵押存款。 在搭建 Eth1 节点时,可以有多种选择,以下是最常用的启动 Eth1 节点的工具:

自托管的 Eth1 节点客户端:

第三方托管的 Eth1 节点客户端:

04

运行 Eth2 验证者节点


第一步: 获取 ETH

如果你不熟悉以太坊,那么一个重要步骤就是先获取成为 Eth2 验证节点所需的 ETH。每个 Eth2 验证者节点都需要质押 32 ETH。请注意,如果你最终成功地成为了 Eth2 验证者,则意味着你对此参与计划做出了长期承诺 (因为短期内这些质押的 ETH 无法取出) 。

如果你需要获取一些 ETH,可通过加密货币交易所进行获取,比如:

  • 法币交易所 (美国地区) : Coinbase 或者 Gemini

  • 法币交易所 (非美国地区 ) : Binance 或者 Kraken

  • 以太坊去中心化交易所 : Uniswap

第二步: 前往 Eth2 Launchpad 平台进行 ETH 质押

在过去的几个月中,以太坊基金会 (EF) 、Codefi Activate 和 Deep Work Studio 一直在开发一个Eth2 验证者节点快捷启动界面,以使用户更容易参与 ETH 质押并成为 Eth2 验证者。

这项工作的结果就是 Eth2 Launch Pad 平台的发布,该平台旨在安全地指导用户完成生成 Eth2 密钥对并将 32 ETH 质押进 Eth2 官方的存款合约中

Eth2 Launch Pad 是为在家即可参与 Eth2 验证节点的人而设计的,也即打算运行自己的 Eth2 验证者节点的业余爱好者,并接受在自己的计算机终端屏幕上运行命令。

第二步: 尽职调查

在成为 Eth2 验证者节点的过程中,花点时间阅读一下 Eth2 Launch Pad 平台上的内容是非常重要的!该平台上的“Overview” (概述) 部分旨在使你知晓在质押 ETH 时所涉及的风险和相关信息。包括:

(1) Eth2 使用 PoS (权益证明机制) 来保护整个网络。为此,网络需要活跃的参与者 (也即验证者) 来提议、验证和保证区块的有效性。作为交换,诚实的验证者将获得财务奖励。重要的是,验证者需要质押 ETH 作为抵押品,换句话说,需要质押一些资金。成为验证者的唯一方法是在当前的以太坊链 (也即 Eth1 链) 上往存款合约发送一笔单向的 ETH 交易。

(2) 要成为 Eth2 验证者,你需要对每个要运行的验证者节点都质押 32 ETH。注意,此抵押过程是单向不可逆的。

(3) 只有积极参与 Eth2 共识的验证者才能获得奖励。离线的验证者会受到惩罚。某节点离线受到的惩罚力度与该节点积极参与共识时可以获得的奖励相当。

(4)  进行恶意行为或者与 Eth2 规范背道而驰的验证者,很容易受到罚没惩罚 (get slashed) ,这将招致巨额惩罚。

(5) 验证者密钥是从唯一的助记词 (种子) 派生的。你的种子是取款时的唯一途径。因此,最重要的是确保其安全!请备份好你的助记词

(6) Eth2 Launch Pad 将帮助用户创建每个验证者节点的签名密钥对 (不同的验证者节点都有不同的签名密钥,即便某个用户同时运行了多个验证者节点,但同一个用户运行的多个验证者节点可以使用同一个取款密钥) ,这些签名密钥将会保存在 keystore (密钥库文件) 中 (注意:每个验证者的签名密钥会保存在单独的 keystore 中) ,当你使用验证者软件开始验证之前,你需要将 keystore 导入到验证者软件中。

通过 Eth2 Launch Pad 创建验证者节点时,你还会收到一个 存款文件 (deposit file,文件后缀为 .json) ,需要将该存款文件上传至 Eth2 Launch Pad 网站上。 (对此我们将在下文进行解释)

(7) 验证者之间的转账至少在 Eth2 阶段1 之前是无法实现的。验证者必须等到阶段2 (大约还要2年时间) 才能将资金提取到某个特定的分片链上。

(8) 由于至少在阶段1到来之前,验证者无法进行转账,因此在此之前,验证者无法自愿退出验证者行列并重新启动节点。这意味着验证者将需要在很长的一段时间内参与 Eth2 共识之中,

(9) 当前用户参与进来的是初始发布的 Eth2 新型网络中,与任何新软件一样,存在潜在的 bugs。虽然不太可能,但潜在的 bugs 可能会导致节点受到 slashing (罚没) 惩罚。

(10) 为了成为验证者,你将需要生成新的 Eth2 密钥对。为此,同时也为了安装验证者软件,你需要在技术上有能力在计算机终端上运行命令行

第三步:生成密钥对和助记词

对于每个验证者节点,你都需要生成验证者密钥对和一个助记词该助记词用于之后生成你的取款密钥。

首先,你需要在 Eth2 Launch Pad 上填写你想要运行的验证者节点数量,以及你想要在哪种操作系统上运行验证者节点。见下图👇

接下来,Eth2 Launch Pad 平台将为你提供两个选项用于生成你的存款密钥 (deposit keys) 。

你可以通过下方链接找到针对你的操作系统的详细说明:

https://github.com/ethereum/eth2.0-deposit-cli/blob/master/README.md

The first is to use the binary executable file that you can download from the Eth2 Github repo and then run the ./deposit command in your terminal window.

第一个选项 是使用你从  Eth2 Github repo ( https://github.com/ethereum/eth2.0-deposit-cli/releases/ ) 下载的二进制可执行文件,然后在你的终端窗口中运行 ./deposit 命令。见下图👇

请记得验证以下该网址,确保你使用的是正确的网址来下载

第二个选项 是从 Python 源代码搭建 deposit-CLI 工具。你将需要按照说明进行操作,以确保你已安装所有必需的开发库和 deposit-CLI 工具。见下图👇

当你安装了 deposit-CLI 工具并在你的终端窗口运行此工具时,你将被提示:

  1. 明确你想要运行的验证者节点的数量;

  2. 你想要用于生成助记词的语言;

  3. 明确你想要运行验证者节点的网络 (主网)。

请确保你设置的是 --chain mainnet,否则存款将无效。

现在,你将被要求设置你的 密码 (password) ,一旦密码确定,你的 助记词 将被生成。请确保你将助记词写下来,并将其离线存储在安全的地方!

如果你已经成功地完成了该步骤,那你应该可以看到下方这个屏幕👇

如果你对 deposit-cli 有疑问,请访问其 GitHub repository:

https://github.com/ethereum/eth2.0-deposit-cli

第四步:上传你的存款文件

你马上就要完成了!下一步是上传你在上一步生成的 .json 存款文件。

该文件位于 /eth2.0-deposit-cli/validator_keys 目录中,文件被命名为 deposit-data-[timestamp].json 。

第五步:连接你的钱包

接下来就是连接你的 Web3 钱包,并点击继续。请确保你在你的钱包设置中选择了主网环境。加下图👇

第六步:确认交易信息 & 发起抵押存款

当你连接钱包并确认你的钱包地址后,你将进入一个总结性的页面,该页面将显示你需要向存款合约中发送的 ETH 总数量 (根据此前你选择运行的验证者节点数量,每个验证者 32 ETH) 。

点击同意警戒检查 (alert checks) ,然后单击确认以导航到最后一步——进行实际存款。

点击 “Initiate the Transaction” (发起交易) ,将你的 ETH 质押进官方的 Eth2 存款合约中。

你将需要通过你的钱包确认每个验证者的 32 ETH 质押款。

当这笔交易确认之后,你就完成了 Eth2 质押操作了!🎉

祝贺!!

-END-

【翻译文章仅为传播更有价值的信息,文章版权归原作者所有,其内容与观点不代表Unitimes立场。本微信平台出现的图片、音乐、视频部分是在互联网收集而来,版权归版权所有人所有,若版权者认为其作品不宜供大家浏览或不应无偿使用,请发邮件至 editor@unitimes.io 或添加微信unitimes2019联系我们,本平台将立即更正。】

喜欢今天的内容吗?喜欢就点个

在看

本文分享自微信公众号 - Unitimes(Uni-times)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )