在搭好网络和部署好链码的情况下,使用Org1的锚节点进行初始化账本
peer chaincode invoke -n boxcc -c '{"Args":["Init"]}' -C tracechannel --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/trace.com/orderers/orderer0.trace.com/msp/tlscacerts/tlsca.trace.com-cert.pem --peerAddresses peer0.org1.trace.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.trace.com/peers/peer0.org1.trace.com/tls/ca.crt --peerAddresses peer0.org2.trace.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.trace.com/peers/peer0.org2.trace.com/tls/ca.crt --peerAddresses peer0.org3.trace.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.trace.com/peers/peer0.org3.trace.com/tls/ca.crt --peerAddresses peer0.org4.trace.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org4.trace.com/peers/peer0.org4.trace.com/tls/ca.crt
查询账本:
peer chaincode invoke -n boxcc -c '{"Args":["Query","1"]}' -C tracechannel --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/trace.com/orderers/orderer0.trace.com/msp/tlscacerts/tlsca.trace.com-cert.pem --peerAddresses peer0.org1.trace.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.trace.com/peers/peer0.org1.trace.com/tls/ca.crt --peerAddresses peer0.org2.trace.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.trace.com/peers/peer0.org2.trace.com/tls/ca.crt --peerAddresses peer0.org3.trace.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org3.trace.com/peers/peer0.org3.trace.com/tls/ca.crt --peerAddresses peer0.org4.trace.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org4.trace.com/peers/peer0.org4.trace.com/tls/ca.crt
均成功 *** 作
但是在Org2/3/4 的节点中查询均报错:
Error: error getting channel (tracechannel) orderer endpoint: error endorsing GetConfigBlock: rpc error: code = Unknown desc = error validating proposal: access denied: channel [] creator org [Org3MSP]
Org2/3/4的日志正常,但是反馈至Org1日志为:
[endorser] Validate -> WARN 0cf access denied: channel expected MSP ID Org1MSP, received Org3MSP channel= txID=84927172
可以看出是权限问题 想要的身份是Org1MSP 但是使用的是Org3MSP
因为最初使用的是一个cli 容器来分别修改参数对每个节点进行 *** 作,在github上看到is说可能是
MSP 的临时文件残留导致的
https://github.com/hyperledger/caliper/issues/702https://github.com/hyperledger/caliper/issues/702
清除了一波tmp 没用
删除docker 缓存重启 没用
考虑仔细看一遍配置,应该是有关org1 的权限问题
最后在configtx.yaml 看到每个组织的背书策略:
原来一直使用的 invoke 进行函数 *** 作, 但是这个应该是写权限,而写权限只有admin 和客户端才有,所以换成 query 进行查询 *** 作就行了。 就是不能进行写入 *** 作
要注意每种 *** 作的背书策略!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)