Trait HeaderDownloader
pub trait HeaderDownloader:
Send
+ Sync
+ Stream<Item = Result<Vec<SealedHeader<Self::Header>>, HeadersDownloaderError<Self::Header>>>
+ Unpin {
type Header: Sealable + Debug + Send + Sync + Unpin + 'static;
// Required methods
fn update_local_head(&mut self, head: SealedHeader<Self::Header>);
fn update_sync_target(&mut self, target: SyncTarget);
fn set_batch_size(&mut self, limit: usize);
// Provided method
fn update_sync_gap(
&mut self,
head: SealedHeader<Self::Header>,
target: SyncTarget,
) { ... }
}
Expand description
A downloader capable of fetching and yielding block headers.
A downloader represents a distinct strategy for submitting requests to download block headers,
while a HeadersClient
represents a client capable
of fulfilling these requests.
A HeaderDownloader
is a [Stream] that returns batches of headers.
Required Associated Types§
Required Methods§
fn update_local_head(&mut self, head: SealedHeader<Self::Header>)
fn update_local_head(&mut self, head: SealedHeader<Self::Header>)
Updates the block number of the local database
fn update_sync_target(&mut self, target: SyncTarget)
fn update_sync_target(&mut self, target: SyncTarget)
Updates the target we want to sync to.
fn set_batch_size(&mut self, limit: usize)
fn set_batch_size(&mut self, limit: usize)
Sets the headers batch size that the Stream should return.
Provided Methods§
fn update_sync_gap(
&mut self,
head: SealedHeader<Self::Header>,
target: SyncTarget,
)
fn update_sync_gap( &mut self, head: SealedHeader<Self::Header>, target: SyncTarget, )
Updates the gap to sync which ranges from local head to the sync target.
See also HeaderDownloader::update_sync_target
and
HeaderDownloader::update_local_head
Implementations on Foreign Types§
Source§impl<H> HeaderDownloader for NoopHeaderDownloader<H>
impl<H> HeaderDownloader for NoopHeaderDownloader<H>
type Header = H
fn update_local_head(&mut self, _: SealedHeader<H>)
fn update_sync_target(&mut self, _: SyncTarget)
fn set_batch_size(&mut self, _: usize)
Source§impl<H> HeaderDownloader for ReverseHeadersDownloader<H>
impl<H> HeaderDownloader for ReverseHeadersDownloader<H>
Source§fn update_sync_target(&mut self, target: SyncTarget)
fn update_sync_target(&mut self, target: SyncTarget)
If the given target is different from the current target, we need to update the sync target