bsv-overlay-engine 0.2.2

Transaction admission, lookup and GASP synchronization for BSV overlay services.
Documentation
//! Platform transport for SHIP and SLAP discovery during a GASP tick.

use crate::types::{LookupQuestion, OutputListItem};
use async_trait::async_trait;

/// Maximum additional `ls_ship` providers queried in one sync invocation.
/// Configured trackers are always queried; advertised providers share this
/// allowance across topics. This caps lookup hosts, never advertised peers.
pub const SHIP_DISCOVERY_MAX_HOSTS_PER_TICK: usize = 4;

/// A platform's bounded `POST /lookup` client. Non-output answers are empty.
/// The Worker supplies fetch and its deadline; native tests supply records.
#[async_trait(?Send)]
pub trait ShipLookupClient {
    async fn lookup(
        &self,
        host: &str,
        question: &LookupQuestion,
    ) -> Result<Vec<OutputListItem>, String>;
}