观察金色实操:从硬件到软件,如何在家中运行以太网节点
日期:2023年04月16日 09:52 浏览量:1
文/Alex R. Mead,CoinMetrics在消费级硬件上轻松配置和运行以太网节点的能力是以太网中心化特性的重要卖点。 但对一般人来说,在家里设置节点运行有多实用呢? 随着合并的完成,这个问题在加密社区被频繁提及。 在Coin Metrics中,我们总是直接探索节点,用手体验。 在本周的“互联网状态”系列文章中介绍在家中安装和运行以太网节点所需的步骤。 从基本的硬件和网络要求开始,下载/编译/安装软件,最后介绍节点的操作步骤和维护。 在整个过程中,为Coin Metrics团队运行自2022年6月以来一直运行此节点的Geth/Lighthouse节点提供了经验见解。 请注意,本文不构成对特定硬件、互联网服务提供商或以太网客户端的Coin Metrics背书,也不构成任何工程或财务建议。 所讨论的节点独立于Coin Metrics基础结构运行,与Coin Metrics没有关联,纯粹出于实验和研究的目的,与Coin Metrics服务没有任何相互作用。 本文提供的信息单纯是为了让我们说清楚,让你能理解。 所以,开始吧! 硬件和网络要求计算机和互联网连接,以便计算机开始设置和运行自己的以太网节点。 计算机必须满足两个一般要求:足够的RAM和足够的硬盘空间。 每个节点客户端都有特定的RAM要求(请参见下文)。但是,16GB RAM的现代计算机基本上足够了。 节点也可以在8GB的RAM中工作; 但是,如果您不仅想使用“执行以太网节点”一词,还想使用该节点执行任何操作你可能想要16GB RAM的计算机。 建议在专用计算机上运行以太网节点。 这意味着这台计算机的唯一用途是运行以太网节点。 无流媒体Netflix,无视频编辑,也不处理其他前端/后端进程,只是用于运行你的节点。 接下来,您需要确保计算机有足够的硬盘空间来存储当前的以太网区块链。 (合并后,请记住以太网区块链目前有两个部分:运行层和共识层信标链。 ) )。需要维持链条发展的合理空间。 目前,一个好的经验是使用2TB固态硬盘(SSD )。 固态驱动器支持足够快的读写行为,从而节点可以在本地同步当前链在链条持续成长的过程中维持链条。 我们的节点运行的是配备16gb ram的Dell OptiPlex 5080和英特尔酷睿I 7处理器。 此设备是直接从戴尔网站购买的“实物”。 另外,为了扩展内部硬盘空间,我们使用USB-C Type 3接口(此USB接口为蓝色)连接了2TB的三星T7便携式固态硬盘。
以太网节点:至少每秒25MB的下载速度才能将Dell OptiPlex 5080、有线以太网连接和2TBSSD网络连接与以太网网络同步。 这是大多数家用互联网都能满足的规格。 在我们的节点上,使用美国中西部可用的标准Comcast程序,据说下载速度为250MB/秒,总数据下载上限为每月1.2TB。 如果超过的话需要额外的费用。 此服务包或类似服务,通常以位于发达经济区块大城市地区的用户为对象。 软件:有什么代码? 从哪里得到? 合并后,所有以太网节点必须同时运行两个软件:一个合意层节点和一个执行层节点。 Ethereum.org列出了Geth、Nethermind、Besu、Erigon和Akula的运行层节点。 对于协议层节点、Lighthouse、Lodestar、Nimbus、Prysm和Teku。 这些不同软件的分析,本文不再赘述。 不言而喻,我们决定为了我们的执行层和共识层,总是分别运行可靠的Geth和受尊敬的Lighthouse。 在深入研究运行操作系统(OS )以太体的软件之前,首先简要介绍操作系统的选择。 Ubuntu 22.04 LTS,决定运行裸机版。 裸机意味着操作系统直接在处理器的硅芯片上运行。 没有虚拟机,没有文档容器,只有计算机上的“旧”操作系统。 在裸机上运行时,可以充分利用硬件资源,而不会产生虚拟化“开销”。 Ubuntu 22.04 LTS可以免费下载。 选择它是因为加密技术和Linux社区具有独立性。 其中有Ubuntu是几个“Linux风格”系统之一。 要在戴尔计算机上安装Ubuntu操作系统,必须对运行Windows 10的现有硬盘进行开箱分区。 可以在Ubuntu的网页上找到该过程的详细说明需要将新操作系统加载到新分区中的USB驱动器。 操作系统的安装可能很难。 这可能是非技术节点运营商需要克服的第一个真正瓶颈。 请注意,您可以在Windows 10上运行相同的系统所以,这真的不是必要的步骤。 此外,互联网有大量的资源来解决这个问题,所以我们认为有力量、计算机技能优秀的用户完成这个任务是合理的。 运行层: Geth根据clientdiversity.org的数据,Geth是目前使用最多的以太网节点,约占所有以太网客户端的80%。 虽然这对网络来说不是理想的,但这是我们节点运行的客户端。 对于我们的客户端可执行程序(例如当你启动节点时由我们的操作系统实际执行的程序) ——,确定了真正的“不敢相信,而是验证”的方法3354软件的配置于是,我决定使用Git从官方的Go Ethereum源代码库下载了源代码。 如果代码库完全本地化,则使用GNU Make构建了Geth客户端,并使用了来自Go Ethereum的其他几种支持软件中选择所需的族。 使用clef创建和管理节点的密钥对。 “Go Ethereum”页详细介绍了每个步骤的操作。 下载和编译源代码并将其安装在设备上是真正的软件工程师类型的工作。 恐怕对于一般的计算机用户来说,这是一个困难的提高。 因此,如果从源代码编译太难,Geth还提供预构建的二进制文件,可以从他们的网页上下载。 但是,请注意,这些二进制文件非常可靠但实际上,你信任的是那些结构。 通过使用源方法,可以单独分析每行的代码,因此不需要信任。 共识层: Lighthouse本着与Geth相同的精神,对节点从官方的Lighthouse库中下载了Lighthouse。 这是从源代码编译的。 和Geth一样,如果没有软件的经验,编译Lighthouse可能会非常困难。 于是,我决定,预构建的二进制文件也可用于Lighthouse。 请记住,如果执行节点实际运行节点,操作者必须在同一台计算机上运行两个程序(执行客户端、一致客户端) ——。 在我们的例子中分别是Geth和Lighthouse。 此外,由于每个客户端都需要向硬盘写入大量数据,因此在文件系统中安装固态硬盘是第一步。 安装SSD与编译源代码类似。 识别并“安装”物理SD驱动器对普通计算机用户来说并不容易。 必须使用终端程序,并在计算机的分层文件夹结构中顺利工作。 对于我们的节点,我们选择了将SSD安装在主目录文件夹~/ethereum下。 在此文件夹中(请注意,实际上位于固态驱动器上)! )我们创建了其他两个文件夹,~/ethereum/execution_layer和~/Ethereum/consensus_layer。 这些文件夹(或程序员称为目录)存储节点上所需的所有文件包括区块链本身。 执行节点软件包含节点要执行的文件的位置,因此节点软件现在可以运行。 首先,按照Go Ethereum网页上的步骤操作,例如使用clef设置用户帐户((EOA ) -外部拥有的帐户),使用一些参数启动geth。 最重要的是,将datadir设置为固态驱动器上的~/ethereum/execution_layer文件夹或目录。 请注意,chainid为“1”时,表示主网,不加引号。 也就是说,不是测试网,而是我们知道并爱的真正的以太坊。 此外,当前,geth必须连接到合意层客户端(在本例中为Lighthouse ),并且必须配置其他参数Go Ethereum在他们页面上对应的“Connecting to Consensus Clients”(连接一致客户端)内容中对这些参数进行了说明。 此命令启动主网络区块链的同步过程到目前为止,已有600GB以上的资源(2022年10月)。 2022年6月开始首次节点同步时,该过程花了大约五天时间。 共识层客户端的Lighthouse的工作方式与上述Geth的工作方式相同。 同样地,并确保在SSD上正确指定了datadir,以确保有足够的硬盘空间容纳所有所需的数据。 此外,Lighthouse还必须与Geth进行通信,因为它支持合并的以太体。 关于连接到执行引擎,有关此连接步骤的具体说明,请参阅Lighthouse文档。 我们的节点花了大约两天时间同步信标链。 请注意,您先同步主网络链(即Geth ),然后开始同步信标链(即Lighthouse )。
以太体节点:左屏幕为Lighthouse STDOUT,右屏幕为Geth STDOUT。 使用你的节点同步节点会下载大量的数据。 实际上,以太网区块链的整个历史记录都将被复制到你的本地计算机包括信标链。 这些信息完全下载后,可以查询本地节点的信息。 另外,为了验证以太体系统,请不要相信任何人。 有了这样的设置,当涉及以太网的网络和所有相关的DAapp时,你就真的可以“不轻信”我去验证了”。 连接到您的节点很简单,并且可以为Geth或Lighthouse节点组件使用本地托管的RPC。 这些API在执行层和协议层都有很好的文档记录。 对Python用户来说使用开源Web3.py模块是一个好选择,许多博客文章和问题论坛(如Stack Overflow )的答案都是免费的,并提供了很多例子。 如果你不熟悉API,你会经历学习曲线,只要有Python和该生态系统可以利用的大量资源,有动力的用户当然可以在网上找到资源并学习所需的所有知识技能。 节点表示随着权益证明(PoS )成为共识机制,大大提高了以太网阻塞时间的可预测性。 封锁时间高度一致,每12秒产生一个块(在泄漏块的情况下为24秒、36秒等),其他通信(例如证明)在块传播中每6秒进行一次。 运行一个专用节点(也就是说,计算机只运行以太网)以下显示的CPU和网络活动监视器都可以清楚地看到这一点。 这正是我们想要的。 而且,系统的“理论”与观测到的数据一致,总是令人放心的征兆。 请想起自己的节点。 已从源代码编译
,使用所有基本构造块进行设置。以太网节点:正常运行的CPU负载和网络数据速率。 为了进一步显示正在运行的节点,调用一致层端点返回所有验证节点的集合。(、/eth/v1/beacon/States/{ state _ id }/validators ),这是撰写本文时超过400,000个验证节点的结果。 此查询的执行时间为几分钟,请求正在处理中,如下所示,CPU使用率明显增加,然后在回复请求后再次返回“正常”状态。
以太网节点:信标节点响应API调用,随后恢复正常的节点操作负载。 持续节点运行与所有软件系统一样,将继续开发新版本。 对于Geth和Lighthouse来说,也是这样的——有时必须更新节点软件。 这包括从Github库中提取最新版本,编译新的可执行文件,然后用最新的稳定版本重新启动Geth和Lighthouse。 在我们简单的节点上,只需重新编译并重新启动。 在生产节点上,适合部署开发、分阶段、完全监控的生产环境。 如果不希望自己编译,可以下载最新的预编译二进制文件,然后使用它们重新启动节点。 另外操作系统也有需要下载和安装的更新。 这对于避免操作系统级别的安全问题特别重要。 在我们的节点中,首先需要为了使节点连续动作的学习曲线。 管理每个进程的RAM利用率是第一个障碍,因为如果没有足够的RAM,计算机将“随机”关闭。 此外,第一个节点使用WiFi,但无线路由器因数据过载而崩溃。 解决了这些问题,即缓存限制和有线以太网后,节点将连续运行数月,没有停机时间。 结论:使用消费计算机硬件和家用互联网连接,可以运行自己的本地以太网节点。 从源代码运行本地编译的客户端(共识层和执行层)对大多数用户来说可能很困难,但对最常见的客户端来说却很困难可以使用预编译的可执行文件。 此外,安装固态硬盘以存储块链并运行操作系统(OS )对大多数用户来说也很困难。 但有动力、有耐心、愿意学习的用户完全有能力做到这些。 节点操作符的下一步是决定是否成为验证者。 为此,节点必须在本地运行第三个客户端。 此外,Lighthouse还附带认证者客户端。 (需要保证32个ETH。 这比节点设置要复杂一点。 另外应该知道离线的惩罚和破坏当铺的以太网私钥带来的风险。 因此,用户必须在运行验证者节点之前知道自己在做什么。 虽然我们还没有自己运行验证者节点,但是我们考虑到了运行自己节点的复杂性,至少在运行自己的节点一个月后,最好决定是否运行自己的验证者节点。
推荐阅读
-
高新盛投资(高盛科技园)
2023-04-16
运行层: Geth根据clientdiversity.org的数据,Geth是目前使用最多的以太网节点,约占所有以太网客...
-
招商银行境外额度预约(招商银行境外额度预约提额)
2023-04-16
运行层: Geth根据clientdiversity.org的数据,Geth是目前使用最多的以太网节点,约占所有以太网客...
-
忻州社保卡查询余额(忻州市社保卡查询入口)
2023-04-16
运行层: Geth根据clientdiversity.org的数据,Geth是目前使用最多的以太网节点,约占所有以太网客...
-
用友 采购入库单自动结算(用友u8采购入库如何自动生成凭证)
2023-04-16
运行层: Geth根据clientdiversity.org的数据,Geth是目前使用最多的以太网节点,约占所有以太网客...
-
高铁能带充电宝吗(火车能带充电宝吗)
2023-04-16
运行层: Geth根据clientdiversity.org的数据,Geth是目前使用最多的以太网节点,约占所有以太网客...
-
四川泸天化股份有限公司官网(四川泸天化化肥怎么样)
2023-04-16
运行层: Geth根据clientdiversity.org的数据,Geth是目前使用最多的以太网节点,约占所有以太网客...