Indeksowanie
Indeksowanie, po angielsku indexing, to offchainowy proces czytania danych z blockchaina, organizowania ich w strukturach zapytań i udostępniania aplikacjom.
Czym jest indeksowanie
Blockchain jest dobry w konsensusie i weryfikacji, ale nie jest wygodną bazą danych do złożonych zapytań historycznych.
Indekser czyta bloki, transakcje i eventy, a potem zapisuje wybrane informacje w bazie zoptymalizowanej pod szybkie zapytania.
Dzięki temu portfel może szybko pokazać historię transakcji, dashboard DeFi może policzyć pozycję, a explorer może wyszukać aktywność adresu.
Co umożliwia indeksowanie
- Historia portfela
- Lista transferów, swapów, NFT i interakcji z dappami.
- Dashboard DeFi
- Wycena pozycji, LP, długu, collateral i nagród.
- Analityka protokołu
- Wolumen, opłaty, liczba użytkowników, TVL i zdarzenia kontraktów.
- Subgraph
- Schemat indeksowania danych używany m.in. przez The Graph.
- Explorer
- Czytelny interfejs do przeglądania danych, które surowo są trudne do analizowania.
Dlaczego samo RPC nie wystarcza
RPC dobrze sprawdza się przy prostych odczytach bieżącego stanu, takich jak saldo albo wynik eth_call.
Pytanie typu „pokaż wszystkie swapy tego poola z ostatnich 7 dni” wymaga przetworzenia dużej ilości historii. Node nie działa jak relacyjna baza danych z gotowymi zapytaniami.
Indekser przygotowuje dane wcześniej, więc aplikacja nie musi skanować całego łańcucha na żądanie użytkownika.
Najczęstsze błędne założenia
- Dane z indexera nie są tym samym co kanoniczny stan łańcucha.
- Bug w logice indeksowania może pokazać błędną historię albo błędną pozycję.
- Opóźniony indexer może sprawić, że dashboard wygląda na nieaktualny.
- Eventy smart kontraktów są praktycznym API historii, ale muszą być poprawnie zaprojektowane.
- Krytyczne aplikacje powinny weryfikować ważne dane z onchainowym stanem.
Indexer tłumaczy blockchain na dane dla aplikacji
Indeksowanie sprawia, że portfele, dashboardy i explorery działają szybko. Źle działający indexer może jednak pokazywać opóźnione albo błędne dane.
