区块链操作链码的相关命令

安装链码

示例网络中是将/home/go/src/github.com/hyperledger/fabric-samples/first-network/chaincode目录挂载到docker容器的/opt/gopath/src/github.com/chaincode/目录下。而且/opt/gopath/src/需要去掉不写。

peer chaincode install -n 链码名称 -v 链码版本 -l 链码语言 -p 链码路径(需要对应文件夹)
peer chaincode install -n usercc -v 1.0.0 -l golang -p github.com/chaincode/user

通过docker exec -it cli /bin/bash命令进入到命令行中,默认的参数是peer0.org1.example.com节点参数,可以通过更改参数来实现切换节点的目的。

# 切换到peer0.org1.example.com节点安装链码
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/peer0.org1.example.com/tls/ca.crt

peer chaincode install -n usercc -v 1.0.0 -l golang -p github.com/chaincode/user

# 切换到peer1.org1.example.com节点安装链码
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=peer1.org1.example.com:8051

peer chaincode install -n usercc -v 1.0.0 -l golang -p github.com/chaincode/user

# 切换到peer0.org2.example.com节点安装链码
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:9051 
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 

peer chaincode install -n usercc -v 1.0.0 -l golang -p github.com/chaincode/user

# 切换到peer0.org2.example.com节点安装链码
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:10051

peer chaincode install -n usercc -v 1.0.0 -l golang -p github.com/chaincode/user

初始化链码

peer chaincode instantiate -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 usercc -l golang -v 1.0.0 -c '{"Args":["initLedger"]}'  -P 'AND ('\''Org1MSP.peer'\'','\''Org2MSP.peer'\'')'

升级链码

升级链码需要先在各个节点安装完成之后(需要修改链码的版本号),运行如下命令升级链码

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 usercc -l golang -v 1.0.0 -c '{"Args":["initLedger"]}'  -P 'AND ('\''Org1MSP.peer'\'','\''Org2MSP.peer'\'')'

调用链码的查询接口

peer chaincode query -C 通道名称 -n 链码名称 -c 接口的参数
# 我这里QueryMemberList为接口名称,这个需要根据链码中的逻辑去写
peer chaincode query -C mychannel -n usercc -c '{"Args":["QueryMemberList","{\"username\":\"1\", \"flag\": 1, \"relation\": -1}"]}'

调用链码的操作接口

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 usercc --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 --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["QueryInfoByPhone","{\"phone\":\"123\", \"source\": 1}", "memberId1", "familyId1"]}'
发布了26 篇原创文章 · 获赞 1 · 访问量 6959

猜你喜欢

转载自blog.csdn.net/qq_39800434/article/details/104967629