Inspiration

What it does

Running ethereum bytecode in eosio smart contract

How I built it

  1. Abstracting vm api functions from eosio which defined in contracts/vm_api/vm_api.h as callback functions

  2. Compile VM API functions to a shared library , source code can be found in contracts/vm_api directory. this functions can be used by evm code that integrated in eosio, and the shared library can be used to compile C++ smart contract to native code.

  3. Implementing API for bridge evm and eosio in eth_account.cpp source file

  4. Compile eth_account.cpp to native code which link to VM API shared library

  5. porting evm code from aleth to eosio which leverage functions in eth_account.cpp

  6. Integrating evm code to eosio source code

  7. deploy a smart contract to eosio network which use the same code in eth_account.cpp

Challenges I ran into

Implement an action named “create”

Accomplishments that I'm proud of

Abstracting vm api functions from eosio which allow compile C++ smart contract to native code without changes.

What I learned

What's next for evm4eos

Bug Fixes & Continue to improve evm performance and some other things.

Built With

  • aleth
  • eosio
Share this project:

Updates