Upload
others
View
20
Download
1
Embed Size (px)
Citation preview
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
SWETHA REPAKULA [email protected]
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
AGENDA
▸ Overview of Hyperledger Fabric
▸ Motivations for the EVM Integration
▸ EVM Concepts
▸ EVM implementation
▸ Demo
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
HYPERLEDGER FABRIC
▸ Permissioned
▸ Endorsement Policy & Consensus
▸ Finality of Transactions
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
TRANSACTION WORKFLOW
ORDERING SERVICE
PEER
Org1
CHAINCODECHAINCODE
PEER
Org2
CHAINCODECHAINCODE
CLIENT
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
EXECUTE
ORDERING SERVICE
PEER
Org1
CHAINCODECHAINCODE
PEER
Org2
CHAINCODECHAINCODE
1. Collect Endorsements
CLIENT
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
ORDER
ORDERING SERVICE
PEER
Org1
CHAINCODECHAINCODE
PEER
Org2
CHAINCODECHAINCODE
2. Broadcast
CLIENT
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
VALIDATE
ORDERING SERVICE
PEER
Org1
CHAINCODECHAINCODE
PEER
Org2
CHAINCODECHAINCODE
3. Deliver
CLIENT
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
WHAT IF
ORDERING SERVICE
PEER
Org1
CHAINCODECHAINCODE
PEER
Org2
CHAINCODECHAINCODE
1. Execute
1. Execute
3. Deliver
3. Deliver
2. BroadcastCLIENT
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
WHAT IF
ORDERING SERVICE
PEER
Org1
PEER
Org2
EVM
1. Execute
1. Execute
3. Deliver
3. Deliver
2. Broadcast
EVM
CLIENT
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
WHAT IF
ORDERING SERVICE
PEER
Org1
PEER
Org2
EVM
1. Execute
1. Execute
3. Deliver
3. Deliver
2. Broadcast
EVM
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
MOTIVATIONS
▸ Allows developers to use languages such as Solidity and Vyper
▸ EVM bytecode Smart Contracts can be migrated
▸ Allows developers to use Web3 tooling
▸ Burrow EVM is Apache 2.0 licensed
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
EVM CONCEPTS
▸ Accounts (EOAs & Contract Accounts)
▸ Gas
▸ EVM Message Calls
▸ Read current transaction writes
▸ Ethereum JSON RPC API
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
PEER
APIEVM CC
STATE WRITER
LEDGERNS: EVM
IMPLEMENTATION
GO SDKETHEREUM JSON RPC API
fabproxy
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
PEER
APIEVM CC
STATE WRITER
LEDGERNS: EVM
IMPLEMENTATION
GO SDKETHEREUM JSON RPC API
fabproxy
1. User Request
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
PEER
APIEVM CC
STATE WRITER
LEDGERNS: EVM
IMPLEMENTATION
GO SDKETHEREUM JSON RPC API
fabproxy
2. Invoke EVM CC
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
PEER
APIEVM CC
STATE WRITER
LEDGERNS: EVM
IMPLEMENTATION
GO SDKETHEREUM JSON RPC API
fabproxy
3. Invokes EVM
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
PEER
APIEVM CC
STATE WRITER
LEDGERNS: EVM
IMPLEMENTATION
GO SDKETHEREUM JSON RPC API
fabproxy 4. Gets Contract Code
USING THE HYPERLEDGER BURROW EVM INSIDE HYPERLEDGER FABRIC
PEER
APIEVM CC
STATE WRITER
LEDGERNS: EVM
IMPLEMENTATION
GO SDKETHEREUM JSON RPC API
fabproxy5. Generates Rest of Reads & Writes
TEXT
REFERENCES
▸ Design Doc: https://docs.google.com/document/d/1xZfdtFiIFvHI7UZAze2xbm5hhgaDHGRBMusozKfpOck/edit#
▸ JIRA Epics: https://jira.hyperledger.org/browse/FAB-6590 & https://jira.hyperledger.org/browse/FAB-10273
▸ Chaincode: https://github.com/hyperledger/fabric-chaincode-evm
▸ dapp repo: https://github.com/ibm/hyperledger-fabric-evm-demo
▸ Live demo using our POC: http://fabric-evm-demo.mybluemix.net/ Password: some-password