Running a Bitcoin full node has always come with a particular kind of hazing ritual: the initial blockchain download. New node operators have to sync the entire history of Bitcoin transactions before they can participate in validating the network, and that process has historically been, to put it diplomatically, not fast. Andrew S. Toth’s parallel input prevout fetcher, now merged into Bitcoin Core’s upcoming v32 release, takes direct aim at that bottleneck.

The optimization allows Bitcoin Core to fetch previous transaction outputs, known as prevouts, in parallel during input validation rather than sequentially. Instead of checking each transaction’s history one at a time, the software can now open multiple checkout lanes simultaneously.

What the parallel prevout fetcher actually does

When a Bitcoin node validates a transaction, it needs to look up the outputs from previous transactions that are being spent as inputs. This prevout-fetching step has traditionally been one of the sequential choke points during initial block download, or IBD. Every transaction in every block, going all the way back to 2009, needs this lookup.

Toth’s contribution restructures that process so multiple prevout lookups can happen at the same time. The pull request accumulated more than 1,000 review comments over a development period spanning more than two years.