Как проверить выдачу компактного фильтра блока Bitcoin

Серверу для лёгкого клиента нужны данные компактного фильтра и его заголовок для конкретного блока. Обычный запрос блока не проверяет работу этого индекса.

Получите basic-фильтр по хешу блока

Используйте ноду с включённым и синхронизированным для нужной высоты индексом basic-фильтров. Пример берёт текущую вершину и переводит длину возвращённой шестнадцатеричной строки в байты.

hash=$(bitcoin-cli getbestblockhash)
bitcoin-cli getblockfilter "$hash" basic | jq '{filter_bytes: (.filter | length / 2), header}'

Сохраните привязку к блоку

Сохраните хеш запрошенного блока вместе с заголовком фильтра. Этот заголовок относится к цепочке фильтров и отличается по смыслу от заголовка Bitcoin-блока. Если блок доступен, а фильтр нет, проверьте состояние индекса через getindexinfo. Получение фильтра само по себе не подтверждает платёж в кошелёк.

bitcoincore.org getblockfilter · bitcoincore.org getindexinfo