Hyperledger Fabric 执行 assetTransfer.go 时出现 UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]
写在前面
其实在八月份的时候就搭过一遍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]
去更远的地方 见更亮的光