Я борюсь с чтением кодов состояния, которые возвращаются из моего цепного кода.
Я выполняю следующий вызов с использованием узла узла SDK:
results = await channel.sendTransactionProposal(request);
Где канал - это Channel
объект из узла SDK.Мой цепной код отклоняет этот запрос и возвращает код состояния HTTP 500. SDK узла выдает исключение без установленного кода состояния.Немного покопавшись в коде, я нашел следующий код в Peer.js
фабричного клиента, который выдает ошибку:
if (proposalResponse) {
logger.debug('%s - Received proposal response from peer "%s": status - %s', method, self._url, proposalResponse.response.status);
// 400 is the error threshold level, anything below that the endorser will endorse it.
if (proposalResponse.response && proposalResponse.response.status < 400) {
resolve(proposalResponse);
} else if (proposalResponse.response && proposalResponse.response.message) {
reject(new Error(proposalResponse.response.message));
} else {
logger.error('GRPC client failed to get a proper response from the peer "%s".', self._url);
reject(new Error(util.format('GRPC client failed to get a proper response from the peer "%s".', self._url)));
}
} else {
logger.error('GRPC client got a null or undefined response from the peer "%s".', self._url);
reject(new Error(util.format('GRPC client got a null or undefined response from the peer "%s".', self._url)));
}
Строка reject(new Error(proposalResponse.response.message));
выдает ошибку, и код состояния, очевидно,потерял.Это версия 1.2.2 Fabric-Client, которую можно найти здесь: https://github.com/hyperledger/fabric-sdk-node/tree/v1.2.2
Есть ли какое-то решение в этом отношении, или мы должны ждать более новой версии?Кажется, что проблема была решена в v1.3 (это совместимо только с Fabric v1.3?
Спасибо