EVMC
API du connecteur Ethereum Client-VM
L'EVMC est l'ABI de bas niveau entre les machines virtuelles Ethereum (EVM) et les clients Ethereum. Du côté EVM, il prend en charge les classiques EVM1 et ewasm. Côté client, il définit l'interface permettant aux implémentations EVM d'accéder à l'environnement et à l'état Ethereum.
Usage
Documentation
Veuillez consulter la documentation.
Prise en charge des langues
Langue | Versions prises en charge | Compilateurs pris en charge | Prise en charge des fonctionnalités |
---|
C | C99, C11 | GCC 8+, clang 9+, MSVC 2017+ | Côté hôte et VM |
C++ | C++17 | GCC 8+, clang 9+, MSVC 2017+ | Côté hôte et VM |
Aller (reliures) | 1.11+ (avec modules) | | Côté hôte uniquement |
Rouille (reliures) ¹ | édition 2018 | 1.47.0 et plus récent | Côté VM uniquement |
Java (liaisons) ² | 11 | | Côté hôte uniquement |
- ↑ Le support de Rust est limité et pas encore complet, mais il est déjà pour l'essentiel fonctionnel. Des changements radicaux sont possibles à ce stade.
- ↑ La prise en charge de Java est en cours et l'interface reste en évolution. Des changements radicaux sont possibles à ce stade.
Outils de test
- evmc run (tools/evmc) — exécute le bytecode dans toute implémentation de VM compatible EVMC.
- evmc-vmtester (tools/vmtester) — peut tester la compatibilité de n'importe quelle implémentation EVM avec EVMC.
Projets associés
EVM
- interprète aleth
- Daytona
- eip1962-evmc (précompilation de style EIP-2003)
- evmjit
- Evmone
- Héra
- Hera.rs
- ssvm-evmc
Clientèle
- aleth
- core-geth (en cours)
- érigon (avec le ver à soie)
- evmc-js
- aller à l'Ethereum (en cours)
- nim-evmc
- fantôme (en cours)
- pyevm (en cours)
- pyethereum (abandonné)
- rust-ssvm (Rust côté hôte)
- ver à soie
- Solidité (pour les tests d'intégration)
Mainteneurs
- Alex Beregszaszi @axic
- Paweł Bylica @chfast
Voir aussi la liste des auteurs EVMC.
Contribuer
Parlez avec nous sur le chat EVMC Gitter.
Licence
Sous licence Apache, version 2.0.
Interne
Faire une nouvelle version
- Mettez à jour CHANGELOG.md, indiquez la date de sortie, mettez à jour le lien de version.
-
git add CHANGELOG.md
. - Balise nouvelle version :
bumpversion --allow-dirty prerel
. - Préparez CHANGELOG pour la prochaine version : ajoutez une section et un lien inédits.
-
git add CHANGELOG.md
. - Démarrez une nouvelle série de versions :
bumpversion --allow-dirty --no-tag minor
.