在学习fabric的过程中,一步步走到了编写SDK的阶段,却被一个问题困扰了好久,在编写的fabric-sdk-go程序运行时一直报错:
根据指定的资源管理客户端Context创建通道管理客户端失败: failed to create resmgmt client due to context error: user not found
报错信息如图所示:
这个问题困扰了我非常久,甚至让我对fabric-ca一顿了解,终于在github上面的一个网友的回答以及一位CSDN的博客找到了思路,最终解决了这个问题,话不多说,直接上解答:
解决方案
在sdk的配置文件config.yaml中找到Organizations部分加入自己的User信息,如图所示(黄色部分)
黄色框起来的地方貌似官方的实例是没有的(可能是我不认真,或者知识不够)
这里Admin是用户名,cert为证书,key是密钥。
(由于截图不全,新手可能不知道怎么找证书和密钥的位置,在这里我附上我的路径以供参考)
证书(根据自己的路径修改):
${GOPATH}/src/github.com/hyperledger/NFTfabric/network/crypto-config/peerOrganizations/org1.nftfabric.com/users/Admin@org1.nftfabric.com/msp/signcerts/Admin@org1.nftfabric.com-cert.pem
密钥(根据自己的路径修改,特别密钥每次生成的都不一样):
${GOPATH}/src/github.com/hyperledger/NFTfabric/network/crypto-config/peerOrganizations/org1.nftfabric.com/users/Admin@org1.nftfabric.com/msp/keystore/5c8658818a6756388b5b4ff31e4ebb7d15872943fbff9ce9b2c3747c73f32c45_sk
修改后正常运行:
作为新手真的花了很久才解决,希望大家点个赞或者互关共同学习进步!