我试图使用以下代码查询区块链并获取访问被拒绝错误。我也得到同样的错误,而sendTransactionProposal
方法也是如此。
UserContext adminUserContext = RegisterEnrollUser.registerAdminUser(Config.CA_ORG1_URL, Config.ORG1_MSP, Config.ORG1);
FabricClient fabClient = new FabricClient(adminUserContext);
ChannelClient channelClient = fabClient.createChannelClient(Config.CHANNEL_NAME);
Channel channel = channelClient.getChannel();
Peer peer = fabClient.getInstance().newPeer(Config.ORG1_PEER_0, Config.ORG1_PEER_0_URL);
EventHub eventHub = fabClient.getInstance().newEventHub("eventhub01", Config.ORG1_PEER_0_URL_Eventhub);
Orderer orderer = fabClient.getInstance().newOrderer(Config.ORDERER_NAME, Config.ORDERER_URL);
channel.addPeer(peer);
channel.addEventHub(eventHub);
channel.addOrderer(orderer);
channel.initialize();
Collection<ProposalResponse> responsesQuery = channelClient.queryByChainCode("tmz", "queryAllEntries", null);
引起:org.hyperledger.fabric.sdk.exception.ProposalException:通道mychannel的getConfigBlock与peer peer0.org1.example.com失败。状态FAILURE,详细信息:向peer0.org1.example.com发送提案失败,原因是:gRPC失败=状态{code = UNKNOWN,description =访问被拒绝:channel [mychannel] creator org [Org1MSP],cause = null}
以下是peer0.org1.example.com的日志
主体反序列化失败(提供的标识无效:x509:由未知权限签署的证书)用于标识。 WARN 2a11 [channel:mychannel]在使用策略[/频道/应用程序/读者]的频道[mychannel]上的检查策略期间,对已签名数据的失败评估策略失败的客户授权已被撤销:[无法达到1个子策略的隐含阈值,需要1剩余]
2018-06-14 21:05:11.545 UTC [common / deliver]句柄 - > DEBU 2a12等待新的SeekInfo
2018-06-14 21:05:11.545 UTC [common / deliver]句柄 - > DEBU 2a13尝试从以下位置读取搜索信息
2018-06-14 21:05:11.609 UTC [common / deliver]句柄 - > WARN 2a14读取错误:rpc错误:代码=取消desc =上下文取消
2018-06-14 21:05:11.609 UTC [common / deliverevents] func1 - > DEBU 2a15 Closing Deliver stream
此错误看起来像adminUserContext的mspID问题。
你检查了adminUserContext的mspId是否是Org1MSP?
我想你最好检查一下adminUserContext。