<commit_before>End-to-End Flow
===============

The end-to-end verification provisions a sample Fabric network consisting of
two organizations, each maintaining two peers, and a Kafka-based ordering service.

This verification makes use of two fundamental tools, which are necessary to
create a functioning transactional network with digital signature validation
and access control:

* cryptogen - generates the x509 certificates used to identify and authenticate the various components in the network.
* configtxgen - generates the requisite configuration artifacts for orderer bootstrap and channel creation.

Each tool consumes a configuration yaml file, within which we specify the topology
of our network (cryptogen) and the location of our certificates for various
configuration operations (configtxgen).  Once the tools have been successfully run,
we are able to launch our network.  More detail on the tools and the structure of
the network will be provided later in this document.  For now, let's get going...

Prerequisites
-------------

- `Git client <https://git-scm.com/downloads>`__
- `Docker <https://www.docker.com/products/overview>`__ - v1.12 or higher
- `Docker Compose <https://docs.docker.com/compose/overview/>`__ - v1.8 or higher
- `Homebrew <https://brew.sh/>`__ - OSX only
- `Xcode <https://itunes.apple.com/us/app/xcode/id497799835?mt=12>`__ - OSX only (this can take upwards of an hour)
- `Docker Toolbox <https://docs.docker.com/toolbox/toolbox_install_windows/>`__ - Windows users only
- `Go <https://golang.org/>`__ - 1.9 or higher

On Windows machines you will also need the following which provides a better alternative to the Windows command prompt:

- `Git Bash <https://git-scm.com/downloads>`__

.. note:: On older versions of Windows, such as Windows 7, you
          typically get this as part of installing Docker
          Toolbox. However experience has shown this to be a poor
          development environment with limited functionality. It is
          suitable to run docker based scenarios, such as
          :doc:`getting_started`, but you may not be able to find a
          suitable ``make`` command to successfuly go through the
          scenario described here.

Setting the $GOPATH
^^^^^^^^^^^^^^^^^^^
Make sure you have properly setup your Host's `GOPATH environment
variable <https://github.com/golang/go/wiki/GOPATH>`__. This is necessary for the
code to compile properly.

Now create the following directory structure and ``cd`` into it:

.. code:: bash

      mkdir -p $GOPATH/src/github.com/hyperledger
      cd $GOPATH/src/github.com/hyperledger

-  Clone the Fabric code base into this path.

.. code:: bash

       git clone http://gerrit.hyperledger.org/r/fabric

or though a mirrored repository in github:

.. code:: bash

       git clone https://github.com/hyperledger/fabric.git

- If you are running OSX, perform the following:

.. code:: bash
<commit_msg>[FAB-10659] Fix typo in end-to-end.rst<commit_after>End-to-End Flow
===============

The end-to-end verification provisions a sample Fabric network consisting of
two organizations, each maintaining two peers, and a Kafka-based ordering service.

This verification makes use of two fundamental tools, which are necessary to
create a functioning transactional network with digital signature validation
and access control:

* cryptogen - generates the x509 certificates used to identify and authenticate the various components in the network.
* configtxgen - generates the requisite configuration artifacts for orderer bootstrap and channel creation.

Each tool consumes a configuration yaml file, within which we specify the topology
of our network (cryptogen) and the location of our certificates for various
configuration operations (configtxgen).  Once the tools have been successfully run,
we are able to launch our network.  More detail on the tools and the structure of
the network will be provided later in this document.  For now, let's get going...

Prerequisites
-------------

- `Git client <https://git-scm.com/downloads>`__
- `Docker <https://www.docker.com/products/overview>`__ - v1.12 or higher
- `Docker Compose <https://docs.docker.com/compose/overview/>`__ - v1.8 or higher
- `Homebrew <https://brew.sh/>`__ - OSX only
- `Xcode <https://itunes.apple.com/us/app/xcode/id497799835?mt=12>`__ - OSX only (this can take upwards of an hour)
- `Docker Toolbox <https://docs.docker.com/toolbox/toolbox_install_windows/>`__ - Windows users only
- `Go <https://golang.org/>`__ - 1.9 or higher

On Windows machines you will also need the following which provides a better alternative to the Windows command prompt:

- `Git Bash <https://git-scm.com/downloads>`__

.. note:: On older versions of Windows, such as Windows 7, you
          typically get this as part of installing Docker
          Toolbox. However experience has shown this to be a poor
          development environment with limited functionality. It is
          suitable to run docker based scenarios, such as
          :doc:`getting_started`, but you may not be able to find a
          suitable ``make`` command to successfully go through the
          scenario described here.

Setting the $GOPATH
^^^^^^^^^^^^^^^^^^^
Make sure you have properly setup your Host's `GOPATH environment
variable <https://github.com/golang/go/wiki/GOPATH>`__. This is necessary for the
code to compile properly.

Now create the following directory structure and ``cd`` into it:

.. code:: bash

      mkdir -p $GOPATH/src/github.com/hyperledger
      cd $GOPATH/src/github.com/hyperledger

-  Clone the Fabric code base into this path.

.. code:: bash

       git clone http://gerrit.hyperledger.org/r/fabric

or though a mirrored repository in github:

.. code:: bash

       git clone https://github.com/hyperledger/fabric.git

- If you are running OSX, perform the following:

.. code:: bash

{'fraction_non_alphanumeric': 0.09462219196732471, 'fraction_numerical': 0.008339006126616746, 'mean_word_length': 3.6239181746656177, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 20, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2112366', 'n_tokens_mistral': 1674, 'n_tokens_neox': 1552, 'n_words': 692}