使用go语言编写的智能合约进行实战(fabcar.go)
本文指令适合于Ubuntu和Centos系统
启动网络(前提是已经搭建Fabric2.0网络)
首先切换到fabric目录下
cd ~/go/src/github.com/hyperledger/fabric
把fabric-samples克隆下来
git clone https://github.com/hyperledger/fabric-samples.git
随后到first-network中使用指令启动网络
cd ~/go/src/github.com/hyperledger/fabric/fabric-samples/first-network
./byfn.sh up
出现下图则搭建完成
下载智能合约依赖
到fabcar的智能合约文件中并下载依赖
cd ~/go/src/github.com/hyperledger/fabric/fabric-samples/chaincode/fabcar/go
go env -w GOPROXY=https://goproxy.io,direct
go env -w GO111MODULE=on
go mod init
go mod vendor
执行完毕后fabcar/go文件夹下多出vendor,这个就是放智能合约依赖包的文件夹
进入cli容器中
docker exec -it cli bash
组织1(Org1)部署智能合约
打包智能合约
peer lifecycle chaincode package fabcar.tar.gz --path github.com/hyperledger/fabric-samples/chaincode/fabcar/go/ --lang golang --label fabcar_1
ls查看当前目录,发现有了一个fabcar.tar.gz文件
安装智能合约(时间会比较久,耐心稍等)
peer lifecycle chaincode install fabcar.tar.gz
成功后返回status:200等信息
当前组织同意合约定义(需要用到上面一部返回的Package id)
peer lifecycle chaincode approveformyorg --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --channelID mychannel --name fabcar --version 1 --init-required --package-id fabcar_1:b5e31331cf476adea4e444c824067b6