bluealloy/revm

GitHub: bluealloy/revm

用 Rust 编写的高性能以太坊虚拟机实现,为区块链基础设施提供可扩展的智能合约执行与交易处理框架。

Stars: 2195 | Forks: 1027

### Revm [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/74a2ce8269194457.svg)][gh-ci] [![License](https://img.shields.io/badge/License-MIT-orange.svg)][mit-license] [![crates.io](https://img.shields.io/crates/v/revm.svg)](https://crates.io/crates/revm) [![Chat](https://img.shields.io/badge/chat-telegram-blue)][tg-url] Revm 是一个用 Rust 编写的高度高效且稳定的以太坊虚拟机 (EVM) 实现。 ![banner](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/80f2bf353a194503.png) Revm 以其稳健性而闻名,是最受欢迎的库之一,也是以太坊生态系统的关键组件。Revm 在各种项目中发挥着至关重要的作用,被几乎所有工具和区块构建者广泛使用。它被集成到 Reth、多种 Layer 2 变体及其他客户端中,并作为 zkVM 的标准。 Revm 提供两个主要应用:首先,它作为一个执行器,用户可以在其中设置区块信息并处理主网交易;其次,它作为一个框架,促进对不同 EVM 变体(如 [Optimism](https://github.com/ethereum-optimism/optimism))的扩展和支持。 ### 如何使用: 这是一个使用 Execution API 的简单示例:它允许我们创建一个以太坊虚拟机 (EVM) 并执行交易。此外,它还可以用于通过 inspector 生成追踪,或者实现更复杂的 foundry cheatcodes 示例。 ``` let mut evm = Context::mainnet().with_block(block).build_mainnet(); let out = evm.transact(tx); // or you can use powerful inspection tool to trace it let mut evm = evm.with_inspector(tracer); let out = evm.inspect_tx(tx); ``` EVM Framework API 使用起来稍微复杂一些,但本文档提供了详细的解释。它使用户能够扩展逻辑,整合各种上下文类型,并提供内置的检查支持。有关实际示例,您可以参考 [Optimism](https://github.com/ethereum-optimism/optimism)。 ### 用户: 如前所述,有几组项目在使用这项技术: * **主要的区块构建者**。 * **客户端**:[Reth](https://github.com/paradigmxyz/reth)、[Helios](https://github.com/a16z/helios)、[Trin](https://github.com/ethereum/trin)... * **工具**:[Foundry](https://github.com/foundry-rs/foundry/)、[Hardhat](https://github.com/NomicFoundation/hardhat)... * **L2s**:[Optimism](https://github.com/ethereum-optimism/optimism)、[Coinbase](https://www.base.org/)、[Scroll](https://github.com/scroll-tech/revm)... * **zkVM**:[Risc0](https://github.com/risc0/risc0-ethereum)、[Succinct](https://github.com/succinctlabs/rsp)、[Boundless](https://github.com/boundless-xyz/reth)... 使用 Revm 的项目完整列表可在本书的 [awesome-revm](https://bluealloy.github.io/revm/awesome.html) 章节中找到。 ### 开发者指南:操作说明 [书籍](https://bluealloy.github.io/revm/) 和 [`Architecture and API`](https://bluealloy.github.io/revm/architecture.html) 页面是最佳的入门资源。 这里可以找到一些快速链接。有些指向代码文档,有些指向书籍。代码文档用于解释特定代码部分的用法,而书籍则用于对架构或组件/项目如何组合在一起提供更全面的概述。 * [如何构建和使用 revm](https://bluealloy.github.io/revm/dev.html) * [架构概述](https://bluealloy.github.io/revm/architecture.html) * [项目结构](https://github.com/bluealloy/revm/tree/main/crates)(crates 列表及其版本) * [如何使用 Revm Framework](https://github.com/bluealloy/revm/tree/main/examples/my_evm)(MyEvm 示例) * [发布流程和更新日志说明](https://bluealloy.github.io/revm/release_procedure.html) * [如何使用 revme](https://github.com/bluealloy/revm/tree/main/bins/revme)(带有少量命令的 Revm 二进制文件) * [如何运行以太坊测试](https://bluealloy.github.io/revm/revme.html#running-eth-tests) * 如果需要更多解释,请提交 PR 请求。 ## 支持的 Rust 版本 (MSRV) Revm 始终致力于与最新的 Rust 稳定版保持同步。 最低支持的 Rust 版本 (MSRV) 可能会随时更新,以便我们能够利用 Rust 中的新特性和改进。 ### 许可证 Revm 采用 MIT 许可证授权。 除非您明确声明,否则由您有意提交以包含在这些 crates 中的任何贡献,均应按上述方式获得许可,无需任何额外的条款或条件。 ### 安全 如有任何安全问题或发现,请通过电子邮件 [dragan0rakita@gmail.com](mailto:dragan0rakita@gmail.com) 直接联系我,或在 Keybase 上通过用户名 @draganrakita 联系我。
标签:EVM, Layer 2, Optimism, Reth, Revm, Rust, Web3, zkVM, 交易追踪, 以太坊虚拟机, 加密货币, 区块链, 区块链开发库, 去中心化应用, 可视化界面, 底层框架, 执行器, 智能合约执行, 网络流量审计, 虚拟机实现, 通知系统