У меня есть Hyperledger, настроенный с 1 организацией, 2 пирами, 5 заказчиками (кластер Raft). В сети есть один канал с простым чейнкодом.
При отправке транзакций в сеть с помощью Hyperledger Caliper (до 7 клиентов) он отлично работает для меньшего количества транзакций в секунду. Когда я увеличиваю TPS до более 60, для некоторых транзакций возникает следующая ошибка.
2019-07-10T08:20:58.651Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://orderer2-hlf:7050
2019-07-10T08:20:58.652Z - error: [Orderer.js]: Orderer grpcs://orderer2-hlf:7050 has an error Error: Failed to connect before the deadline URL:grpcs://orderer2-hlf:7050
(node:585) UnhandledPromiseRejectionWarning: Error: Failed to connect before the deadline URL:grpcs://orderer2-hlf:7050
at checkState (/opt/caliper/node_modules/fabric-client/node_modules/grpc/src/client.js:833:16)
(node:585) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 42)
Увеличение количества заказчиков снижает количество отклоненных транзакций. Это похоже на ограничение буфера в заказчике.
Fabric утверждает, что имеет около 1000 TPS, но я не могу выйти за рамки 90 TPS (обновление состояния с использованием чейнкода). Любая помощь приветствуется.