EVM作为用户链代码安装到Fabric中,然后可以通过它部署智能合约。单个EVM链代码足以在通道上运行多个以太坊智能合约。链码不采用以太坊的共识方法。所有事务仍将遵循Fabric事务流中的执行,订单,验证步骤。确保在不同组织中的足够对等方安装链代码,并设置一个确保一定程度的分散的认可政策。为了与已部署的智能合约进行交互,有一个fab3,它从以太坊JSON RPC API实现一组有限的API,因此可以用作web3提供者
EVM作为用户链代码安装到Fabric中,然后可以通过它部署智能合约。 单个EVM链代码足以在通道上运行多个以太坊智能合约。 链码不采用以太坊的共识方法。 所有事务仍将遵循Fabric事务流中的执行,订单,验证步骤。 确保在不同组织中的足够对等方安装链代码,并设置一个确保一定程度的分散的认可政策。 为了与已部署的智能合约进行交互,有一个“fab3”,它从以太坊JSON RPC API实现一组有限的API,因此可以用作web3提供者。
安装 EVM 链代码
EVM链代码位于evmcc
下的repo fabric-chaincode-evm。要安装链码,请按照常规步骤安装链码。以下说明基于fabric-samples中first-network
教程的1.3版。
挂载EVM Chaincode
用volumes更新docker-compose-cli.yaml
以包含fabric-chaincode-evm
。
cli:
volumes:
- ./../../fabric-chaincode-evm:/opt/gopath/src/github.com/hyperledger/fabric-chaincode-evm
通过运行启动网络:
./byfn up
构建并启动EVM
docker exec -it cli bash
如果成功,你应该看到以下提示:
root@0d78bb69300d:/opt/gopath/src/github.com/hyperledger/fabric/peer#
要更改目标对等方,请更改以下环境变量:
# Environment variables for PEER0
export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=peer0.org1.example.com:7051
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
接下来在所有对等设备上安装EVM链代码:
peer chaincode install -n evmcc -l golang -v 0 -p github.com/hyperledger/fabric-chaincode-evm/evmcc
实例化evmcc并用频道名称替换<channel-name>
peer chaincode instantiate -n