1 个版本 (0 个不稳定版本)
6.3.1-rc3 | 2020年12月17日 |
---|
#6 在 #evmc
17KB
275 代码行
EVMC
Ethereum 客户端-虚拟机连接器 API
EVMC 是 Ethereum 虚拟机(EVMs)和 Ethereum 客户端之间底层 ABI。在 EVM 方面支持经典 EVM1 和 ewasm。在客户端方面定义了 EVM 实现访问 Ethereum 环境和状态的接口。
使用方法
文档
请访问 文档。
支持的语言
语言 | 支持版本 | 支持编译器 | 功能支持 |
---|---|---|---|
C | C99, C11 | GCC 8+, clang 9+, MSVC 2017+ | 主机和虚拟机端 |
C++ | C++17 | GCC 8+, clang 9+, MSVC 2017+ | 主机和虚拟机端 |
Go (绑定) | 1.11+ (带模块) | 仅主机端 | |
Rust (绑定)¹ | 2018 版本 | 1.47.0 及更高版本 | 仅虚拟机端 |
Java (绑定)² | 11 | 仅主机端 |
- ↑ Rust 支持有限,且尚未完全完成,但大部分功能已经可用。在此阶段可能会出现破坏性更改。
- ↑ Java 支持正在进行中,接口仍在变动。在此阶段可能会出现破坏性更改。
测试工具
- evmc run (tools/evmc) — 在任何 EVMC 兼容的 VM 实现中执行字节码。
- evmc-vmtester (tools/vmtester) — 可以测试任何 EVM 实现与 EVMC 的兼容性。
- evm-test (evmone → test/unittests) — 允许在任何 EVMC 兼容的 EVM 实现上运行 evmone 的单元测试集合。
- evmone-fuzzer (evmone → test/fuzzer) — 兼容EVMC的EVM实现的不同步fuzzer。
相关项目
EVMs
- aleth-interpreter
- Daytona
- eip1962-evmc(EIP-2003风格的预编译)
- evmjit
- evmone
- Hera
- Hera.rs
- ssvm-evmc
客户端
- aleth
- core-geth(进行中)
- evmc-js
- go-ethereum(进行中)
- nim-evmc
- pyevm(进行中)
- pyethereum(废弃)
- rust-ssvm(Rust宿主端)
- silkworm
- Solidity(用于集成测试)
- turbo-geth
维护者
另请参阅EVMC作者列表。
贡献
在EVMC Gitter聊天中与我们交谈。
许可
根据Apache许可证,版本2.0许可。
内部
制作新版本
- 更新CHANGELOG.md,填写发布日期,更新发布链接。
git add CHANGELOG.md
.- 标记新版本:
bumpversion --allow-dirty prerel
。 - 为下一个版本准备CHANGELOG:添加未发布部分和链接。
git add CHANGELOG.md
.- 开始新版本系列:
bumpversion --allow-dirty --no-tag minor
。
依赖关系
~2.4–4MB
~88K SLoC