Skip to main content

try_fetch_parallel

Function try_fetch_parallel 

Source
pub async fn try_fetch_parallel(
    endpoint: &Endpoint,
    blobs: &BlobStore,
    hash: Hash,
    providers: &[(PublicKey, BlobTicket)],
    config: &ParallelDownloadConfig,
) -> Result<TryParallelResult>
Expand description

Try to download a blob in parallel from multiple providers.

§Phase 1 (stripe interleaving)

Chunks are divided into 1 MiB stripes assigned via deterministic scoring. Each provider gets a deadline of 8× estimated completion based on observed download rate.

§Phase 2 (retry)

Stripes that failed in phase 1 are reassigned to surviving providers with a tighter 4× deadline.

§Errors

Returns an error if the temporary file cannot be created, or if the assembled blob does not match the expected hash.