babylon-staking-indexer
Description
The babylon-staking-indexer is a core indexing service that processes and tracks staking-related transactions from the Babylon blockchain. It ensures that staking-related events are captured, indexed, and made available for further processing.
This module is responsible for
indexing blockchain staking transactions — capturing staking, unbonding, and withdrawal events
interacting with the Babylon blockchain — retrieving real-time staking data
processing event queues — ensuring staking transactions are correctly managed
storing and managing indexed staking data within a database
providing staking status updates for users and applications
Here are its key functionalities:
Blockchain event indexing — listens for staking transactions and processes them
Database management — stores staking transaction details, including lock durations
Queue processing — handles staking-related events in an asynchronous queue system
Observability and logging — monitors system state and provides logging and metrics
Invariants
Only authorized services should be able to interact with the indexer.
Test coverage
Cases covered
Blockchain event processing — capturing staking-related transactions from the Babylon blockchain and validating correct indexing and storage of staking data
Database interaction — ensuring staking transactions are stored and retrieved correctly and validating indexing and retrieval for efficient query performance
Queue-message handling — validating that staking events are correctly queued and processed and ensuring retry limits are enforced
Attack surface
Without proper rate limits, an attacker could flood the queue with excessive staking messages. Implementing retry limits and validation rules is necessary.