An EVM chaincode is essentially a system chaincode written in Go, that wraps Burrow EVM implementation. It accomplishes following:
- feed deploy bytecode into Burrow evm
- store produced runtime bytecode into evmscc ledger, with generated address being the key
- look up the runtime bytecode with contract address
- args and bytecode are input of Burrow evm
- return the output of evm execution
INIT in evmscc is a no-op, as this doesn't fit into Ethereum model very well.
This would require Golang 1.10 to support plugin on Linux/OSX