Как избежать повторной обработки старого чанка в блоках 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. Сохраните хеш как ключ уникальности до применения агрегатов.

Повторно использованный заголовок и новый чанк с нулём транзакций описывают разные ситуации. Учитывайте их раздельно при оценке доступности шарда.

Источники