Я использую Fabric Java SDK, чтобы запросить мой цепной код, запущенный на Hyperledger Fabric v1.3.Вот шаги, которые я пытался сделать:
Создать ChannelCLient и использовать метод queryByChainCode () , я получил коллекцию ProposalResponse.
На каждом ProposalResponse я могу получить полезную нагрузку и транзакции из метода getTransactionID ().
После этого использовать идентификатор транзакции, полученный из шагавыше, чтобы запросить BlockInfo методом queryBlockByTransactionID () .Потому что я хочу получить правильный хеш блока, который содержит мою транзакцию.
Но я получил сообщение об ошибке 500 Не удалось получить блок для txID ... error Запись не найдена в индексе
Мой код выглядит следующим образом:
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", "grpc://localhost:7053");
Orderer orderer = fabClient.getInstance().newOrderer(Config.ORDERER_NAME, Config.ORDERER_URL);
channel.addPeer(peer);
channel.addEventHub(eventHub);
channel.addOrderer(orderer);
channel.initialize();
String transactionId = "";
Logger.getLogger(QueryChaincode.class.getName()).log(Level.INFO, "Query ");
Collection<ProposalResponse> responsesQuery = channelClient.queryByChainCode(chaincode, "query", args);
for (ProposalResponse pres : responsesQuery) {
transactionId = pres.getTransactionID();
String stringResponse = new String(pres.getChaincodeActionResponsePayload());
Logger.getLogger(QueryChaincode.class.getName()).log(Level.INFO, stringResponse);
System.out.println("transactionID is:" + transactionId + " chaincode id is: " + pres.getChaincodeID()
+ " peer name is: " + pres.getPeer().getName());
result += stringResponse;
}
BlockInfo blockInfo = channel.queryBlockByTransactionID(transactionId);
Кто-нибудь может мне помочь, как запросить блокировку на основе идентификатора транзакции?
Большое спасибо.