Module provider

Source
Expand description

Asynchronous fetching from external data availability providers.

Occasionally, data will be missing from the local persistent storage of this query service. This may be because the query service never received the data from the attached HotShot instance, which happens for each block payload committed while the attached HotShot instance is not a member of the DA committee. It may also be because the query service was started some time after the start of consensus, and needs to catch up on existing data. Or it may simply be a result of failures in the local storage medium.

In any case, the query service is able to fetch missing data asynchronously and out of chronological order, and pending Fetch requests for the missing data will resolve as soon as the data is available. Data can be fetched from any external data availability service, including the HotShot CDN, the data availability committee which is responsible for providing a particular payload, or another instance of this same query service.

This module defines an abstract interface Provider, which allows data to be fetched from any data availability provider, as well as various implementations for different data sources, including:

We also provide combinators for modularly adding functionality to existing fetchers:

Modules§

any 🔒
query_service 🔒

Structs§

AnyProvider
Adaptor combining multiple data availability providers.
NoFetching
Trivial Provider where fetching always fails.
QueryServiceProvider
Data availability provider backed by another instance of this query service.

Traits§

Provider
A provider which is able to satisfy requests for data of type T.