You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RPC-only indexing is painfully slow. Some of our indexers have been running for days without catching up to the chain tip.
The main culprits: small max block ranges, flaky RPC endpoints, and the usual RPC headaches.
Solution
Let’s allow users to plug in custom “bisection” hooks (functions/oracles—call them what you want). These would let the Envio indexer run a binary search to quickly rule out block ranges that don’t contain relevant transactions.
A couple of examples:
State root check: Did the smart contract’s state root change at all? If yes → there was at least one tx in this range.
ERC-20 balance check: Did the token balance of the contract change?
Users could combine hooks too (e.g. to filter out false positives where balances stay the same even if txs occurred).
The big win: indexing gets much faster since we skip huge swaths of “empty” blocks.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Problem
RPC-only indexing is painfully slow. Some of our indexers have been running for days without catching up to the chain tip.
The main culprits: small max block ranges, flaky RPC endpoints, and the usual RPC headaches.
Solution
Let’s allow users to plug in custom “bisection” hooks (functions/oracles—call them what you want). These would let the Envio indexer run a binary search to quickly rule out block ranges that don’t contain relevant transactions.
A couple of examples:
Users could combine hooks too (e.g. to filter out false positives where balances stay the same even if txs occurred).
The big win: indexing gets much faster since we skip huge swaths of “empty” blocks.
Beta Was this translation helpful? Give feedback.
All reactions