What it does
Running ethereum bytecode in eosio smart contract
How I built it
Abstracting vm api functions from eosio which defined in contracts/vm_api/vm_api.h as callback functions
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.
Implementing API for bridge evm and eosio in eth_account.cpp source file
Compile eth_account.cpp to native code which link to VM API shared library
porting evm code from aleth to eosio which leverage functions in eth_account.cpp
Integrating evm code to eosio source code
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.