github.com/zjj1991/quorum@v0.0.0-20190524123704-ae4b0a1e1a19/README.md (about)

     1  # <img src="https://raw.githubusercontent.com/jpmorganchase/quorum/master/logo.png" width="100" height="100"/>
     2  
     3  <a href="https://clh7rniov2.execute-api.us-east-1.amazonaws.com/Express/" target="_blank" rel="noopener"><img title="Quorum Slack" src="https://clh7rniov2.execute-api.us-east-1.amazonaws.com/Express/badge.svg" alt="Quorum Slack" /></a>
     4  [![Build Status](https://travis-ci.org/jpmorganchase/quorum.svg?branch=master)](https://travis-ci.org/jpmorganchase/quorum)
     5  [![Download](https://api.bintray.com/packages/quorumengineering/quorum/geth/images/download.svg)](https://bintray.com/quorumengineering/quorum/geth/_latestVersion)
     6  
     7  Quorum is an Ethereum-based distributed ledger protocol with transaction/contract privacy and new consensus mechanisms.
     8  
     9  Quorum is a fork of [go-ethereum](https://github.com/ethereum/go-ethereum) and is updated in line with go-ethereum releases.
    10  
    11  Key enhancements over go-ethereum:
    12  
    13  * __Privacy__ - Quorum supports private transactions and private contracts through public/private state separation, and utilises peer-to-peer encrypted message exchanges (see [Constellation](https://github.com/jpmorganchase/constellation) and [Tessera](https://github.com/jpmorganchase/tessera)) for directed transfer of private data to network participants
    14  * __Alternative Consensus Mechanisms__ - with no need for POW/POS in a permissioned network, Quorum instead offers multiple consensus mechanisms that are more appropriate for consortium chains:
    15      * __Raft-based Consensus__ - a consensus model for faster blocktimes, transaction finality, and on-demand block creation
    16      * __Istanbul BFT__ - a PBFT-inspired consensus algorithm with transaction finality, by AMIS.
    17  * __Peer Permissioning__ - node/peer permissioning using smart contracts, ensuring only known parties can join the network
    18  * __Higher Performance__ - Quorum offers significantly higher performance than public geth
    19  
    20  ## Architecture
    21  
    22  ![Quorum Tessera Privacy Flow](https://raw.githubusercontent.com/jpmorganchase/quorum-docs/master/images/QuorumTransactionProcessing.JPG)
    23  
    24  The above diagram is a high-level overview of the privacy architecture used by Quorum. For more in-depth discussion of the components, refer to the [wiki](https://github.com/jpmorganchase/quorum/wiki) pages.
    25  
    26  ## Quickstart
    27  The quickest way to get started with Quorum is by following instructions in the [Quorum Examples](https://github.com/jpmorganchase/quorum-examples) repository.  This allows you to quickly create a network of Quorum nodes, and includes a step-by-step demonstration of the privacy features of Quorum.
    28  
    29  ## Further Reading
    30  Further documentation can be found in the [docs](docs/) folder and on the [wiki](https://github.com/jpmorganchase/quorum/wiki).
    31  
    32  ## Official Docker Containers
    33  The official docker containers can be found under https://hub.docker.com/u/quorumengineering/ 
    34  
    35  
    36  ## See also
    37  
    38  * [Quorum](https://github.com/jpmorganchase/quorum): this repository
    39  * [Quorum Wiki](https://github.com/jpmorganchase/quorum/wiki)
    40  * [quorum-examples](https://github.com/jpmorganchase/quorum-examples): Quorum demonstration examples
    41  * [Quorum Community Slack Inviter](https://clh7rniov2.execute-api.us-east-1.amazonaws.com/Express/): Quorum Slack community entry point
    42  * Quorum Transaction Managers
    43     * [Constellation](https://github.com/jpmorganchase/constellation): Haskell implementation of peer-to-peer encrypted message exchange for transaction privacy
    44     * [Tessera](https://github.com/jpmorganchase/tessera): Java implementation of peer-to-peer encrypted message exchange for transaction privacy
    45  * Quorum supported consensuses
    46     * [Raft Consensus Documentation](docs/raft.md)
    47     * [Istanbul BFT Consensus Documentation](https://github.com/ethereum/EIPs/issues/650): [RPC API](https://github.com/jpmorganchase/quorum/blob/master/docs/istanbul-rpc-api.md) and [technical article](https://medium.com/getamis/istanbul-bft-ibft-c2758b7fe6ff). <span style="background-color: #ffffbf">Please note</span> that updated istanbul-tools is now hosted in [this](https://github.com/jpmorganchase/istanbul-tools/) repository
    48     * [Clique POA Consensus Documentation](https://github.com/ethereum/EIPs/issues/225) and a [guide to setup clique json](https://modalduality.org/posts/puppeth/) with [puppeth](https://blog.ethereum.org/2017/04/14/geth-1-6-puppeth-master/)
    49  * [ZSL](https://github.com/jpmorganchase/quorum/wiki/ZSL) wiki page and [documentation](https://github.com/jpmorganchase/zsl-q/blob/master/README.md)
    50  * [quorum-tools](https://github.com/jpmorganchase/quorum-tools): local cluster orchestration, and integration testing tool
    51  
    52  ## Third Party Tools/Libraries
    53  
    54  The following Quorum-related libraries/applications have been created by Third Parties and as such are not specifically endorsed by J.P. Morgan.  A big thanks to the developers for improving the tooling around Quorum!
    55  
    56  * [Quorum Blockchain Explorer](https://github.com/blk-io/blk-explorer-free) - a Blockchain Explorer for Quorum which supports viewing private transactions
    57  * [Quorum-Genesis](https://github.com/davebryson/quorum-genesis) - A simple CL utility for Quorum to help populate the genesis file with voters and makers
    58  * [Quorum Maker](https://github.com/synechron-finlabs/quorum-maker/) - a utility to create Quorum nodes
    59  * [QuorumNetworkManager](https://github.com/ConsenSys/QuorumNetworkManager) - makes creating & managing Quorum networks easy
    60  * [ERC20 REST service](https://github.com/blk-io/erc20-rest-service) - a Quorum-supported RESTful service for creating and managing ERC-20 tokens
    61  * [Nethereum Quorum](https://github.com/Nethereum/Nethereum/tree/master/src/Nethereum.Quorum) - a .NET Quorum adapter
    62  * [web3j-quorum](https://github.com/web3j/quorum) - an extension to the web3j Java library providing support for the Quorum API
    63  * [Apache Camel](http://github.com/apache/camel) - an Apache Camel component providing support for the Quorum API using web3j library. Here is the artcile describing how to use Apache Camel with Ethereum and Quorum https://medium.com/@bibryam/enterprise-integration-for-ethereum-fa67a1577d43
    64  
    65  
    66  ## Contributing
    67  
    68  Thank you for your interest in contributing to Quorum!
    69  
    70  Quorum is built on open source and we invite you to contribute enhancements. Upon review you will be required to complete a Contributor License Agreement (CLA) before we are able to merge. If you have any questions about the contribution process, please feel free to send an email to [quorum_info@jpmorgan.com](mailto:quorum_info@jpmorgan.com).
    71  
    72  ## License
    73  
    74  The go-ethereum library (i.e. all code outside of the `cmd` directory) is licensed under the
    75  [GNU Lesser General Public License v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html), also
    76  included in our repository in the `COPYING.LESSER` file.
    77  
    78  The go-ethereum binaries (i.e. all code inside of the `cmd` directory) is licensed under the
    79  [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html), also included
    80  in our repository in the `COPYING` file.