BitTorrent Fast Extension for Bootstrapping Peers

The Fast Extension in BitTorrent, specifically the Allowed Fast feature defined in BEP 6, solves the “cold start” latency issue for newly connected clients. In traditional BitTorrent swarms, a peer without any data must wait for an optimistic unchoke slot before it can download its first piece. The Fast Allowed extension bypasses this bottleneck by permitting choked peers to immediately download a small, predetermined set of pieces, allowing them to enter the reciprocal “tit-for-tat” trading cycle much faster and improving overall swarm efficiency.

The Cold Start Problem in Standard BitTorrent

Under the standard BitTorrent protocol, peer data exchange relies heavily on the choking algorithm. Peers prioritize uploading to nodes that upload back to them (tit-for-tat). Because a brand-new peer enters the swarm with zero pieces, it has nothing to trade.

To give new peers a chance, the protocol uses “optimistic unchoking,” where a client periodically unchokes a random peer regardless of its upload contribution. However, optimistic unchoking cycles typically rotate only every 30 seconds and allocate very few slots per client. As a result, a newly connected peer often experiences significant idle time waiting to be unchoked before it can download a single byte.

How the Allowed Fast Set Works

The Fast Extension (BEP 6) introduces a deterministic algorithm that calculates a small set of piece indices—known as the “Allowed Fast” set—tailored to the connecting peer’s IP address and the torrent’s info-hash.

When two peers supporting the extension establish a connection: 1. The serving peer generates the Allowed Fast list for the remote peer. 2. The serving peer transmits Allowed Fast messages containing these piece indices. 3. The newly connected peer can request these specific pieces immediately, even while remaining in a choked state. 4. The serving peer honors requests for pieces in the Allowed Fast set without needing to formally unchoke the peer.

Why It Is Useful for Swarm Bootstrapping