新闻开发人员企业区块链解释事件和会议新闻时事通讯
订阅我们的新闻.
电子邮件地址
我们尊重您的隐私
HomeBlog区块链介绍
我成为以太坊2.0验证者的旅程
这是一系列文章中的第一篇,描述了拥有约32个ETH和技术知识的个人如何参与以太坊信标链的发布(作者Coogan Brennan)2020年11月25日发布于2020年11月25日
图片:上图,来自Teku的Ben Edgington(他也写了必不可少的 Eth2.news 新闻稿),介绍了我们将在接下来的三篇博客文章中采取的步骤.
注意:虽然已经过了验证者被纳入信标链Genesis事件的最后期限,但人们仍可以按照以下步骤在“存入合约”中存入32 ETH。根据Alex Tudorache的说法 Eth2stats, 一旦链条于2020年UTC的12月1日12:00开始,从2020年UTC的11月24日12:00存入的个人将排队等候并遵循正常的激活程序.
- 介绍
- 免责声明
- 材料和要求
- 在MetaMask上获取32 ETH
- 启动板概述
- 密钥生成
- 链接以太坊1.0和2.0和锁定32 ETH
- 结论
1.简介
这是一系列文章中的第一篇,描述了拥有约32个ETH和技术知识的个人如何参与以太坊2.0项目第0阶段的以太坊信标链的启动。在我们开始将ETH发送到存款合约并获取验证码的第一步之前,我想讨论一下以太坊2.0背后的一些动机.
以太坊即将踏上新的令人兴奋的旅程,进入任何区块链网络的未知领域。从工作量证明到权益证明的转变是公共区块链历史上最重大的协议更改。最接近的等效项是 隔离证人 (或SegWit)比特币的硬叉–调整了比特币网络中处理块大小的方式。与以太坊2.0相比,这一变化相对较小,导致了一场有争议的苦战,并最终导致了比特币社区的分裂.
以太坊2.0的发布使SegWit看起来像是换胎了。该社区进行如此重大的返工的主要原因有两个. 首先,以太坊社区是开发人员社区. 开发人员不会发布产品,也永远不会再触摸它。我们不断部署,观察,讨论和迭代我们产生的想法和工作。这个周期伴随着许多团队的高水平计划,建模和协调,这些团队在其他情况下可能被认为是竞争对手。出现错误时,社区会聚在一起以最佳方式解决它们.
我们进行这项新工作的第二个原因是 我们认为公共区块链还远没有发挥全部潜力. 当比特币于2009年推出时,工作证明是未经检验的假设。绝大多数人都不相信您可以解决双重支出问题,除非使用受信任的中介机构。比特币和其他工作量证明网络现已证明,我们可以在没有第三方的情况下将货币系统实现为点对点协议(我向您发送钱).
证明这一点仅仅是开始。以太坊在最初被开发时就被社区昵称为Bitcoin 2.0:它认识到比特币操作系统的缺点,并开始扩展对等协议的功能。随着我们与之一起构建2.0,以太坊1.0在过去的几年中将继续取得重大进展,但正如Vitalik Buterin在最近的Reddit AMA中所说的那样:
“如果您今天在以太坊在这里,您应该在这里不是因为您认为应该不惜一切代价保护和稳定当前的规则(经济或技术),而是因为您相信生态系统的发展方向。 […]参与以太坊在一定程度上预示着该路线图是一个很好的预测,并且一旦升级过程结束,我们实际上将到达一个网络高效,稳定,强大且有能力成为重要基础的地方全球经济的一部分”
以太坊2.0阶段的股权证明实际上是对以太坊开发人员和社区的能力的押注,他们已经建立了这么多的能力,可以向更广阔的世界交付更多东西. 您应该期望锁定您在此存款合同中投入的所有资金 至少 两年,很可能会更长。请不要低估风险,只投资可以承受的损失. 但是,通过第一步,您正在参与一个潜在的历史性时刻,将公共区块链推向下一阶段的开发.
让我们开始吧.
2.免责声明
这是我作为ConsenSys的一名员工正在写的一则帖子,有人打算在信标链上进行实际投资。前一条声明意味着我会优先考虑ConsenSys产品(ConsenSys产品通常是以太坊中同类产品中最好的,而且我还可以与工程团队联系,他们可以帮助我回答问题和排除故障)。后一种说法意味着我正在针对成本和易用性进行优化:我没有成千上万的ETH来产生丰厚的回报,因此我采取一些捷径。我也不想出于成本和后勤目的而在我的公寓中维护服务器,因此我正在使用Amazon Web Services(AWS)托管我的验证器节点。作为开发人员,我很熟悉这项服务,它是虚拟的,因此我可以从任何地方访问它进行维护。 (起初,我当时正在考虑使用8GB RAM Raspberry Pi,但不想担心互联网连接,站点电源仍处于打开状态,过热和速度过快,或者我不在时狗摔倒了笔记本电脑的情况。这是一个选择, 以太坊在ARM 是一个在Raspberry Pi上赌注以太坊2.0的材料的小组)
加密社区中的许多人会不同意使用Infura终端节点而不是本地以太坊1.0客户端并托管在AWS(亚马逊巨人的一部分)上。我做出这些决定的目的是使对Ethereum 2.0的赌注尽可能简单明了,并可供个人使用,但要权衡去中心化和隐私权。但是,您可以按照下面的广泛指导教程并选择运行自己的以太坊1.0客户端并在本地托管。实际上,如果您能做到这一点,我鼓励您!
3.材料和要求
这是我们需要的材料以及在三篇文章中需要采取的总体步骤:
材料
- 三年承诺投入32 ETH并维护验证者节点
- 32 ETH(加上 <1 ETH的汽油费)
- $ 717.12(一个m5.xlarge实例的三年预留实例价格)+ 120(一年100 GB的存储成本,保守地假设几乎满了存储容量)= 837.12美元,在这一年中支付给了AWS
- MetaMask扩展(免费安装)
- Infura帐户(免费套餐)
脚步
- 在MetaMask,演练启动板上获取32 ETH
- 配置AWS实例(三年承诺,可以减少,但是可以节省更多时间来省钱,并且可以锁定),强化安全功能
- 导入验证密钥,运行Teku,设置监控
有一些很棒的,更通用的教程介绍了该过程, 即Mara Schmiedt和Collin Myers在《无银行通讯》中的演练. 当我逐步完成自己的个人放样过程并添加针对我的整体设置的特定步骤时,本教程将有所不同.
4.在MetaMask上获得32 ETH
本教程中最简单和最难的步骤。在我撰写本文时,以太坊正在经历价格上涨,这极大地增加了抵押成本(Evan Van Ness拥有 一个愉快的帖子 从2019年3月开始,它追溯了许多个月的验证成本,从2019年3月开始,当时购买3 ETH的成本为3,100美元,到2020年10月之前的成本为12,000美元(购买成本)。有一些人购买了以太坊的以太坊,而且很长一段时间. 如果您在2010年还没有在披萨上吹过加密货币, 认为自己是幸运的-Erm-战略投资者.
为什么我们需要像MetaMask这样基于浏览器的钱包?在以太坊1.0主网上的存款合约中锁定ETH并将其连接到以太坊2.0信标链的流程需要进行各种巧妙的操作。这两个链使用不同的加密类别,因此我们必须生成全新的加密密钥类型。这些密钥必须使用32 ETH连接到我们的以太坊1.0地址。独自做是非常棘手的,因此以太坊基金会和ConsenSys建立了一个网站,负责处理称为 发射台. 但是,要与该网站进行交互,我们需要一个基于浏览器的钱包,并带有与我们的32 ETH余额相关的以太坊1.0密钥。我们待会儿再讨论,但是我想让人们知道我们为什么这样做.
如果您没有持有任何以太币(以太坊网络的基础货币): 您可以直接在MetaMask上购买。您也可以在经过认证的交易所购买ETH,例如 双子座, 但请注意,有一个广泛的KYC流程,Gemini会保留并可以将记录提交给地方,州和国家州机构. 如果您持有ERC-20令牌但不持有以太币: 我建议直接在您的MetaMask钱包中使用MetaMask的新掉期功能,该功能结合了Uniswap和AirSwap等去中心化交易所聚合器,从而获得了最优惠的价格和最低的网络费用。如果您的ETH在Trezor或Ledger硬件钱包中, 我建议您按照以下步骤将那个钱包连接到MetaMask. 我正在使用MetaMask,但以太坊基金会还建议使用基于浏览器的钱包,例如 波蒂斯 或者 Fortmatic.
对我来说,看到大量的钱用简单的密码签名来支配我真是有点不知所措。可能是一个很好的时机,让您惊叹于加密技术的强大功能,可以将其赋予个人,同时还提醒人们确保您已经备份了私钥或恢复短语.
5.启动板概述
图片:Launchpad.ethereum.org
现在我们已经托管了32 ETH的抵押权,我们可以 Launchpad.ethereum.org, 我们之前提到的Launchpad网站. 玛拉和柯林的无银行指南 非常顺利地浏览了初始页面(如下所示),其中很多内容都是不言自明的,但是我想对以下几件事做出自己的个人解释:
前四个步骤(概述, 注册, 职责范围, 和 大幅削减)是以太坊2.0的基本概要,抵押和您作为验证者的责任。本质上,权益证明共识机制依赖于“矿工”(按照工作证明的说法)将钱放在他们的嘴里,而不是花费大量的CPU解决工作证明难题。这就是参与权益证明共识的32 ETH赌注.
而且由于该网络仍在开发中,因此验证程序还没有退出(如果您在新网络上找到DAO骇客该怎么办?我们不能让您离开…)。因此,每个人都在长期努力。 (涵盖 转移延迟 和 承诺)
最后,如果您“过失”作为网络中的验证者(出于恶意,无知或偶然事件),您将受到处罚。在以太坊2.0中,它被称为 大幅削减. 从积极的方面来说,如果您作为验证者的行为正确,那么您将获得与网络相关的“采矿奖励”(我们将在以后进行讨论)。顺便说一句,抑制/激励平衡与工作量证明不同,在工作量证明中,只有 激励措施 使矿工不破坏网络并正确行事.
接下来是我之前提到的关键系统。以太坊2.0将使用的密钥签名系统是BLS。我不是密码专家,但是BLS的好处是它可以将多个数字签名折叠为一个可验证的签名。这有助于收集信标的证明(“就碎片块或信标的有效性进行投票”)。对我们而言最相关的是BLS方案与以太坊1.0所使用的方案不同.
有关BLS的更多信息,请参见 Jeff Coleman的这个主题 或者 此Reddit帖子介绍了以太坊2.0 BLS开发的历史.
通常,为大型公共网络更改私钥方案几乎是不可能的。但是,由于以太坊2.0将与以太坊1.0一起运行,因此核心开发人员提出了一个聪明的解决方案,这是经典的握手方式:
在上图中,蓝色键和框代表以太坊1.0及其加密方案,红色键和框代表以太坊2.0及其加密方案。以太坊1.0主网上存在的存款合同允许用户证明他们具有以太坊1.0和以太坊2.0的私钥。运作方式如下:
提交给以太坊1.0上的存款合同的交易必须由以太坊1.0私钥签名(就像在Mainnet上提交的任何交易一样)。但是,该交易被包裹在另一个私钥签名(以太坊2.0私钥)周围。信标链正在监视以太坊1.0上的存入合同,如果以正确的余额向合同提交了有效的交易,则信标链将解开第一层加密并访问第二层(以太坊2.0数字签名)。这用于确认以太坊2.0验证程序地址并将其连接到以太坊1.0地址.
对于熟悉Solidity的人来说,这是Ethereum 1.0合约中附带的交易,其中带有BLS签名参数:
这里还有一个我们没有讨论过的参数(取款凭证),从本质上讲,这是一个一旦被允许就可以取款32 ETH的一次性密钥。我们也将使用Launchpad生成它.
如您所见,这是一个复杂的过程,对于单个用户而言,独自进行挑战。 Launchpad为我们提供了指导流程,以协助并降低复杂性.
接下来的三个部分(承诺, 早期采用者风险 和 确认)最后提醒您参与以太坊2.0的风险和长期承诺
有关以太坊2.0术语的更多信息并了解验证程序的作用,请参阅Alex Tudorache的两篇精彩文章 以太坊2.0术语神秘化 和 信标链中验证者的旅程.
6.密钥生成
现在我们已经大致了解了我们在以太坊2.0中作为验证者的角色,我们将继续该过程的主要内容:生成验证者密钥并将其链接到以太坊1.0,并将32 ETH转移到以太坊1.0主网存款合同.
确认您已阅读披露信息后,Launchpad将逐步指导您选择以太坊1.0和2.0客户端的选项。我们将在另一篇文章中介绍这些内容,这不是前进的要求.
接下来,您将转到“生成密钥”部分,如下所示:
我选择了1个验证程序,它向我显示了我的费用。然后,它要求我当前的操作系统帮助我下载一小部分软件以生成验证器密钥对。这很棘手,因为当我的验证程序客户端将在Linux上运行时,我每天都使用Mac。因此,我选择Mac,然后进入下一步,询问我们如何设置软件:
我选择下载CLI应用程序,然后将我带到以太坊基金会Github页面的下载页面(该发行版本可能对您来说看起来有所不同,只需确保它是最新版本即可):
向下滚动以查看下载部分:
下载适用于您的操作系统的tar.gz文件并解压缩该文件.
现在,我们需要打开命令行终端,并导航到解压缩文件的目录eth2deposit-cli。对于某些计算机,一种快捷方式是键入cd,然后将目录拖放到终端中,这将为您提供目录的路径。按下Enter键,然后在eth2deposit-cli目录中运行Launchpad提供的以下命令:
./ deposit new-mnemonic –chain主网
经常提醒您-链主网,因为以前的教程针对不同的测试网有不同的链。因此,请确保添加主网,否则您的交易信息将无效!
输入您要运行的验证器数量,然后按照以下步骤进行操作.
在接下来的几个步骤中,我不会分享屏幕截图,因为它涉及生成敏感的密钥和密码。不过有两点要注意:1)备份您得到的助记词,因为这是在允许的情况下提取您所投资的ETH的唯一方法2) 此步骤仅适用于Teku用户: 创建一个纯文本文件,其中包含您为验证码输入的密码。将其保存为与keystore.json文件相同的名称,但将a.txt后缀与您的密钥和存放信息保存在同一目录中。例如,如果您的密钥库文件是KEYSTORE-M_123456_789_ABCD.json, 带有密码的纯文本文件应称为KEYSTORE-M_123456_789_ABCD.文本. 稍后在运行Teku时将使用它.
从终端成功运行eth2deposit-cli并添加密码文件后,目录应如下所示:
eth2deposit-cli /
└──validator_key_info/
├──KEYSTORE-M_123456_789_ABCD.json
├──KEYSTORE-M_123456_789_ABCD.文本
└──DEPOSIT_DATA_YOUR_TIMESTAMP_HERE.json
└──MNEMONIC_BACKUP.txt
7.链接以太坊1.0和2.0和锁定32 ETH
本教程的最后一步是将验证器信息发送到以太坊1.0主网上的Deposit合约,并带有信标链也将能够识别的正确信息(我们之前提到的握手).
“上传验证器”选项卡上有一个地方可以拖放eth2deposit-cli创建的另一个文件:您的存款数据文件(在上面的示例目录上的DEPOSIT_DATA_YOUR_TIMESTAMP_HERE.json)。将该文件从您的计算机拖放到启动板页面上的位置:
如果存款数据的格式正确,您将看到以下内容:
现在,Launchpad将要求我们将软件钱包与我们之前发送32 ETH的帐户连接:
成功完成此操作后,您将看到:
MetaMask的新安全功能要求网站特别要求与每个帐户建立连接-如果在连接时未选择具有32 ETH的帐户,只需打开MetaMask,单击具有32 ETH的帐户并将其连接到Launchpad.
当您单击继续时,您将看到信息摘要,并进一步强调了您将要做的事情的风险和长期承诺:
一旦您仔细阅读了这些披露和警告,便成为了关键时刻:
点击“启动交易”后,您将面临“加密货币”生活中最激动人心的确认框之一!深吸一口气,确保您已经准备好,因为一旦您点击确认,就不会后退! (嗯,MetaMask确实具有时间敏感的“取消交易”功能,因为它是一个不错的钱包,但是却装作好像没有这个一样!)
确认并挖掘所有内容后,您会看到类似以下的屏幕:
8.结论
恭喜你!您参与了公共协调史上最激动人心的发展之一!!
但是工作才刚刚开始。接下来的两篇文章将使用Infura作为以太坊1.0终端节点为Teku验证器节点设置一个AWS Ubuntu 20.04 Server实例。然后,我们将使用Grafana之类的工具进行安全性增强和节点监视.
在下一部分中,我们需要的是eth2deposit-cli / validator_key_info目录的内容,示例如下:
eth2deposit-cli /
└──validator_key_info/
├──KEYSTORE-M_123456_789_ABCD.json
├──KEYSTORE-M_123456_789_ABCD.文本
└──DEPOSIT_DATA_YOUR_TIMESTAMP_HERE.json
敬请关注!
感谢James Beck,Meredith Baxter,Chaminda Divitotawela,Ben Edgington,The Dark Jester,Somer Esat,Joseph Lubin,Collin Meyers,Nick Nelson,Mara Schmiedt,Adrian Sutton和Alex Tudorache的支持和技术帮助.
区块链加密以太坊以太坊2.0通讯订阅我们的时事通讯以获取最新的以太坊新闻,企业解决方案,开发人员资源等信息。报告
以太坊2020年第三季度DeFi报告
报告
以太坊2020年第二季度DeFi报告
指导
区块链业务网络完整指南
网络研讨会
如何构建成功的区块链产品
网络研讨会