Quorum is an open source blockchain protocol specially designed for use in a private blockchain network, where there is either only a single member owning all the nodes, or, a consortium blockchain network, where multiple members each own a portion of the network. Quorum is derived from Ethereum by modifying the Geth client.
Some of the key features of Quorum include:
- Privacy via private transactions: members of a Quorum network can send private transactions that are addressed to a subset of nodes, such that the contents of the transaction are not exposed to non-privy members.
- Peer permissioning: a Quorum network can be configured to run in permissioned mode such that all nodes must be explicitly listed in an access control list enforced by all nodes. This prevents foreign nodes from tapping into the network and replicating blocks as is the case in permissionless networks.
- Flexible consensus: described in greater detail later in this post, Quorum supports Raft and Istanbul BFT as valid consensus options. Both support transaction finality (i.e. lack of chain forking) and offer shorter block intervals than proof-of-work.
The Quorum binary used by Kaleido is under the GPL v3.0 license. It is supported by the community and maintained by the J.P. Morgan Quorum blockchain team.
Block period for Quorum nodes running Raft consensus algorithm is set to 50 milli-seconds. Note that unlike Istanbul BFT or clique PoA, Raft does not produce blocks unless there are pending transactions. With the 50ms block period, a new block is produced if there are pending transactions at least 50ms after the last block was produced. Raft block periods in Kaleido environments are not configurable.
Block period for Quorum nodes running Istanbul BFT is set to 10 seconds. The block period is configurable when creating the environment via the Kaleido API, but not when creating in the Kaleido UI console. When setting a block period in the API call, the value must be in the range of 10 to 20 seconds inclusive.
For more information on Quorum, visit the github.com repository or the Quorum wiki.