  Fabric is a modular and extensible open-source system for deploying and
operating permissioned blockchains and one of the Hyperledger projects hosted
by the Linux Foundation (www.hyperledger.org).
  Fabric is the first truly extensible blockchain system for running
distributed applications. It supports modular consensus protocols, which allows
the system to be tailored to particular use cases and trust models. Fabric is
also the first blockchain system that runs distributed applications written in
standard, general-purpose programming languages, without systemic dependency on
a native cryptocurrency. This stands in sharp contrast to existing blockchain
platforms that require "smart-contracts" to be written in domain-specific
languages or rely on a cryptocurrency. Fabric realizes the permissioned model
using a portable notion of membership, which may be integrated with
industry-standard identity management. To support such flexibility, Fabric
introduces an entirely novel blockchain design and revamps the way blockchains
cope with non-determinism, resource exhaustion, and performance attacks.
  This paper describes Fabric, its architecture, the rationale behind various
design decisions, its most prominent implementation aspects, as well as its
distributed application programming model. We further evaluate Fabric by
implementing and benchmarking a Bitcoin-inspired digital currency. We show that
Fabric achieves end-to-end throughput of more than 3500 transactions per second
in certain popular deployment configurations, with sub-second latency, scaling
well to over 100 peers.
