Fast Ethereum Virtual Machine implementation
evmone is a C++ implementation of the Ethereum Virtual Machine (EVM). Created by members of the Ewasm team, the project aims for clean, standalone EVM implementation that can be imported as an execution module by Ethereum Client projects. The codebase of evmone is optimized to provide fast and efficient execution of EVM smart contracts.
Characteristic of evmone
- Exposes the EVMC API.
- The "indirect" subroutine threading is the dispatch method - a table with pointers to subroutines is prepared during the analysis of the bytecode.
- The gas cost and stack requirements of block of instructions is precomputed and applied once per block during execution.
- The intx library is used to provide 256-bit integer precision.
- The ethash library is used to provide Keccak hash function implementation
needed for the special
- Requires C++17 standard.
To build the evmone EVMC module (shared library), test or benchmark.
git clone --recursive https://github.com/ethereum/evmone cd evmone mkdir build cd build cmake .. -DEVMONE_TESTING=ON cmake --build . -- -j bin/evmone-unittests bin/evmone-bench
The evm-test executes a collection of unit tests on any EVMC-compatible Ethereum Virtual Machine implementation. The collection of tests comes from the evmone project.
Paweł Bylica @chfast
Licensed under the Apache License, Version 2.0.