以太坊中的节点和客户端是什么?

2025年4月10日 | 阅读 6 分钟
What are Nodes and Clients in Ethereum?

虽然“以太坊客户端”和“以太坊节点”有时会被混用,但它们并非完全相同。

“客户端是指您选择下载到系统中的任何应用程序,以便与计算机网络提供的不同应用程序或功能进行交互。”例如,Gmail 是个人用户用于通过连接到电子邮件服务器来发送和接收电子邮件的程序客户端。

以太坊节点运行程序,用于访问以太坊账本上的交易,包括在以太坊上构建的创新合约应用,被称为以太坊客户端。当前正在运行的客户端程序称为“节点”。您必须先下载一个加密货币客户端程序来管理网络上的节点。

以太坊节点:它们究竟是什么?

能够在以太坊平台上执行客户端应用程序并完成特定任务的机器被称为“节点”。根据用户的需求,可以运行三种类型的节点:全节点、轻节点和存档节点。这些节点可以用于钱包或去中心化应用程序(dapps)。

这关系到节点接收新信息的速度,以便您的客户机进行解码。每个节点对知识的解释方式不同,并提供不同的同步机制。

  1. 全节点包含丰富的数据;它们能够保存和共享以太坊网络上的所有信息。此外,所有节点都将参与交易验证,这包括确认网络上的每个区块和状态都是正确的。
  2. 实现全节点的好处是能够与任何公开可访问的区块链智能合约进行即时通信。此外,智能合约可以立即部署到区块链的公共网络上,全节点可以做到这一点。
  3. 然而,主要的智能合约功能和总使用量以及信息维护都会产生费用。溢出的节点可能会给系统的硬件和带宽容量带来负担。当服务器首次设置时,信息同步可能需要几天时间,使得全面的数据检索成为一项极其繁琐的过程。之后,为了避免再次经历整个同步过程,节点需要更新、维护并保持可用。
  4. 轻节点在功能上与全节点相似,但管理的细节较少。轻节点存储链的起始数据,其中包括前一个区块的哈希值以及日期和时间。它只能根据需要获取额外数据。它们可以确认数据的准确性,但并不完全负责区块验证。大多数情况下,轻节点安装在远程客户端中。由于这些节点不需要复杂的计算和存储任务,因此在手机等低容量设备上显示出巨大潜力。
  5. 存档节点除了存储全节点提供的所有数据外,还会创建以前区块链配置的记录。在客户端完成同步后,历史信息会保留在存档节点上。相比之下,全节点和轻节点会“修剪”区块链中存储的历史数据,允许它们重建数据但丢弃原始数据。
  6. 尽管普通用户可能不认为存档节点有益,但它们在链数据分析、钱包供应商和区块浏览器方面非常成功。

以太坊有什么应用?

由于计算机使程序员能够使用多种编程语言与互联网和其他网络设备进行交互,因此应用程序可能对用户很有帮助。

GoRustJavaC# 等等,都是以太坊基金会提供的可用于编程的语言。许多其他开发人员还创建了以太坊应用程序以提供更多的语言兼容性。

以太坊客户端最常用于交易和挖矿布局,但它们可以用于更多方面,而不仅仅是标准的区块链交互。

以太坊基金会维护以下类型的客户端

  1. OpenEthereum (Rust)
  2. Geth (Go)
  3. Nethermind,或 https://nethermind.io/client (C#,.NET)
  4. Besu (Java)
  5. Erigon (Multi/Go)

这些为开发人员提供了实现其以太坊应用程序的选择。当以太坊基金会不正式支持您想要的语言时,还有许多第三方数字货币客户端可提供额外的语言支持。

所有上述不同的客户端都是可行的,因为以太坊在官方规范中有所规定,有时被称为“黄皮书”。以太坊的官方规范将它的账本系统与比特币区分开来。比特币核心缺乏以太坊为所有客户端指定的标准化行为。以太坊的规范通过提供简单的语言和统一的参考,允许区块链支持使用以太坊客户端的不同但兼容的软件版本。

以太坊客户端版本

1. 全客户端

全客户端包含分布式账本的整个加密货币,这需要巨大的存储空间(根据最新估计,超过 1TB)并且可能需要几天时间进行同步。全客户端允许连接的节点在系统上执行任何功能,包括挖矿、验证交易和区块头以及执行智能合约。

2. 轻客户端

可以实现部分或完全集成的区块链用户。在之前的简要描述中解释了运行“完整”客户端的操作,但重要的是要记住,您必须具备运行完整客户端的能力。一般来说,当效率和数据保留成为关键考虑因素时,程序员会选择使用“轻量级客户端”。轻量级客户端提供完整客户端的部分功能。由于轻量级客户端不包含整个以太坊账本,不像完整客户端那样,它们可以提供更高的效率和更大的可用数据容量。

轻客户端的功能以以太坊客户端的目标为导向。例如,在钱包中管理以太坊地址(包括私钥)通过轻量级客户端有很多用途。它们通常还管理与智能合约的广播关系和交易。汇率、数据检索、应用网站以及JavaScript 对象中的 web3 版本是支持远程客户端的其他用途。

3. 远程客户端

与非正式客户端平行,还有一种称为远程客户端的客户端。主要区别在于,外部客户端不验证支付或区块头,也不在本地保留分布式账本的记录。相反,为了访问分布式以太坊系统,远程用户依赖于完整或轻量级代理。这种类型的用户的主要功能是作为账户进行通信和接收资金。

客户端和节点之间的区别

客户端和节点相互协作,因此这两个术语经常被混用。然而,为了连接到数字货币的系统,它们必须独立运行。可以将网络和客户端的功能类比为计算机使用互联网:客户端是实际的机器,而节点代表像 Microsoft Windows 或 iOS 这样的平台。用户可以通过客户端机器访问节点软件,该软件允许用户连接到全球网络。您将在不同的机器上使用相同的操作系统,并且也可以在不同的操作系统上连接到同一个网页。

MetaMask

  • MetaMask 是以太坊客户端实际工作方式的一个极好例子。MetaMask 是一个在网页上运行的简单合同探测器 RPC(远程过程调用)客户端和钱包。MetaMask 可以在任何运行FirefoxChrome、Opera 和 Brave 的机器上运行。
  • MetaMask 使用轻量级客户端,作为远程客户端的一个版本,来连接分布式账本。为了确保高效的安全和交易保证,MetaMask 使用独立的轻量级客户端与远程客户端接口,以防止任何安全问题。
  • 与不同的基于计算机的钱包相比,MetaMask 在 JavaScript 读取器中嵌入了 web3 示例,使浏览器能够访问加密货币主网以及其他测试网,例如 Kovan 和 Ropsten 测试网,并带有本地 RPC 节点示例。与大多数浏览器钱包一样,MetaMask 尽管具有独特的特性,但仍使用外部连接。Web3 Js、注入、事务通信以及钱包存储功能都由基于网络的浏览器提供支持。