cryptomental / evmone

Fast Ethereum Virtual Machine implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

evmone

ethereum badge readme style standard badge codecov badge circleci badge appveyor badge license badge

Fast Ethereum Virtual Machine implementation

The C++ implementation of the Ethereum Virtual Machine (EVM) focused on speed. Compatible with EVMC.

Characteristic of evmone

  1. The "indirect" subroutine threading is the dispatch method - a table with pointers to subroutines is prepared during the analysis of the bytecode.
  2. The gas cost and stack requirements of block of instructions is precomputed and applied once per block during execution.
  3. The intx library is used to provide 256-bit integer precision.
  4. The ethash library is used to provide Keccak hash function implementation needed for the special SHA3 instruction.

Usage

To build the evmone EVMC module (shared library), test or benchmark.

git clone --recursive https://github.com/chfast/evmone
cd evmone
mkdir build
cd build

cmake .. -DEVMONE_TESTING=ON
cmake --build . -- -j

bin/evmone-unittests
bin/evmone-bench

Maintainer

Paweł Bylica @chfast

License

license badge

Licensed under the Apache License, Version 2.0.

About

Fast Ethereum Virtual Machine implementation

License:Apache License 2.0


Languages

Language:C++ 73.5%Language:CMake 26.1%Language:C 0.2%Language:Shell 0.1%