Failed to reach implicit threshold of 1 sub-policies, required 1 remaining: permission denied:
錯誤原因:由於啟動過網絡並且更新了證書,在沒有刪除干凈的環境中啟動復用的之前的volume,所以導致證書認證失敗。
解決方案:執行如下命令刪除卷
docker-compose -f docker-compose-cli.yaml down --volumes --remove-orphans docker rm -f $(docker ps -a | grep "hyperledger/*" | awk "{print \$1}") docker volume prune
Error: could not send: EOF
解決方法:參數上添加 --tls
export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')"
stateBasedValidator.Validate failed, err validation of endorsement policy for chaincode mycc in tx 205:0 failed: signature set did not satisfy policy
validation of endorsement policy for chaincode mycc in tx 205:0 failed: signature set did not satisfy policy(背書策略驗證失敗)
解決方法:修改背書策略
參考:https://hyperledger-fabric.readthedocs.io/zh_CN/release-1.4/endorsement-policies.html
背書策略的語法如下:
EXPR(E[, E...])
EXPR可以是AND、OR、OutOf,E可以是一個上面示例的主體或者是另一個嵌套的EXPR策略。示例如下:
AND('Org1.member', 'Org2.member', 'Org3.member') :要求三個主體中每一個主體都要簽名。
OR('Org1.member', 'Org2.member') :要求三個主體中至少有一個主體簽名。
OR('Org1.member', AND('Org2.member', 'Org3.member')):要求同時有主體Org1.member的簽名,以及主體Org2.member與Org3.member中至少一個主體的簽名。
OutOf(2, 'Org1.member', 'Org2.member', 'Org3.member') :要求三個主體中,至少有兩個主體簽名。
marked as invalid by state validator. Reason code [MVCC_READ_CONFLICT]
錯誤產生:但統一賬戶在短時間內發生多筆交易時,大部分交易失敗。例如在for循環中連續交易20次,僅有不到5次的交易成功。
原因:該網絡在每秒處理多筆交易時保證交易的正常運行,這些交易都更新同一賬戶中的相同資產,鏈碼會在每次涉及它的交易進入時嘗試更新這個鍵。然而,當許多交易同時進入時,在兩者之間的時間當在對等方上模擬交易(即創建讀取集)並且准備好提交到分類帳時,另一個交易可能已經更新了相同的值,所以會導致大量並行事務失敗。
參考:
https://stackoverflow.com/questions/45347439/mvcc-read-conflict-when-submitting-multiple-transactions-concurrently
https://github.com/hyperledger/fabric-samples/tree/release/high-throughput
Error: error getting endorser client for channel: endorser client failed to connect to peer0.org1.example.com:7051: failed to create new connection: connection error: desc = "transport: error while dialing: dial tcp: lookup peer0.org1.example.com: no such host"
peer0.org1 failed to join the channel, Retry after 3 seconds
解決如下:
vim /usr/local/go/src/github.com/hyperledger/fabric-samples/first-network/base/docker-compose-base.yaml
在每個environment下面都追加下面的參數,然后重新up就搞定。
- GODEBUG=netdns=go
參考:https://blog.csdn.net/Doudou_Mylove/article/details/103903800