了解 Solana 和以太坊上的客户端之间的区别。
以太坊和 Solana 是独特的区块链,具有多个不同的验证器客户端来验证交易。拥有各种验证器客户端有助于防止特定客户端遇到问题时网络中断。在本章中,我们将介绍以太坊和 Solana 生态系统中的验证器客户端,并讨论存在的节点类型。

验证器客户端的类型

随着以太坊从 PoW(工作量证明)过渡到 PoS(权益证明),它采用了两种类型的验证器客户端:执行层 (EL) 和共识层 (CL) 客户端。执行客户端负责接收网络上广播的新交易、在 EVM 上执行它们以及维护所有以太坊数据的当前状态和数据库。另一方面,共识客户端实现 PoS 的共识算法,并根据来自执行客户端的已验证数据在网络上达成共识。这两种类型的客户端扮演着不同的角色,这就是为什么以太坊验证器节点通常同时运行执行客户端和共识客户端的原因。相比之下,Solana 将这两种功能结合在一个客户端中。

以下是以太坊的执行客户端列表:

Client Language
Geth Golang
Besu Java
Nethermind C# .NET
Erigon Go
Reth Rust

以下是以太坊共识客户端列表:

Client Language
Lighthouse Rust
Lodestar TypeScript
Nimbus Nim
Prysm Go
Teku Java

现在,让我们看一下 Solana 的验证者客户端列表:

Client Language
Solana Labs Rust
Jito-Solana Rust
Firedancer C++
sig Zig
Agave Rust

以太坊和 Solana 的节点数量

对于以太坊,您可以通过访问clientdiversity检查每个验证器客户端运行的节点数量。 对于 Solana,您可以从验证器健康报告中找到此信息。

节点类型

根据使用情况和所需条件,节点有多种形式。它们可以是存储所有数据的重量级节点,也可以是专注于处理交易的轻量级节点。
以太坊根据数据存储范围和参与共识的方式将节点分为三类:

  • 全节点:全节点逐个区块验证区块链,下载并验证每个区块的数据。全节点有多种类型,有些从创世区块开始,验证整个区块链历史中的所有区块。其他全节点从最近的可信区块开始验证,通常维护最近 128 个区块的本地副本,并定期删除旧数据以节省磁盘空间。旧数据可以在需要时重新生成。
  • 存档节点:存档节点验证并保存从创世块开始的所有块,从不删除任何数据。它们对于区块浏览器、钱包提供商和链分析等服务以及查询测试集(无需可靠地挖掘它们)至关重要。
  • 轻节点:轻节点仅下载区块头,而不是整个区块链。轻节点所需的其他信息则向全节点请求。轻节点可以独立地根据区块头的状态根验证收到的数据。它们不需要高带宽或强大的硬件,因此可以通过手机或嵌入式设备参与以太坊网络。轻节点不参与共识,这意味着它们不能成为矿工或验证者,但它们提供与全节点相同的功能和安全保障,从而允许访问以太坊区块链。

对于 Solana 来说,节点根据其参与共识的方式分为两种类型:

  • 共识节点:共识节点在网络中发挥着至关重要的作用,它们负责创建和向网络提交新区块,并对其他节点提交的新区块的有效性进行投票。它们是网络运行的核心。
  • RPC 节点(远程过程调用节点):RPC 节点对于在 Solana 区块链上构建的 dApp 至关重要,可充当区块链数据的网关。与共识节点一样,它们独立验证所有新区块和网络更改,但不参与投票。

Solana 从一开始就将 RPC 节点与共识节点区分开来。不过,RPC 节点不参与投票。以太坊的 RPC 节点通常基于完整节点或存档节点。

Solana 为什么这样对节点进行分类?与以太坊不同,Solana 每秒生成大量交易,由于交易量巨大,将整个区块链存储在每个节点上是不切实际的。目前,Solana 使用 Google Bigtable 存储数据,RPC 节点从那里访问数据。因此,Solana 不太注重在本地存储大量数据,这与以太坊的节点分类标准不同。

总而言之,比较如下:

节点类型 以太坊 Solana
存储所有数据并参与共识的节点。 归档节点 [无]
节点存储一些数据并参与共识。 全节点 共识节点
节点存储一些数据但不参与共识。 轻节点 RPC 节点

RPC 服务列表

有同时支持以太坊和 Solana 的 RPC 服务,也有支持单链的 RPC 服务。Alchemy 和 Quicknode 等服务同时支持以太坊和 Solana。您可以在此处查看 Solana 的各种 RPC 服务

概括

与以太坊一样,Solana 也拥有各种类型的验证器客户端。
虽然每个链的节点类型可能看起来不同,但它们从根本上为用户提供相同的功能。