1.Extend Hyperledger Fabric to Support EVM Contract and Web3 Toolings Swetha Repakula <firstname.lastname@example.org> Jiannan Guo <email@example.com>
2. show of hands how many of you… • are familiar Blockchain? • have written a DApp on Ethereum? • have written application on Hyperledger Fabric?
3.• What is EVM • Why are we supporting it • How to use it • How it’s done • Demo • Future work
4.What is EVM?
5.• Turing-complete stack-based virtual machine • execute bytecode compiled from high-level languages • contract-oriented language, e.g. Solidity, Vyper • bounded by limited gas supply • reduce attack surface
6.why are we supporting it?
7. Fabric Ethereum Permissioned Permissionless
8.“Should I learn another contract-oriented language?” – Developer from Ethereum
9. Fabric Ethereum Hyperledger Cello …
10.Fabric Ethereum chaincode bytecode Docker EVM
12. What if… https://medium.com/blockchannel/tools-and-technologies-in-the-ethereum-ecosystem-e5b7e5060eb9
13.How it’s done
14. previous work • EVM is a spec • go-ethereum is under LGPL-3.0, which we cannot use directly • luckily, Hyperledger Burrow has its own implementation of EVM spec, under Apache 2.0 • Sawtooth has already leveraged that lib to support evm bytecode execution, i.e. seth • shoutout to Burrow team for their generous support!
15. SDK/CLI EVMSCC API STATE FAB PROXY MANGER JSON RPC LEDGER NS: EVMSCC APP/WEB3 PEER
16. Demo VOTE DAPP VOTE DAPP USER1 USER2 FAB PROXY FAB PROXY USER1 USER2 Installs & FABRIC Interacts Interacts NETWORK with the with Contract Contract
17. Future Work • Fabric EVM experimental support in Fabric 1.2 • Fab Proxy in Fabric 1.3 • Introduction of events in Smart Contracts • Looking into Adding Native Accounts
18. References • Fabric Chaincode EVM Repo: https://github.com/ hyperledger/fabric-chaincode-evm • Deploy Fabric + EVM to IBM Kubernetes Service: https:// github.com/swetharepakula/fabric-evm-ibm-container- service • POC Proxy: https://github.com/swetharepakula/fabric- chaincode-evm • Fabric EVM Demo: http://fabric-evm-demo.mybluemix.net/ • IBM Code: https://ibm.biz/BdZWzT
19. Thanks! Any Questions?