EVMC
API del conector cliente-VM de Ethereum
El EVMC es la ABI de bajo nivel entre las máquinas virtuales Ethereum (EVM) y los clientes Ethereum. En el lado de EVM, admite EVM1 clásico y ewasm. En el lado del Cliente, define la interfaz para que las implementaciones de EVM accedan al entorno y al estado de Ethereum.
Uso
Documentación
Por favor visite la documentación.
Soporte de idiomas
Idioma | Versiones compatibles | Compiladores compatibles | Soporte de funciones |
---|
do | C99, C11 | GCC 8+, sonido metálico 9+, MSVC 2017+ | Lado del host y de la VM |
C++ | C++17 | GCC 8+, sonido metálico 9+, MSVC 2017+ | Lado del host y de la VM |
Ir (enlaces) | 1.11+ (con módulos) | | Solo del lado del host |
Óxido (uniones) ¹ | edición 2018 | 1.47.0 y más reciente | Solo del lado de la máquina virtual |
Java (enlaces) ² | 11 | | Solo del lado del host |
- ↑ El soporte de Rust es limitado y aún no está completo, pero ya es prácticamente funcional. En esta etapa es posible realizar cambios importantes.
- ↑ El soporte de Java está en progreso y la interfaz continúa cambiando. En esta etapa es posible realizar cambios importantes.
Herramientas de prueba
- evmc run (tools/evmc): ejecuta código de bytes en cualquier implementación de VM compatible con EVMC.
- evmc-vmtester (tools/vmtester): puede probar cualquier implementación de EVM para comprobar su compatibilidad con EVMC.
Proyectos relacionados
EVM
- aleth-intérprete
- diatona
- eip1962-evmc (precompilación estilo EIP-2003)
- evmjit
- evmone
- hera
- hera.rs
- ssvm-evmc
Clientela
- aleth
- core-geth (en progreso)
- erigon (con gusano de seda)
- evmc-js
- go-ethereum (en progreso)
- nim-evmc
- fantasma (en progreso)
- pyevm (en progreso)
- pietereo (abandonado)
- Rust-ssvm (lado del host de Rust)
- gusano de seda
- Solidez (para pruebas de integración)
mantenedores
- Alex Beregszaszi @axic
- Paweł Bylica @chfast
Consulte también la lista de autores de EVMC.
Contribuyendo
Hable con nosotros en el chat de EVMC Gitter.
Licencia
Licenciado bajo la Licencia Apache, Versión 2.0.
Interno
Haciendo un nuevo lanzamiento
- Actualice CHANGELOG.md, ingrese la fecha de lanzamiento, actualice el enlace de lanzamiento.
-
git add CHANGELOG.md
. - Etiqueta nueva versión:
bumpversion --allow-dirty prerel
. - Prepare CHANGELOG para la próxima versión: agregue una sección y un enlace inéditos.
-
git add CHANGELOG.md
. - Inicie una nueva serie de lanzamientos:
bumpversion --allow-dirty --no-tag minor
.