Пилообразная форма Hyperledger — запрос не выполнен с кодом состояния 429

Я использую пилообразную книгу Hyperledger, в которой я храню транзакции и одновременно читаю транзакции.
Но в некоторые моменты времени я получаю сообщение об ошибке Ошибка запроса с кодом состояния. 429 и некоторые партии отклоняются.
Кто-нибудь сталкивался с подобными проблемами? Находите ли вы какое-либо альтернативное решение для него?


person Raj    schedule 11.08.2020    source источник
comment
Надеюсь, это поможет вам sawtooth.hyperledger.org/faq/rest/   -  person Arun    schedule 11.08.2020
comment
@Arun Указанный вами URL-адрес просто указывает на ту же ошибку, а не на альтернативное решение или решение, которое я там нашел.   -  person Raj    schedule 12.08.2020


Ответы (1)


Давайте разберемся с проблемой, с которой вы столкнулись (что/почему/как):

Hyperledger Sawtooth отклоняет запросы клиентов с кодом 429, если обнаруживает, что запросов слишком много. Валидатор поддерживает статистику того, сколько блоков создается, сколько транзакций поступает к нему, и прогнозирует, сколько транзакций он может обработать в данном внутреннем блоке. Другими словами, если вы начинаете получать код ошибки 429, это означает, что ваш валидатор считает, что у него достаточно транзакций для обработки. Это убережет валидатора от перегруженных запросов.

Возможные решения: (это всего лишь несколько советов из множества возможных)

  1. Ограничьте скорость клиентских транзакций: проксируйте запросы клиентов, установите механизм повторных попыток для отправки транзакций валидатору. Если ваш прокси-уровень обнаружит, что валидатор заполнен, позвольте ему кэшировать запросы, поступающие от клиента.

  2. Отключите обработчик обратного давления из валидатора. Я не знаю ни одного флага для этого. Я видел, как люди делают это и выясняют, что это не очень хорошая идея.

Надеюсь, вы найдете решение, которое лучше всего подходит для вас, рад узнать, какое решение сработало для вас.

person Arun    schedule 16.08.2020
comment
Спасибо @Arun, ваш ответ помог мне найти правильный путь для решения моей проблемы. Я добавил несколько оболочек поверх отправки пилообразных сообщений и создал интеллектуальный механизм для ожидания и отправки следующего пакета транзакций в пилообразную форму, когда это требуется и может быть использовано пилообразным. - person Raj; 10.12.2020