Я пытаюсь выполнить тестирование производительности на Hyperledger Fabric v1.2. Сеть настроена, используя цепной код Fabcar. Скорость поступления транзакций в 50 RPS. Использование Node JS-приложения для приема запросов транзакций. Транзакции выполняют операцию putState, добавляя новую переменную в книгу, используя этот код.
- Используемый консенсус: Solo
- Количество узлов: 4 (заказчик и все узлы включены
разные виртуальные машины)
- ГК: CouchDB
При более низком RPS (0-20) все транзакции успешно проходят. При увеличении скорости поступления транзакций до 50 около 50% всех транзакций завершается с ошибкой
Transaction proposal was good
Successfully sent Proposal and received ProposalResponse: Status - 200, message - ""
error: [Remote.js]: Error: Failed to connect before the deadline
error: [Orderer.js]: Orderer grpc://x.x.x.x:7050 has an error Error: Failed to connect before the deadline
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error:
Failed to connect before the deadline
Что означает эта ошибка на самом деле? Почему клиент не может отправить подтвержденную транзакцию заказчику?
И около 20% из них потерпели неудачу со следующей ошибкой
Send transaction promise and event listener promise have completed in 30086 ms
Successfully sent transaction to the orderer.
Transaction failed to be committed to the ledger due to ::TIMEOUT
Согласно различным исследовательским работам, Hyperledger Fabric должна иметь возможность обрабатывать запросы со скоростью до 2000, почему она дает такие результаты?