阿里云服务器上构建基于PoS的以太坊2.0私有链
一、环境
| 服务器 | 系统 | CPU | 内存 | 存储 | 
|---|---|---|---|---|
| 阿里云服务器(虚拟机) | Linux | 2 vCPU | 2GB | 云盘 40 GB | 
二、以太坊客户端
以太坊客户端是运行在以太坊网络上的软件程序,用于实现以下核心功能:
- 区块链同步:下载并维护完整的以太坊区块链数据,实时更新最新的区块和交易信息
- 交易验证:检查交易的有效性(签名、余额等),确保交易符合智能合约逻辑
- 共识参与:作为节点参与共识机制(PoS),验证新区块的生成和网络状态
- 通信功能:与其他节点建立P2P连接,传播交易和区块信息
- API服务:提供JSON-RPC接口与外部交互,支持DApp开发和钱包集成
在工作量证明(PoW)时代,一个节点软件(比如大家熟知的Geth)几乎包揽了所有工作,足以运行一个完整的以太坊节点。但在 2022 年以太坊合并(The Merge)后,将原有的PoW链与一条全新的PoS链(即信标链,Beacon Chain)合并在了一起:
 
 自此以太坊网络从 PoW 转向 PoS。权益证明时代,由于共识逻辑由称为共识客户端的单独软件实现,故而一个以太坊节点需要运行两种客户端软件:执行客户端和共识客户端。
- 执行客户端(Execution Client, EL):侦听网络中广播的新交易,验证交易有效性,然后将它们放入本地的交易池中。EL负责交易执行和状态转换,如果是智能合约,则在内置的以太坊虚拟机中运行它,并更新以太坊的“世界状态”。另外,EL还提供面向用户的API。
| 客户端 | 语言 | 网络 | 
|---|---|---|
| Geth | Go | 主网、Sepolia、Holesky | 
| Nethermind | C#、.NET | 主网、Sepolia、Holesky | 
| Besu | Java | 主网、Sepolia、Holesky | 
| Erigon | Go | 主网、Sepolia、Holesky | 
| Reth | Rust | 主网、Sepolia、Holesky | 
- 共识客户端(Consensus Client, CL):实现权益证明共识算法,使网络能够对来自执行客户端的数据达成一致。管理验证者(Validators),处理他们的质押(Stake)和罚没,并为验证者分配任务。在某个时间点,它会指定一个验证者来提议 (Propose) 一个新区块。其他验证者则需要对这个区块进行证明 (Attest),即投票确认该区块的有效性。验证器客户端是共识客户端的可选附加组件。
| 客户端 | 语言 | 网络 | 
|---|---|---|
| Lighthouse | Rust | 信标链、Holesky、Pyrmont、Sepolia 等 | 
| Lodestar | TypeScript | 信标链、Holesky、Sepolia 等 | 
| Prysm | Go | 信标链、Gnosis、Holesky、Pyrmont、Sepolia 等 | 
| Teku | Java | 信标链、Gnosis、Holesky、Sepolia 等 | 
| Nimbus | Nim | 信标链、Holesky、Sepolia 等 | 
那么,EL与CL如何协同工作? 他们通过一个名为 引擎API (Engine API) 的本地RPC接口进行通信。
 
