Как определить блокирующий пакет в упорядоченном канале IBC
Упорядоченный канал принимает пакеты последовательно. Если у ретранслятора уже готов пакет 17, ему всё ещё может понадобиться пакет 16.
Прочитайте ожидаемый номер у получателя
Задайте DST как адрес TLS gRPC с reflection на принимающей сети и замените порт и канал. Убедитесь в режиме ORDERED, затем прочтите nextSequenceReceive и высоту ответа.
grpcurl -d '{"portId":"example","channelId":"channel-3"}' "$DST" ibc.core.channel.v1.Query/NextSequenceReceive
Если ожидается 16, а в очереди 17 и 18, проверьте обязательство и исходные данные пакета 16. Отправка более поздних пакетов первой не устранит разрыв в строго упорядоченном канале.
После тайм-аута проверьте состояние канала
Перед повтором проверьте, открыт ли канал. Упорядоченный канал IBC Classic может закрыться при тайм-ауте. У неупорядоченных каналов получение отмечается отдельно для каждого пакета, поэтому этот счётчик не показывает все пропуски. github.com ibc-go Query API