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 ([login to view URL]).
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 nondeterminism, 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.