Как дождаться смены вершины Bitcoin без частого опроса
Воркер может ждать изменения последнего известного хеша блока или истечения заданного срока. По хешу в ответе можно различить эти случаи.
Передайте предыдущую вершину явно
В Bitcoin Core 30 второй аргумент принимает известную вершину. Первый задаёт ожидание в миллисекундах. Явная передача хеша позволяет заметить смену вершины между первым чтением и началом ожидания.
tip=$(bitcoin-cli getbestblockhash)
bitcoin-cli waitfornewblock 15000 "$tip"
Обработайте штатный тайм-аут
Сравните полученный hash с сохранённым. При тайм-ауте RPC возвращает текущий блок, в том числе прежний. Из-за реорганизации новый хеш возможен и на той же высоте. Если потребителю важен каждый промежуточный блок, после пробуждения пройдите цепочку от сохранённой контрольной точки.