  The success of blockchains has sparked interest in large-scale deployments of
Byzantine fault tolerant (BFT) consensus protocols over wide area networks. A
central feature of such networks is variable communication bandwidth across
nodes and across time. We present DispersedLedger, an asynchronous BFT protocol
that provides near-optimal throughput in the presence of such variable network
bandwidth. The core idea of DispersedLedger is to enable nodes to propose,
order, and agree on blocks of transactions without having to download their
full content. By enabling nodes to agree on an ordered log of blocks, with a
guarantee that each block is available within the network and unmalleable,
DispersedLedger decouples bandwidth-intensive block downloads at different
nodes, allowing each to make progress at its own pace. We build a full system
prototype and evaluate it on real-world and emulated networks. Our results on a
geo-distributed wide-area deployment across the Internet shows that
DispersedLedger achieves 2x better throughput and 74% reduction in latency
compared to HoneyBadger, the state-of-the-art asynchronous protocol.
