Skip to content

INTEARnear/inindexer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crates-io Workflow Status

Indexer

InIndexer is a NEAR indexer framework.

Features

  • Different sources of near data: neardata-server (implemented), AWS Lake (only consecutive ascending ranges are supported), local file storage for backfilling (planned), you can add your own sources by implementing MessageStreamer or message_provider::MessageProvider trait.
  • Simple indexer interface: you only need to implement Indexer trait and handle receipts, blocks, transactions, or transactions with all receipts included, at a cost of some preprocessing overhead (around 1-2ms in release mode with 80-100 TPS on Slime's PC, this can be disabled in IndexerOptions::preprocess_transactions).
  • Retries, performance warnings, skipped blocks handling, and other features are built-in, so you can focus on your indexer logic.
  • Auto-Continue: the indexer will save the last processed block height to the file and continue from it on the next run. Includes a Ctrl+C handler for graceful shutdown.
  • Some helper functions and types for working with logs, balances, and other commonly used functionality in near_utils.

This crate only works with tokio runtime.

If you want to see some examples, check minimal examples in examples/ or real indexers used in Intear infrastructure (nft-indexer, potlock-indexer, trade-indexer). By the way, these repositories are libraries, so if you want the same functionality but with a different event handler, you can use them in your code.

To run multiple indexers at once without making a new request for each indexer, use MultiIndexer, with MapErrorIndexer if your indexers have different error types.

About

Build an indexer.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages