fabric鍊碼查詢
peer chaincode query
常用參數
-n --name chaincode的名字
-C --channelID 目前指令運作的通道,預設testchainid
-c --ctor JSON格式的構造參數,預設"{}"
執行一下
peer chaincode query -n abccc -C abcchannel -c '{"Args":["query", "a"]}'
peer chaincode query
-n abccc
-C abcchannel
-c '{"Args":["query", "a"]}'
我們查詢一下然後看下結果
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -n abccc -C abcchannel -c '{"Args":["query", "a"]}'
100
然後我們再查詢一下b
peer chaincode query -n abccc -C abcchannel -c '{"Args":["query", "b"]}'
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -n abccc -C abcchannel -c '{"Args":["query", "b"]}'
200
然後我們要通過用戶端切換peer節點
```shell
$ docker exec -it cli bash
# 用戶端預設會連接配接某一個節點
CORE_PEER_ADDRESS=peer0.orggo.abc.com:7051
# 對用戶端進行操作, 操作的是預設連接配接的節點
```
```shell
看docker-compose 配置檔案中關于 用戶端容器的設定 -> 環境變量
CORE_PEER_ADDRESS=peer0.orggo.abc.com:7051 # 用戶端連接配接的peer節點
CORE_PEER_LOCALMSPID=OrgGoMSP
CORE_PEER_TLS_ENABLED=true
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer0.orggo.abc.com/tls/server.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer0.orggo.abc.com/tls/server.key
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer0.orggo.abc.com/tls/ca.crt
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/users/[email protected]/msp
`
go組織的peer0
```shell
CORE_PEER_ADDRESS=peer0.orggo.abc.com:7051
CORE_PEER_LOCALMSPID=OrgGoMSP
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/users/[email protected]/msp
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer0.orggo.abc.com/tls/ca.crt
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer0.orggo.abc.com/tls/server.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer0.orggo.abc.com/tls/server.key
```
go組織的peer1
```shell
CORE_PEER_ADDRESS=peer1.orggo.abc.com:7051
CORE_PEER_LOCALMSPID=OrgGoMSP
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/users/[email protected]/msp
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer1.orggo.abc.com/tls/ca.crt
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer1.orggo.abc.com/tls/server.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer1.orggo.abc.com/tls/server.key
```
cpp組織的peer0
```shell
CORE_PEER_ADDRESS=peer0.orgcpp.abc.com:7051
CORE_PEER_LOCALMSPID=OrgCppMSP
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.abc.com/users/[email protected]/msp
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.abc.com/peers/peer0.orgcpp.abc.com/tls/ca.crt
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.abc.com/peers/peer0.orgcpp.abc.com/tls/server.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.abc.com/peers/peer0.orgcpp.abc.com/tls/server.key
```
cpp組織的peer1
```shell
CORE_PEER_ADDRESS=peer1.orgcpp.abc.com:7051
CORE_PEER_LOCALMSPID=OrgCppMSP
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.abc.com/users/[email protected]/msp
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.abc.com/peers/peer1.orgcpp.abc.com/tls/ca.crt
CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.abc.com/peers/peer1.orgcpp.abc.com/tls/server.crt
CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.abc.com/peers/peer1.orgcpp.abc.com/tls/server.key
```
打包一下
peer chaincode package -n abccc -v 1.0 -p github.com/chaincode mycc.out
1.peer channel list
2.peer channel join -b abcchannel.block
3.peer chaincode install mycc.out
4.
看下流程和結果
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# ls
channel-artifacts crypto abcchannel.block
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode package -n abccc -v 1.0 -p github.com/chaincode mycc.out
2019-04-15 04:30:21.659 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-04-15 04:30:21.659 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# ls
channel-artifacts crypto abcchannel.block mycc.out
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# CORE_PEER_ADDRESS=peer1.orggo.abc.com:7051
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# CORE_PEER_LOCALMSPID=OrgGoMSP
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/users/[email protected]/msp
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer1.orggo.abc.com/tls/ca.crt
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer1.orggo.abc.com/tls/server.crt
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.abc.com/peers/peer1.orggo.abc.com/tls/server.key
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel join -b abcchannel.block
2019-04-15 04:31:06.586 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Error: proposal failed (err: bad proposal response 500: Cannot create ledger from genesis block, due to LedgerID already exists)
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel list
2019-04-15 04:31:14.517 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Channels peers has joined:
abcchannel
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# ls
channel-artifacts crypto abcchannel.block mycc.out
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode install mycc.out
2019-04-15 04:31:23.986 UTC [chaincodeCmd] install -> INFO 001 Installed remotely response:<status:200 payload:"OK" >
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer#
然後查詢一下
[email protected]:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -n abccc -C abcchannel -c '{"Args":["query", "b"]}'
200