Cache hit
The client picks the candidate with the best combination of price, latency, and reputation. After settling on a node, it opens a USDC channel and streams. Vouchers cover every byte delivered; the node can settle any voucher on-chain later.Cache miss with pull-through
Paid delivery is one protocol — used both client→node and node→node. Every byte of the node-to-node pull is paid by the serving node, which amortizes that cost across many downstream client deliveries. If pull-through is disabled in the node’s config, the node returns a redirect pointing to a peer (never an origin URL). The client opens a channel with that peer directly.Multi-source parallel fetch
For a large blob, the client doesn’t pull from a single node. A client-side scheduler splits the blob across several sources at once — full holders only for now — up tomax_sources (a configurable cap on parallel sources). Each source is assigned bao-aligned work units (byte ranges the bao decoder can verify on their own).
Assignment is dynamic: fast sources steal work from slow ones, every unit is verified as it lands, a failed unit is re-dispatched to another source, and the last few stragglers are hedged across sources so one slow peer can’t stall completion. Aggregating parallel streams lets a blob be delivered at multi-gigabit speeds once it’s cached across enough full holders — no single origin’s uplink caps the transfer.
There is no new wire surface — each source is just an ordinary paid cdn/client/v1 stream, so channels, vouchers, and slashing work exactly as in the single-source paths above.
Payment channels in four lines
- Open — client opens a channel on-chain. Deposit is escrowed in the
PaymentChannelcontract. - Vouchers — off-chain signed messages updating the cumulative amount owed. Cadence is negotiable per stream.
- Close — either party submits the latest voucher on-chain. A dispute window lets the counterparty submit a later-nonce voucher if the close is stale.
- Cooperative close (fast path) — when both parties are online and agree, a single co-signed transaction settles the channel immediately with no dispute window, falling back to the standard close if either side declines.
What keeps the network honest
- Hash verification. Clients verify every chunk against the known blob hash. A bad byte voids payment.
- On-chain evidence. Protocol messages are signed in a form that can be verified on-chain as evidence of phantom announcements, rate manipulation, or blacklist violations (slashing).
- Synchronous adjudication. The on-chain judge verifies submitted evidence and slashes on the spot, with no counter-evidence window.
- Reputation. A 0.0–1.0 score combining direct experience and signed gossip from staked nodes (reputation).
- Content blacklist. Governance-managed on-chain hash blacklist. Serving a blacklisted hash after the compliance window is slashable (takedown).
Where the boundary sits
See privacy for the adversary model.