使用Infura访问以太坊存档节点 译文

​译者 |布加迪审校 |孙淑娟存档节点是以太坊网络上存储历史区块链数据的特定节点。由于它们提供了这些历史信息,当您需要审计过去的交易历史或收集数据时,它们将大有用场。Etherscan和Dune An

​译者 |布加迪

审校 |孙淑娟

存档节点是以太坊网络上存储历史区块链数据的特定节点。由于它们提供了这些历史信息,当您需要审计过去的交易历史或收集数据时,它们将大有用场。Etherscan和Dune Analytics等服务使用存档节点,但任何人都可以自己运行存档节点。

使用Infura访问以太坊存档节点            译文

我们在本文中将介绍不同类型的以太坊节点,深入了解存档节点,并介绍Infura的新存档节点功能。然后,我们将以一个实际项目为例,展示如何将Infura API和web3.js连接到预构建的React前端。完成后,用户就可以查询存档节点,以获取某个以太坊钱包地址的一些统计信息。

一、以太坊节点简介

简单来说,节点就是网络中的连接点。拿以太坊来说,不同类型的节点对网络负有不同的责任。

以太坊区块链在所谓的以太坊虚拟机(EVM)上运行,EVM是一种去中心化的全球计算机。节点为该计算机提供处理能力。它们可以提供请求的数据、创建和验证区块、存储交易数据或智能合约代码等等。凡是拥有所需硬件的人都可以下载以太坊客户软件,并启动自己的节点,参与到网络中。这也可以防止任何单个实体控制整个网络,促进以太坊的去中心化。

以太坊节点主要有四种类型,对网络的贡献各有不同。它们共同将信息传递给其他节点,验证交易和EVM状态,并提供保持以太坊网络高效运行所需的基础设施。它们相互联系,以确保都能就网络状态达成一致。因此,拥有更多节点使得网络更强大,更能抵御攻击。

二、以太坊节点的类型全节点

全节点验证交易和EVM状态、验证区块、启动和执行智能合约代码,并在请求时提供网络数据。它们还将以太坊区块链的状态存储到最近的128个区块,并可以根据需要建立历史状态存档。

挖矿节点(又叫Miner)

挖矿节点是运行挖矿客户软件的全节点。在目前状态下,以太坊通过工作量证明算法提供共识。这意味着挖矿节点与其他挖矿节点争夺算力,以创建下一个区块。一旦创建,新区块将被广播到网络,由其他节点验证,并附加到区块链的末尾。

轻节点

轻节点是全节点的“轻量”版,只包含区块头数据,比如前一个区块的哈希和时间戳,而不是整个区块数据。它们向全节点发出按需请求,用户需要时才验证状态的某些部分。典型的用途是查看余额、验证交易是否已确认、检查事件日志以及执行其他轻型任务。轻节点很容易由手机或Raspberry Pi等容量较低的设备运行。

存档节点

存档节点是一种“存档模式”下运行的全节点。它们包含与全节点相同的所有数据,但还包含自创始区块(Genesis Block,即第一个区块)以记录整个区块链的所有历史状态数据。下面将着重介绍存档节点。

三、存档节点详述

虽然全节点可以重建历史区块链状态数据,但这个过程缓慢且低效。您可能需要迅速提供这些数据,具体视用例而定。这时候存档节点就有了用武之地。因为存档节点包含自第一个区块以来的历史数据,它们可以随时轻松地跟踪任一笔交易。

为什么访问存档节点?

如果您需要从以太坊区块链获取最近的128个区块之前的信息,最有效的获取方式是通过存档节点。其中一些信息可能包括账户余额、智能合约代码、交易数量或特定存储位置的值。它们还可以无需在区块链上创建交易的情况下测试智能合约代码。

运行存档节点的硬件规格

运行您自己的节点意味着可以更好地控制您与区块链共享的信息。您可以创建更安全和私有的 dApp(去中心化应用程序),确保您的地址和余额不会泄漏到网络上的随机节点。运行存档节点还意味着无需注册任何第三方服务,即可快速访问历史区块链数据。

这些是您运行自己的以太坊存档节点所需的硬件规格:

  • 至少四个核心的 CPU
  • 至少16 GB的内存
  • 至少6 TB空间的SSD驱动器
  • 至少25 MBit/s的带宽

启动存档节点的要求使其可以被顺畅访问。算不上便宜,但个人负担得起。不过,这确实需要一些技术知识和不断的维护。如果您没有时间、精力或设备来自己运行,节点提供商是很好的选择。

四、存档节点提供商

节点提供商使任何人可以通过易于使用的API,轻松访问以太坊区块链,并与之交互。您要做的就是创建一个新项目,然后使用节点提供商提供的URL轻松调用JSON RPC方法。

Infura

Infura可以说是该领域大受欢迎的节点提供商。它由MetaMask和Truffle区块链开发框架背后的团队ConsenSys创建。它存在已有一段时日,其服务非常适合初学者和希望扩大规模的组织。

  • 具有免费存档节点访问权限
  • 提供对第2层扩展解决方案的访问
  • 满足您需求的其他附件

用例

根据构建的项目类型,您可以将几种不同的技术连接到节点提供商。

  • Truffle/Hardhat

如果您在编写与历史数据交互的智能合约,那么Truffle或Hardhat等开发套件将满足需求。它们都有各种各样的内置工具,可以让dApp的整个开发生命周期变得极其容易。在这种情况下,连接到存档节点就像将提供的API URL端点设置为要在前端代码中使用的变量一样简单。

  • Ganache

如果您需要快速访问存档节点以进行本地开发或测试,Truffle提供了可以很好地完成该任务的个人区块链。这个区块链名为Ganache。从Ganache版本7.0开始,启动具有存档访问权限的以太坊区块链的本地实例只需执行一个命令:

ganache --fork

原创文章,作者:币圈吴彦祖,如若转载,请注明出处:https://www.kaixuan.pro/news/389151/