  Blockchain technologies are expected to make a significant impact on a
variety of industries. However, one issue holding them back is their limited
transaction throughput, especially compared to established solutions such as
distributed database systems. In this paper, we re-architect a modern
permissioned blockchain system, Hyperledger Fabric, to increase transaction
throughput from 3,000 to 20,000 transactions per second. We focus on
performance bottlenecks beyond the consensus mechanism, and we propose
architectural changes that reduce computation and I/O overhead during
transaction ordering and validation to greatly improve throughput. Notably, our
optimizations are fully plug-and-play and do not require any interface changes
to Hyperledger Fabric.
