寫在前面
其實在八月份的時候就搭過一遍Fabric環境,但是由於各種原因,最近想在Ubuntu下重新搭一遍。本來一切都很順利的,直到執行go run assetTransfer.go ......
出現情況
依次執行如下指令:
1 ./network.sh up createChannel 2 ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go 3 docker ps //可以忽略,主要是查看當前容器 4 cd .. 5 cd asset-transfer-basic/application-go 6 go run assetTransfer.go
然后就會出現如下信息:
2021/11/26 09:12:03 ============ application-golang starts ============ [fabsdk/core] 2021/11/26 01:12:03 UTC - cryptosuite.GetDefault -> INFO No default cryptosuite found, using default SW implementation 2021/11/26 09:12:13 Failed to get network: Failed to create new channel client: event service creation failed: could not get chConfig cache reference: QueryBlockConfig failed: QueryBlockConfig failed: queryChaincode failed: Transaction processing for endorser [localhost:7051]: Endorser Client Status Code: (2) CONNECTION_FAILED. Description: dialing connection on target [localhost:7051]: waiting for connection failed: context deadline exceeded exit status 1
解決方法
打開application-go文件夾,將文件夾下面的keystore和wallet兩個文件夾刪掉,再重新執行go run assetTransfer.go就可以了。

重新執行后,結果如下。

可以看到問題已經解決啦!
出現原因
出現這個問題的原因可能是因為我之前跑過一次,他就生成了這兩個文件夾,只要將這兩個文件夾刪掉就可以了。
溫馨提示
Fabric給的assetTransfer.go代碼里面有個地方的文件名寫錯了,需要手動改一下,不然也會報錯的。要改的地方在代碼的130行。改后如圖所示。
certPath := filepath.Join(credPath, "signcerts", "User1@org1.example.com-cert.pem")

當然,也可以跑一遍,到它報錯的文件夾下找對應的文件名,然后改。
最后,十分感謝《Fabric在嘗試使用應用程序調用時出現:UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]》的作者,讓我能夠一大早解決這個問題。
參考博客
[1]Fabric在嘗試使用應用程序調用時出現:UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]
