Module provider

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 ๐Ÿ”’
testing ๐Ÿ”’

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.
TestProvider
Adaptor to add test-only functionality to an existing Provider.

Traitsยง

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