Posts /

Fabric 常用命令

07 May 2020

Fabric 常用命令


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')"

# -P, --policy string  he endorsement policy associated to this chaincode

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