Я использую пилообразную книгу Hyperledger, в которой я храню транзакции и одновременно читаю транзакции.
Но в некоторые моменты времени я получаю сообщение об ошибке Ошибка запроса с кодом состояния. 429 и некоторые партии отклоняются.
Кто-нибудь сталкивался с подобными проблемами? Находите ли вы какое-либо альтернативное решение для него?
Пилообразная форма Hyperledger — запрос не выполнен с кодом состояния 429
Ответы (1)
Давайте разберемся с проблемой, с которой вы столкнулись (что/почему/как):
Hyperledger Sawtooth отклоняет запросы клиентов с кодом 429, если обнаруживает, что запросов слишком много. Валидатор поддерживает статистику того, сколько блоков создается, сколько транзакций поступает к нему, и прогнозирует, сколько транзакций он может обработать в данном внутреннем блоке. Другими словами, если вы начинаете получать код ошибки 429, это означает, что ваш валидатор считает, что у него достаточно транзакций для обработки. Это убережет валидатора от перегруженных запросов.
Возможные решения: (это всего лишь несколько советов из множества возможных)
Ограничьте скорость клиентских транзакций: проксируйте запросы клиентов, установите механизм повторных попыток для отправки транзакций валидатору. Если ваш прокси-уровень обнаружит, что валидатор заполнен, позвольте ему кэшировать запросы, поступающие от клиента.
Отключите обработчик обратного давления из валидатора. Я не знаю ни одного флага для этого. Я видел, как люди делают это и выясняют, что это не очень хорошая идея.
Надеюсь, вы найдете решение, которое лучше всего подходит для вас, рад узнать, какое решение сработало для вас.