tendermint/docs/install.rst

111 lines
2.7 KiB
ReStructuredText
Raw Normal View History

2017-09-18 13:42:24 -07:00
Install Tendermint
==================
From Binary
-----------
To download pre-built binaries, see the `Download page <https://tendermint.com/download>`__.
2017-09-01 18:04:34 -07:00
2017-09-18 13:42:24 -07:00
From Source
-----------
2018-02-27 05:20:56 -08:00
You'll need ``go``, maybe `dep <https://github.com/golang/dep>`__, and the Tendermint source code.
2017-09-01 18:04:34 -07:00
Install Go
2017-09-18 13:42:24 -07:00
^^^^^^^^^^
2017-09-01 18:04:34 -07:00
Make sure you have `installed Go <https://golang.org/doc/install>`__ and
set the ``GOPATH``. You should also put ``GOPATH/bin`` on your ``PATH``.
2017-09-01 18:04:34 -07:00
2017-09-18 13:42:24 -07:00
Get Source Code
^^^^^^^^^^^^^^^
2017-09-01 18:04:34 -07:00
You should be able to install the latest with a simple
::
go get github.com/tendermint/tendermint/cmd/tendermint
2017-09-18 13:42:24 -07:00
Run ``tendermint --help`` and ``tendermint version`` to ensure your
installation worked.
2017-09-01 18:04:34 -07:00
2017-10-10 08:15:35 -07:00
If the installation failed, a dependency may have been updated and become
2017-09-01 18:04:34 -07:00
incompatible with the latest Tendermint master branch. We solve this
2018-02-27 05:20:56 -08:00
using the ``dep`` tool for dependency management.
2017-09-01 18:04:34 -07:00
2018-02-27 05:20:56 -08:00
First, install ``dep``:
2017-09-01 18:04:34 -07:00
::
2018-02-27 05:20:56 -08:00
make get_tools
2017-09-01 18:04:34 -07:00
Now we can fetch the correct versions of each dependency by running:
::
cd $GOPATH/src/github.com/tendermint/tendermint
2018-02-27 05:20:56 -08:00
make get_vendor_deps
make install
2017-09-01 18:04:34 -07:00
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
2017-09-18 13:42:24 -07:00
---------
2017-09-01 18:04:34 -07:00
If you already have Tendermint installed, and you make updates, simply
::
cd $GOPATH/src/github.com/tendermint/tendermint
2018-02-27 05:20:56 -08:00
make install
2017-09-01 18:04:34 -07:00
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
2018-02-27 05:20:56 -08:00
``make get_vendor_deps && make install`` as above.
2017-09-01 18:04:34 -07:00
Note the first two options should usually work, but may fail. If they
2018-02-27 05:20:56 -08:00
do, use ``dep``, as above:
2017-09-01 18:04:34 -07:00
::
cd $GOPATH/src/github.com/tendermint/tendermint
2018-02-27 05:20:56 -08:00
make get_vendor_deps
make install
2017-09-01 18:04:34 -07:00
2018-02-27 05:20:56 -08:00
Since the third option just uses ``dep`` right away, it should always
2017-09-01 18:04:34 -07:00
work.
Troubleshooting
2017-09-18 13:42:24 -07:00
---------------
2017-09-01 18:04:34 -07:00
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
2018-02-27 05:20:56 -08:00
make get_vendor_deps
make install
2017-09-01 18:04:34 -07:00
Run
2017-09-18 13:42:24 -07:00
^^^
2017-09-01 18:04:34 -07:00
To start a one-node blockchain with a simple in-process application:
::
tendermint init
tendermint node --proxy_app=kvstore