Branch: master
Clone or download
Latest commit 62d0a74 Feb 21, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Configure Stale ProBot Dec 30, 2018
event FAB-13102 implement burrow EventSink for fabric backend Jan 25, 2019
eventmanager FAB-13102 implement burrow EventSink for fabric backend Jan 25, 2019
evmcc FAB-13102 implement burrow EventSink for fabric backend Jan 25, 2019
examples [FAB-14244] Fix logging in Fab3 main Feb 21, 2019
fab3 [FAB-14244] Fix logging in Fab3 main Feb 21, 2019
integration Merge "FAB-14301 clear json unmarshal struct target" Feb 22, 2019
mocks FAB-14164 move input and output structs to fab3/types Feb 19, 2019
release_notes [FAB-13628] Release fabric-chaincode-evm v0.1.0 Jan 18, 2019
scripts FAB-13284 update golang dep to v0.5.0 Feb 20, 2019
statemanager [FAB-13102] Update burrow to 0.23.3 Jan 25, 2019
vendor FAB-13284 update golang dep to v0.5.0 Feb 20, 2019
.gitignore [FAB-12903] Allow contract to contract invocations Dec 3, 2018
CHANGELOG.md [FAB-13628] Release fabric-chaincode-evm v0.1.0 Jan 18, 2019
CODE_OF_CONDUCT.md FAB-9360 add CODE_OF_CONDUCT.md Apr 7, 2018
CONTRIBUTING.md FAB-7087 initial commit Nov 27, 2017
Gopkg.lock FAB-13284 update golang dep to v0.5.0 Feb 20, 2019
Gopkg.toml FAB-13284 update golang dep to v0.5.0 Feb 20, 2019
Jenkinsfile FAB-13435 Rename job name in Jenkinsfile Jan 9, 2019
LICENSE FAB-7087 initial commit Nov 27, 2017
MAINTAINERS.md update Morgan Bauer contact information Nov 30, 2018
Makefile FAB-13284 update golang dep to v0.5.0 Feb 20, 2019
README.md FAB-12683 remove plugin references from README Nov 1, 2018
gotools.mk FAB-13284 update golang dep to v0.5.0 Feb 20, 2019

README.md

Hyperledger Fabric EVM chaincode

This is the project for the Hyperledger Fabric chaincode, integrating the Burrow EVM. At its essence, this project enables one to use the Hyperledger Fabric permissioned blockchain platform to interact with Ethereum smart contracts written in an EVM compatible language such as Solidity or Vyper.

The integration has two main pieces. The chaincode, which integrates the Hyperledger Burrow EVM package in a Go chaincode shim and maps the various methods between the peer and the EVM itself.

The second piece is a Fabric Proxy that implements a subset of the Ethereum compliant JSON RPC interfaces, so that users could use tools such as Web3.js to interact with smart contracts running in the Fabric EVM. Currently the APIs that have been implemented are eth_getCode, eth_account, eth_call, sendTransaction,eth_getTransactionReceipt. We are working on expanding that subset.

We hang out in the #fabric-evm channel. We are always interested in feedback and help in development and testing! See the Fabric's CONTRIBUTING documentation for information on how to contribute to this repository.

Design Document

Please see the design document in FAB-6590.

Deploying the Fabric EVM Chaincode

This chaincode can be deployed like any other user chaincode to Hyperledger Fabric. The chaincode has no instantiation arguments.

You can run the integration test in which a sample Fabric Network is run and the chaincode is installed with the CCID: evmcc.

make integration-test

The end-2-end test is derivative of the hyperledger/fabric/integration/e2e test. You can compare them to see what is different.

We have an tutorial that runs through the basic setup of the EVM chaincode as well as setting up the Fabric Proxy.

Basically, the interaction is the same as with any other chaincode, except that the first argument of a chaincode invoke is the address for the contract and the second argument is the input you typically provide for an Ethereum transaction.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License