Install Tendermint
|
|
==================
|
|
|
|
From Binary
|
|
-----------
|
|
|
|
To download pre-built binaries, see the `Download page <https://tendermint.com/downloads>`__.
|
|
|
|
From Source
|
|
-----------
|
|
|
|
You'll need ``go``, maybe `dep <https://github.com/golang/dep>`__, and the Tendermint source code.
|
|
|
|
Install Go
|
|
^^^^^^^^^^
|
|
|
|
Make sure you have `installed Go <https://golang.org/doc/install>`__ and
|
|
set the ``GOPATH``. You should also put ``GOPATH/bin`` on your ``PATH``.
|
|
|
|
Get Source Code
|
|
^^^^^^^^^^^^^^^
|
|
|
|
You should be able to install the latest with a simple
|
|
|
|
::
|
|
|
|
go get github.com/tendermint/tendermint/cmd/tendermint
|
|
|
|
Run ``tendermint --help`` and ``tendermint version`` to ensure your
|
|
installation worked.
|
|
|
|
If the installation failed, a dependency may have been updated and become
|
|
incompatible with the latest Tendermint master branch. We solve this
|
|
using the ``dep`` tool for dependency management.
|
|
|
|
First, install ``dep``:
|
|
|
|
::
|
|
|
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
|
make get_tools
|
|
|
|
Now we can fetch the correct versions of each dependency by running:
|
|
|
|
::
|
|
|
|
make get_vendor_deps
|
|
make install
|
|
|
|
Note that even though ``go get`` originally failed, the repository was
|
|
still cloned to the correct location in the ``$GOPATH``.
|
|
|
|
The latest Tendermint Core version is now installed.
|
|
|
|
Reinstall
|
|
---------
|
|
|
|
If you already have Tendermint installed, and you make updates, simply
|
|
|
|
::
|
|
|
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
|
make install
|
|
|
|
To upgrade, there are a few options:
|
|
|
|
- set a new ``$GOPATH`` and run
|
|
``go get github.com/tendermint/tendermint/cmd/tendermint``. This
|
|
makes a fresh copy of everything for the new version.
|
|
- run ``go get -u github.com/tendermint/tendermint/cmd/tendermint``,
|
|
where the ``-u`` fetches the latest updates for the repository and
|
|
its dependencies
|
|
- fetch and checkout the latest master branch in
|
|
``$GOPATH/src/github.com/tendermint/tendermint``, and then run
|
|
``make get_vendor_deps && make install`` as above.
|
|
|
|
Note the first two options should usually work, but may fail. If they
|
|
do, use ``dep``, as above:
|
|
|
|
::
|
|
|
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
|
make get_vendor_deps
|
|
make install
|
|
|
|
Since the third option just uses ``dep`` right away, it should always
|
|
work.
|
|
|
|
Troubleshooting
|
|
---------------
|
|
|
|
If ``go get`` failing bothers you, fetch the code using ``git``:
|
|
|
|
::
|
|
|
|
mkdir -p $GOPATH/src/github.com/tendermint
|
|
git clone https://github.com/tendermint/tendermint $GOPATH/src/github.com/tendermint/tendermint
|
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
|
make get_tools
|
|
make get_vendor_deps
|
|
make install
|
|
|
|
Run
|
|
^^^
|
|
|
|
To start a one-node blockchain with a simple in-process application:
|
|
|
|
::
|
|
|
|
tendermint init
|
|
tendermint node --proxy_app=kvstore
|