zingolabs / zaino

Zaino is an indexer for the Zcash blockchain implemented in Rust.
Other
5 stars 6 forks source link

2.3 - Provide efficient Compact Block fetch and access to a local non-finalised state for backup RPC backend. #55

Open idky137 opened 2 months ago

idky137 commented 2 months ago

Zaino currently fetches full blocks and parses them to compact blocks every time a client requests block data. This is very inefficient and access to a local compact block cache or at the very lease an internal non-finalised state is required for scale use. This will be inherited from Zebra when Zaino is backed by the ReadStateService (StateService) but this will still not be the case when Zaino uses its backup RPC backend (FetchService), with zcashd or other future RPC based validators. For this reason we need to implement an internal non-finalised state for FetchService.

Tasks

NOTE: If compact blocks are not available in the ReadStateService at the time this work is being implemented, StateService will continue parse data internally until the required indexes are available.