搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

erigontech/erigon

金融

用 Go 实现的以太坊执行层节点,内置共识层,面向高效同步和大规模节点运维。

3,631
1,580
Go
LGPL-3.0
创建于 7 年前

项目定位

Erigon 是以 Go 编写的以太坊执行层客户端,并内置可嵌入的共识层 Caplin。它的设计重心是批量处理区块和不可变文件存储,而不是传统键值数据库。这对运维意味着:Erigon3 同步时下载约 99% 的 LatestState 和历史,而不是从创世块重新执行;历史保留到单笔交易粒度;大部分数据存在 segment/snapshot 文件中,chaindata 可以删除后重新生成,状态目录可软链接或挂载到高速盘,历史放在便宜盘上(README 第 38-54 行)。

仓库 README 面向代码贡献者;实际运行节点所需的安装方式、参数、修剪模式、端口和质押说明在文档站和安装指南。

适用对象

  • 需要为以太坊主网或 Gnosis Chain 运行执行层的节点运维者,可以搭配内置 Caplin,也可以外接 CL 客户端(JWT 与外接 CL 配置)。
  • 验证者:支持出块,--internalcl 默认开启(README 第 67-76 行)。
  • 基于 JSON-RPC、GraphQL 或 gRPC 接口开发的开发者(与 Erigon 交互),或需要把 RPC daemon 作为独立进程运行的场景(RPC daemon 文档)。
  • 需要编译、测试和修改客户端本身的贡献者。

构建与运行

构建需要 Go >= 1.26、GCC 11+ 或 Clang 13+、64 位架构,Linux 内核需大于 v4。x86-64 构建以 x86-64-v2 为基线(需要 SSE4.2、POPCNT),更老的 CPU 不受支持(README 第 93-114 行)。

git clone https://github.com/erigontech/erigon.git
cd erigon
make erigon

编译产物位于 ./build/bin。可用 -j<n> 并行编译,make all 构建完整套件,make help 列出所有目标。要构建某个已发布版本而非 main,请切换到对应 tag。预编译二进制、Docker 镜像和各平台安装步骤见安装页;Windows 可原生编译或使用 WSL2(原生编译、WSL2)。

其余可执行文件包括 rpcdaemon、sentry、txpool、downloader、integration、evm 和 MCP server;make all 还会构建 caplin、capcli、snapshots、rpctest 和 pics(README 第 115-131 行)。若要以独立用户身份从 build/bin 运行,需要先安装,例如 make DIST=/opt/erigon install(README 第 181-189 行)。

测试目标:make test-short、make test-all、make test-fixtures-cl(另有 EEST 和 zkevm fixture 套件)和 make lint(README 第 132-143 行)。发布前的增量同步验证是另一项工作,见 docs/TESTING.md。

使用约束

  • 同步和存储行为随版本变化:Erigon3 调整了历史粒度、不再存储 Logs(Receipts),历史交易改为重新执行,--prune 语义也有变化。修剪模式包括 archive、full、blocks、minimal(修剪模式),完整参数见 CLI 参考。
  • Caplin 默认启用;要外接共识层客户端需设置 --externalcl。
  • 日志分开存放:downloader 的 torrent 客户端始终写入 logs/torrent.log,级别取 --torrent.verbosity 与 WARN 中更详细的一档(README 第 60-66 行)。
  • 生产环境需要配置端口和防火墙,Hetzner 要求严格规则(防火墙说明)。
  • 作为库使用时,应固定分支名或 commit hash,而不是 tag:go get github.com/erigontech/erigon@main(README 第 144-150 行)。
  • 许可证为 LGPL-3.0(COPYING)。

HotRepo 点评

Erigon 的价值在架构取舍而非表面包装:单交易粒度的历史、基于快照的同步、内置共识层,都是为大规模节点运行而非最小占用而做的选择。仓库现有 3,629 star、1,580 fork;2026-11-15 的 Go 语言日榜记录中当天新增 3 star,位列该语言榜第 10。这只是单日记录,不构成趋势,也没有更长时间序列可供判断热度走向。更值得注意的是大量运维文档和拆分为 rpcdaemon、sentry、txpool、downloader 的进程设计——这更适合需要分离组件、逐项调优的运维者。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

LMDB freelist (and B-tree) Illustrated Guide
▲ 2 · 0 条评论 · 2026年1月4日

相关推荐

  1. argotorg/solidity面向以太坊虚拟机的智能合约编程语言与编译器,用于把合约逻辑编译成链上字节码。C++25,761
  2. foundry-rs/foundry用 Rust 编写的以太坊开发工具集,覆盖合约构建、测试、模糊测试、调试与部署。Rust10,761
  3. ethereum-optimism/optimism在以太坊上运行和扩展 Optimism rollup 的 OP Stack 核心组件集合。Go6,491