channel相关
获取某一channel区块信息:
peer channel getinfo -c mychannel(区块的最新高度,hash值)
获取最新的区块
peer channel fetch newest -c mychannel channel-artifacts/new.pb --orderer orderer.example.com:7050
获取最新的channel配置区块
peer channel fetch config -c mychannel channel-artifacts/config.pb --orderer orderer.example.com:7050
peer加入channel
peer channel join -b ./mychannel.genesis.block
查看peer已经加入的channel
peer channel list
将pb区块转换为json
configtxlator proto_decode --input ./channel-artifacts/new.pb --type common.Block | jq . > ./channel-artifacts/new.json (将生成的区块转换成json格式)
创建channel
configtxgen -profile TwoOrgsChannel -outputCreateChannelTx channel-artifacts/mychannel1.tx -channelID mychannel1
peer channel create -o orderer.example.com:7050 -c mychannel1 -f ./channel-artifacts/mychannel1.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peer channel join -b mychannel1.block
peer channel list
切换peer环境变量
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/peer1.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
export CORE_PEER_ADDRESS=peer1.org1.example.com:7051
合约相关
安装合约
peer chaincode install -n emr -v 1.0 -p github.com/chaincode/emr/
peer chaincode install -n javabasic -l java -v 5.0 -p /opt/gopath/src/github.com/chaincode/java/
实例化合约
peer chaincode instantiate -o orderer.example.com:7050 --tls --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 emr -v 1.0 -c '{"Args":["init"]}' -P "OR ('Org1MSP.peer')"
peer chaincode instantiate -o orderer.example.com:7050 --tls --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 javabasic -v 6.0 -l java -c '{"Args":["init"]}' -P "OR ('Org1MSP.peer')"
升级合约
peer chaincode upgrade -o orderer.example.com:7050 --tls --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 emr -v 2.0 -c '{"Args":["init"]}' -P "OR ('Org1MSP.peer')"
invoke合约
peer chaincode invoke -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 basicinfo --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt -c '{"Args":["save","110115","{\"name\":\"zhangsan\",\"identity\":\"110115\",\"mobile\":\"18910012222\"}"]}'
peer chaincode invoke -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 javabasic --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt -c '{"Args":["invoke","110115","{\"name\":\"zhangsan\",\"identity\":\"110115\",\"mobile\":\"18910012222\"}"]}'
查询合约
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
peer chaincode query -C mychannel -n javabasic -c '{"Args":["query","110115"]}'
查看已安装合约
peer chaincode list --installed
查看已经实例化合约
peer chaincode list --instantiated -C mychannel