启动docker-compose
从first-network里复制
cp docker-compose-cli.yaml ../my-network//复制到自己搭建网络的文件夹
cp -r base ../my-network//复制到自己搭建网络的文件夹
启动docker-compose
docker-compose -f docker-compose-cli.yaml up -d//-d在后台执行
此时可能会报错,缺少环境变量IMAGE_TAG和COMPOSE_PROJECT_NAME,用export声明即可。tag选最新,名称任意。
export IMAGE_TAG=latest;
export COMPOSE_PROJECT_NAME=net;//随意名字
创建channel
在my-network里运行
1、进入cli终端
docker exec -it cli bash
2、创建
CORE_PEER_LOCALMSPID="Org1MSP"//由谁来创建通道
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin\@org1.example.com/msp
peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem
//MSPCONFIGPATH在config-compose-cli.yaml里面
//mychannel是自己指定的channel名字,会生成mychannel.block文件
//cafile指定安全证书,后面地址是(order的)证书
查看channel
peer channel list
3、加入通道
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
export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
//上述。切换证书,拿好自己的ID卡
peer channel join -b mychannel.block
4、安装链码
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
export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
peer chaincode install -n mycc -v1.0 -l node -p /opt/gopath/src/github.com/chaincode/mycc//自己编写的智能合约所在的文件夹
5、实例化链码
peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --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 mycc -l node -v 1.0 -c'{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
6、查询链码
peer chaincode query -C mychannel -n mycc -c'{"Args":["query","a"]}'
7、调用链码
peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}' --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem