Investigation on EVMCC
EVM on Chaincode (EVMCC)
BurrowEVM is in inside of a Chaincode.
"Chaincode" is the Contract equivalent.
- A Chaincode is like AWS Lambda+CouchDB on the Docker.
201 commits (2019-11-15)
EVMCC has two uncertainty, and these are research questions.
1. Is "BurrowEVM" really compatible with EVM, and will actively be maintained?
- Gas model seems to be removed (because BurrowEVM can ban spams via permission black/whitelist)
- EVMCC source code says it can compile until pragma solidity ^0.5.0, and our OVM contract is also 0.5.0
- Qiita report says it could run on 0.4.25
- Burrow JS-API is an equivalent of Truffle
- Burrow JS-API's tests are written for Solidity 0.4.21
- At least we can make a wallet via burrow keys CLI command
- We can deploy via burrow deploy
2. Is "fab3" (=Self hosted Infura for EVMCC) compatible with our tools, and will actively be maintained?
- RPC interface compatibility seems fine with tests.
=> Does it guarantee ethers works fine with this???
- Compatible RPC are below
code:md
net_version
eth_getCode
eth_call
eth_sendTransaction
eth_accounts
eth_estimateGas
eth_getBalance
eth_getBlockByNumber
eth_blockNumber
eth_getTransactionByHash
eth_getTransactionReceipt
eth_getLogs
eth_getTransactionCount
- BurrowEVM explains ABI is working well even in on-chain env.
=>But not sure yet about
- Is an ethers-created wallet compatible with EVMCC
Instant Review
Conceptually, good.
What I do next:
- ethersjs compatibility test
- OVM Contract compatibility test
Hyperledger Sawtooth Ethereum (Seth)
This as well is using BurrowEVM
It's one of the Hyperledger family but not a Fabric subset.
5554 commits (2019-11-15)
Business Wise Review
EVMCC is better because of interaction capability with Fabric chaincodes. (If it works)
All EVMCC data is to be saved in CouchDB of a chaincode, and other chaincodes can read/write them with proper Access Control List.
- Both Fabric and EVMCC has instant finality hence Plasma on EVMCC as well has near-instant finality. Thus deposit/withdrawal as well is lightning fast interaction. This makes an enterprise acceptable framework where complex business logics such as industry specific financial process are on L1 and mass-market-consumer processes are on L2, and L1L2 interaction is lightning fast.
Links
HLF Architecture Docs
EVMCC
Fab3 Instruction Set
2019/3、web3-v0.27とsolidity-v0.4.25でのEVMCC動作確認
Hyperledger Sawtooth (Seth)
Hyperledger Burrow (Burrow EVM)