Как обновлять кеш индексатора NEAR по списку изменений блока
Полное перечитывание всех наблюдаемых контрактов в каждом блоке расходует ресурсы RPC. Сводка изменений указывает аккаунты и категории затронутого состояния.
Отметьте затронутые записи кеша
Передайте хеш финализированного блока из обработчика. Запись data_touched для shop.testnet позволяет пометить зависимые кешированные представления устаревшими. При contract_code_touched стоит заново проверить декодер или интерфейс этого аккаунта.
{
"jsonrpc": "2.0",
"id": 1,
"method": "block_effects",
"params": {
"block_id": "FINALIZED_BLOCK_HASH"
}
}
Обновите значения на том же блоке
Сводка перечисляет затронутые категории. Для точных изменений хранилища вызовите changes с changes_type data_changes, списком account_ids, префиксом ключей и тем же block_id. Если кешируется вычисляемый результат view-метода, перечитайте его на том же хеше.
Храните отметку обработанного блока отдельно от актуальности кеша. При сбое обновления одного аккаунта оставьте его устаревшим и повторите чтение того же блока, чтобы не подписать новые данные старым хешем.