Как избежать повторной обработки старого чанка в блоках NEAR
Блок содержит заголовки чанков шардов даже при отсутствии нового чанка в конкретном шарде на этой высоте. Если считать каждый заголовок новым, часть активности попадёт в индекс повторно.
Сравните высоту включения с высотой блока
Прочитайте блок и массив chunks. Для каждого заголовка сохраните chunk_hash, shard_id и height_included. Сравните height_included с header.height содержащего блока. Для измерения задержек отдельно сохраните height_created.
{
"jsonrpc": "2.0",
"id": 1,
"method": "block",
"params": {
"finality": "final"
}
}
Привяжите импорт к идентификатору чанка
В блоке 510 заголовок с height_included 509 относится к предыдущему включению. У заголовка со значением 510 включение новое для этого блока. Получите такой чанк методом chunk, передав его хеш в chunk_id. Сохраните хеш как ключ уникальности до применения агрегатов.
Повторно использованный заголовок и новый чанк с нулём транзакций описывают разные ситуации. Учитывайте их раздельно при оценке доступности шарда.