pub async fn download_server_descriptors(
fingerprints: Option<&[&str]>,
endpoints: Option<&[DirPort]>,
request_timeout: Option<Duration>,
) -> Result<DownloadResult, Error>Expand description
Downloads server descriptors.
Server descriptors contain detailed information about relays including their keys, exit policies, and capabilities.
§Arguments
fingerprints- Optional list of relay fingerprints to fetch. IfNone, downloads all server descriptors (large!). Maximum 96 fingerprints per request.endpoints- Optional list of endpoints to try.request_timeout- Optional timeout for each download attempt.
§Returns
A DownloadResult containing the server descriptors.
§Errors
Returns Error::InvalidRequest if more than 96 fingerprints are requested.
Returns Error::Download if all endpoints fail.
§Example
use stem_rs::descriptor::remote::download_server_descriptors;
use std::time::Duration;
// Download specific relay descriptors
let fingerprints = ["9695DFC35FFEB861329B9F1AB04C46397020CE31"];
let result = download_server_descriptors(
Some(&fingerprints.iter().map(|s| *s).collect::<Vec<_>>()),
None,
Some(Duration::from_secs(30)),
).await?;