Yashotantra Academy logo
← Node.js theorytheory 0/50 · 0%
level 1
Curious · 0 XP
streak
0d
perfect
0
badges
0

100 XP to Apprentice

Web3 integration · hard

43. Building an indexer: polling new blocks

Turning a blockchain into a queryable local dataset.

1 min read3 questionsup to 50 XPtopic 43/50

Read in another language

AI translates the explanation and quiz text while preserving code and answer scoring.

An indexer polls (or subscribes to) new blocks, extracts relevant transactions/events, and writes them into a database so an application can query rich, filtered data without hitting the node for every request.

js
async function pollBlocks(rpcCall, db, state) {
  const latestHex = await rpcCall("eth_blockNumber");
  const latest = parseInt(latestHex, 16);
  for (let n = state.lastProcessed + 1; n <= latest; n++) {
    const block = await rpcCall("eth_getBlockByNumber", [`0x${n.toString(16)}`, true]);
    await db.saveBlock(block);
    state.lastProcessed = n;
  }
}

setInterval(() => pollBlocks(rpcCall, db, state).catch(console.error), 5000);

Real indexers must also handle chain reorganizations (a previously-seen block being replaced) by re-checking recent block hashes and rolling back/re-applying affected data — naively assuming block numbers only ever increase leads to corrupted data after a reorg.

How to study this topic

  1. 1. Read the explanation once end to end, skipping the code.
  2. 2. Re-read the code snippets and say out loud what each line does.
  3. 3. Answer the quiz without scrolling back — that is the real check.
  4. 4. Read every explanation, even for the answers you got right.

Scoring

  • · Up to 30 XP from quiz accuracy.
  • · +15 XP for a perfect first attempt.
  • · +5 XP while a 3-day streak is running.
  • · 75% or higher marks the topic complete.

Check your understanding

  1. 1. What is the basic job of a blockchain indexer?

  2. 2. What must a robust indexer handle that the simple example ignores?

  3. 3. Why track `lastProcessed` block number in persistent state?

Badges

First light
Pass your first topic
Sharp shooter
3 perfect first-try quizzes
On a roll
Study 3 days in a row
Week warrior
Study 7 days in a row
Grinder
Earn 500 XP
Deep diver
Earn 1500 XP