bluealloy/revm
GitHub: bluealloy/revm
用 Rust 编写的高性能以太坊虚拟机实现,为区块链基础设施提供可扩展的智能合约执行与交易处理框架。
Stars: 2195 | Forks: 1027
### Revm
[][gh-ci]
[][mit-license]
[](https://crates.io/crates/revm)
[][tg-url]
Revm 是一个用 Rust 编写的高度高效且稳定的以太坊虚拟机 (EVM) 实现。

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, 交易追踪, 以太坊虚拟机, 加密货币, 区块链, 区块链开发库, 去中心化应用, 可视化界面, 底层框架, 执行器, 智能合约执行, 网络流量审计, 虚拟机实现, 通知系统