本文档介绍了 Go-Ethereum (Geth),即以太坊协议的官方 Go 实现。Geth 作为以太坊的完整节点,允许用户通过维护区块链副本、处理交易以及与智能合约交互来参与以太坊网络。
Geth 实现以太坊协议,提供以下核心功能:
本概述侧重于 Geth 的高层架构和关键组件。有关特定子系统的详细信息,请参阅其各自的文档页面,例如 架构 或 核心组件。
来源
Geth 组织成几个相互关联的子系统:
来源
以太坊后端(eth/backend.go)是协调所有主要子系统的核心组件。它负责初始化和管理区块链、交易池、P2P 网络和其他服务。
区块链组件(core/blockchain.go)负责核心区块链操作:
状态管理(core/state/statedb.go)维护以太坊世界状态:
网络层负责节点发现、连接管理和数据同步。
p2p/server.go)交易池管理待处理的交易。
Geth 提供多种用户界面:
数据库层持久化区块链数据。
Geth 支持多个以太坊网络,每个网络都有自己的配置。
| 网络 | 链 ID | 描述 | 创世区块哈希 |
|---|---|---|---|
| 主网 | 1 | 主要的以太坊网络 | 0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3 |
| Sepolia | 11155111 | 权益证明测试网 | 0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9 |
| Holesky | 17000 | 权益证明测试网 | 0xb5f7f912443c940f21fd611f12828d75b534364ed9e95ca4e307729a4661bde4 |
| Hoodi | 560048 | 权益证明测试网 | 0xbbe312868b376a3001692a646dd2d7d1e4406380dfd86b98aa8a34d1557c971b |
来源
启动 Geth 时,客户端会经历一个初始化过程:
来源
来源
Geth 通过命令行标志、环境变量和配置文件提供广泛的配置选项。最常见的配置包括:
--mainnet、--sepolia、--holesky 或 --hoodi--datadir 用于指定区块链数据的位置--port、--maxpeers、--nat 等。--syncmode 用于在 snap 或 full 同步之间进行选择完整的配置选项列表可以通过运行 geth --help 或查阅 命令行界面 文档找到。
来源
Go-Ethereum (Geth) 是以太坊协议的一个全面实现,充当以太坊网络的参考客户端。其模块化架构将关注点分离到不同的组件中,每个组件负责以太坊协议的特定方面。这种设计允许灵活性、可维护性和可扩展性,同时确保以太坊规范的正确实现。
有关特定组件的详细信息,请参阅文档中的相应部分:
来源