Go 语言实现的以太坊执行层客户端,可运行全节点或归档节点,并提供 JSON-RPC 接口。
ethereum/EthLib
用 Lean 编写、经过形式化验证的以太坊基础组件库,供 Lean 项目共享复用。
- Star
- 83
- Fork
- 22
- 未关闭 Issue
- 25
- 最近提交
- 24小时前
这是什么?
EthLib 用 Lean 提供以太坊的定义及对应证明,让 Lean 项目可以基于同一套实现开发,而不必各自维护。其覆盖的基础组件包括 256 位 EVM 字、Keccak、secp256k1、BLS12-381、KZG 等哈希与签名原语,RLP 和 SSZ 等编码,discv4、discv5、RLPx 及 gossipsub 参数等网络模块,以及 EVM 操作码、预编译合约、状态、交易、区块和 Merkle Patricia Trie 等执行层组件。共识层部分包含配置、slot 与 epoch、委员会以及 fork choice 模型。
库按层次组织,模块只能依赖本层或更底层的模块,执行层与共识层彼此独立。部分原语通过 C 绑定导出,以太坊客户端可在原生实现出现之前临时使用,若性能足够也可长期使用。
构建需要 elan 和 Mathlib,运行 `lake build` 即可编译所有原语并检查全部证明。另有独立的测试套件用于验证 Python 绑定。
核心功能
- 01涵盖 256 位 EVM 字、哈希函数,以及 secp256k1、BLS、KZG 等签名与承诺方案。
- 02包含执行层与共识层使用的 RLP 和 SSZ 编码。
- 03提供 discv4、discv5、RLPx 及 gossipsub 参数等网络层定义。
- 04按分叉划分建模 EVM 操作码、全部 18 个预编译合约、状态、交易和区块。
- 05部分原语通过 C 绑定导出,可供以太坊客户端调用。
适用场景
- 在 Lean 项目中直接复用经过验证的以太坊规范,而无需自行实现。
- 以太坊客户端在原生实现完成前,临时通过绑定调用这些原语。
- 依据形式化定义核对 EVM 预编译合约或交易规则的行为。
- 研究如何用定理证明器描述以太坊执行层与共识层协议。
快速上手
- 1
使用 README 中的官方安装脚本安装 elan(Lean 工具链管理器)
- 2
从缓存下载 Mathlib 依赖
lake exe cache get - 3
编译基本组件并检查所有证明
lake build
使用前须知
- 构建需要通过 elan 安装 Lean 工具链并下载 Mathlib 依赖。
- 使用 Python 绑定需要通过 uv 构建原生扩展。
标签
常见问题
- EthLib 是什么?
- 用 Lean 编写、经过形式化验证的以太坊基础组件库,供 Lean 项目共享复用。 EthLib 用 Lean 提供以太坊的定义及对应证明,让 Lean 项目可以基于同一套实现开发,而不必各自维护。其覆盖的基础组件包括 256 位 EVM 字、Keccak、secp256k1、BLS12-381、KZG 等哈希与签名原语,RLP 和 SSZ 等编码,discv4、discv5、RLPx 及 gossipsub 参数等网络模块,以及 EVM 操作码、预编译合约、状态、交易、区块和 Merkle Patricia Trie 等执行层组件。共识层部分包含配置、slot 与 epoch、委员会以及 fork choice 模型。
- EthLib 可以免费使用吗?用的什么许可证?
- EthLib 以 CC0-1.0 许可证开源。用于商业产品前,请先确认许可证条款。
- EthLib 还在维护吗?
- 活跃维护中。EthLib 最近一次提交是在 2026年11月6日。
- EthLib 适合用来做什么?
- 在 Lean 项目中直接复用经过验证的以太坊规范,而无需自行实现。 以太坊客户端在原生实现完成前,临时通过绑定调用这些原语。 依据形式化定义核对 EVM 预编译合约或交易规则的行为。 研究如何用定理证明器描述以太坊执行层与共识层协议。
- EthLib 怎么安装和运行?
- 使用 README 中的官方安装脚本安装 elan(Lean 工具链管理器) 从缓存下载 Mathlib 依赖: lake exe cache get 编译基本组件并检查所有证明: lake build
- 在哪里获取 EthLib?
- 源代码和安装说明在 GitHub 上:https://github.com/ethereum/EthLib
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用 Rust 编写的以太坊智能合约开发工具集,包含 Forge、Cast、Anvil 和 Chisel。
基于 Reth NodeBuilder API 构建的 BSC 兼容执行客户端,可同步 BSC 主网与测试网。
一个零知识虚拟机,可为用 Rust 或其他 LLVM 编译语言编写的程序生成正确执行的证明。
Echidna 是一款用 Haskell 编写的以太坊智能合约模糊测试工具,通过生成调用序列来验证不变量和断言。
为 Lean 定理证明器提供基于大语言模型的证明自动化,包括策略建议、证明搜索和前提选择。