从2018年6月份左右,开始接触fabric,搭建了单机或集群环境,也写了一些文档。最近整理电脑时发现,在这里分享出来。。。。
系统: linux ubuntu 16.04
上传链码至宿主机目录
删除已存在的go文件,上传新的文件。
拷贝链码到docker容器里面
在docker容器中操作
docker exec -it cli bash
cd /opt/gopath/src/github.com/hyperledger/fabric/mylc/chaincode/go/digital-rights/
删除已存在的文件
rm -rf *
在宿主机进行chaincode拷贝
docker cp /www/fabric-chaincode/digitalCopyright.go cli:/opt/gopath/src/github.com/hyperledger/fabric/mylc/chaincode/go/digital-rights/
安装链码
在docker容器中操作
docker exec -it cli bash
修改下面参数值,可以将链码安装到不同peer上
CORE_PEER_LOCALMSPID="Org1MSP"
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
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
CORE_PEER_LOCALMSPID="Org1MSP"
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp
CORE_PEER_ADDRESS=peer1.org1.example.com:7051
CORE_PEER_LOCALMSPID="Org2MSP"
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp
CORE_PEER_ADDRESS=peer0.org2.example.com:7051
CORE_PEER_LOCALMSPID="Org2MSP"
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp
CORE_PEER_ADDRESS=peer1.org2.example.com:7051
peer chaincode install -n rightscc -p github.com/hyperledger/fabric/mylc/chaincode/go/digital-rights -v 1.0
实例化链码
在任意一个peer上进行实例化
关闭TLS
peer chaincode instantiate -o orderer0.example.com:7050 -C mychannel -n rightscc -c '{"Args":[]}' -P "OR ('Org1MSP.member','Org2MSP.member')" -v 1.0
开启TLS
peer chaincode instantiate -o orderer0.example.com:7050 --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 -C mychannel -n rights -v 1.0.0 -c '{"Args":[]}' -P 'OR ('\''Org1MSP.member'\'','\''Org2MSP.member'\'')'
升级链码
先安装链码,修改版本
peer chaincode install -n rightscc -p github.com/hyperledger/fabric/mylc/chaincode/go/digital-rights -v 1.1
再升级链码,按新版本号
关闭TLS
peer chaincode upgrade -o orderer.example.com:7050 -C mychannel -n rightscc -c '{"Args":[]}' -P 'OR ("Org1MSP.member","Org2MSP.member")' -v 1.1
开启TLS
peer chaincode upgrade -o orderer.example.com:7050 --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 -C mychannel -n rightscc -c '{"Args":[]}' -P 'OR ("Org1MSP.member","Org2MSP.member")' -v 1.1
调用链码中的方法
查询
peer chaincode query -C mychannel -n rightscc -c '{"Args":["queryRights","123xdfd"]}'
保存
peer chaincode invoke -C mychannel -n rightscc -c '{"Args":["saveRights","{\"uuid\":\"123xdfd\",\"authors\":[{\"name\":\"xiaoming\",\"id\":\"440994199608280412\",\"companyName\":\"huiju\"},{\"name\":\"xiaoming\",\"id\":\"440994199608280412\",\"companyName\":\"huiju\"}],\"fileHash\":\"0xfdacd5760000000000000000000000000000000000000000s3Ad00000000000000002\",\"fileUrl\":\"https://www.baidu.com/img/bd_logo1.png\",\"Status\":1,\"worksName\":\"workname1\",\"creationAttr\":\"other\",\"gainWay\":\"other\",\"creationAddr\":\"gz\"}"]}' -o orderer.example.com:7050