Repolode
ethereum

ethereum/go-ethereum

Go 语言实现的以太坊执行层客户端,可运行全节点或归档节点,并提供 JSON-RPC 接口。

Star
51,404
Fork
22,116
未关闭 Issue
480
最近提交
9小时前

这是什么?

go-ethereum(geth)是以太坊执行层的 Go 语言实现。其主程序 geth 可接入主网或 Sepolia 等测试网,同步链上状态,默认以全节点方式运行,也可作为保留全部历史状态的归档节点运行。

geth 通过 HTTP、WebSocket 和 IPC 提供标准以太坊 JSON-RPC 接口以及自身的管理接口,并内置交互式 JavaScript 控制台,可用于发送交易、创建账户和部署合约。配套工具包括用于生成合约绑定代码的 abigen、用于调试 EVM 字节码的 evm、用于解析 RLP 数据的 rlpdump,以及用于底层网络检查的 devp2p。

在本地开发场景下,geth 提供单节点开发模式和可用于 Go 测试的模拟后端,Kurtosis 则可以搭建多节点测试网络。合并(The Merge)之后,运行节点还需要同时部署共识层客户端。

核心功能

  • 01默认以全节点运行,也可作为保留全部历史状态的归档节点运行。
  • 02通过 HTTP、WebSocket 和 IPC 提供标准以太坊 JSON-RPC 接口。
  • 03内置交互式 JavaScript 控制台,可直接与网络交互。
  • 04提供 abigen,可根据合约 ABI 生成类型安全的 Go 绑定代码。
  • 05附带 evm 字节码执行工具和 rlpdump 等开发者实用程序。
  • 06支持主网、Sepolia 等测试网以及私有网络。

适用场景

  • 运行以太坊节点,读取链上数据或提交交易。
  • 为后端服务生成智能合约的 Go 绑定代码。
  • 使用 evm 工具逐条调试 EVM 操作码。
  • 搭建本地开发链或多节点测试网络,用于合约测试。

快速上手

  1. 1

    安装 Go 1.25 或更高版本及 C 编译器,然后从源码构建 geth

    make geth
  2. 2

    运行 geth 并打开交互控制台以同步以太坊主网

    geth console
  3. 3

    或者使用官方镜像通过 Docker 运行 geth

    docker run -d --name ethereum-node -v /Users/alice/ethereum:/root -p 8545:8545 -p 30303:30303 ethereum/client-go

使用前须知

  • 运行全节点需要较高的硬件配置,至少 2TB 固态硬盘空间和 8GB 内存。
  • 从源码构建需要 Go 1.25 或更高版本以及 C 编译器。

标签

常见问题

go-ethereum 是什么?
Go 语言实现的以太坊执行层客户端,可运行全节点或归档节点,并提供 JSON-RPC 接口。 go-ethereum(geth)是以太坊执行层的 Go 语言实现。其主程序 geth 可接入主网或 Sepolia 等测试网,同步链上状态,默认以全节点方式运行,也可作为保留全部历史状态的归档节点运行。
go-ethereum 可以免费使用吗?用的什么许可证?
go-ethereum 以 LGPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
go-ethereum 还在维护吗?
活跃维护中。go-ethereum 最近一次提交是在 2026年10月21日。
go-ethereum 适合用来做什么?
运行以太坊节点,读取链上数据或提交交易。 为后端服务生成智能合约的 Go 绑定代码。 使用 evm 工具逐条调试 EVM 操作码。 搭建本地开发链或多节点测试网络,用于合约测试。
go-ethereum 怎么安装和运行?
安装 Go 1.25 或更高版本及 C 编译器,然后从源码构建 geth: make geth 运行 geth 并打开交互控制台以同步以太坊主网: geth console 或者使用官方镜像通过 Docker 运行 geth: docker run -d --name ethereum-node -v /Users/alice/ethereum:/root -p 8545:8545 -p 30303:30303 ethereum/client-go
在哪里获取 go-ethereum?
源代码和安装说明在 GitHub 上:https://github.com/ethereum/go-ethereum

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目