mirror of
https://github.com/fluencelabs/tendermint
synced 2025-05-02 01:52:16 +00:00
114 lines
2.9 KiB
ReStructuredText
114 lines
2.9 KiB
ReStructuredText
|
Install from Source
|
||
|
===================
|
||
|
|
||
|
This page provides instructions on installing Tendermint from source. To
|
||
|
download pre-built binaries, see the `Download page </download>`__.
|
||
|
|
||
|
Install Go
|
||
|
----------
|
||
|
|
||
|
Make sure you have `installed Go <https://golang.org/doc/install>`__ and
|
||
|
set the ``GOPATH``.
|
||
|
|
||
|
Install Tendermint
|
||
|
------------------
|
||
|
|
||
|
You should be able to install the latest with a simple
|
||
|
|
||
|
::
|
||
|
|
||
|
go get github.com/tendermint/tendermint/cmd/tendermint
|
||
|
|
||
|
Run ``tendermint --help`` for more.
|
||
|
|
||
|
If the installation failed, a dependency may been updated and become
|
||
|
incompatible with the latest Tendermint master branch. We solve this
|
||
|
using the ``glide`` tool for dependency management.
|
||
|
|
||
|
Fist, install ``glide``:
|
||
|
|
||
|
::
|
||
|
|
||
|
go get github.com/Masterminds/glide
|
||
|
|
||
|
Now we can fetch the correct versions of each dependency by running:
|
||
|
|
||
|
::
|
||
|
|
||
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
||
|
glide install
|
||
|
go install ./cmd/tendermint
|
||
|
|
||
|
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
|
||
|
go install ./cmd/tendermint
|
||
|
|
||
|
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
|
||
|
``glide install && go install ./cmd/tendermint`` as above.
|
||
|
|
||
|
Note the first two options should usually work, but may fail. If they
|
||
|
do, use ``glide``, as above:
|
||
|
|
||
|
::
|
||
|
|
||
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
||
|
glide install
|
||
|
go install ./cmd/tendermint
|
||
|
|
||
|
Since the third option just uses ``glide`` 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
|
||
|
glide install
|
||
|
go install ./cmd/tendermint
|
||
|
|
||
|
Run
|
||
|
~~~
|
||
|
|
||
|
To start a one-node blockchain with a simple in-process application:
|
||
|
|
||
|
::
|
||
|
|
||
|
tendermint init
|
||
|
tendermint node --proxy_app=dummy
|
||
|
|
||
|
See the `App Development </docs/guides/app-development>`__ guide for
|
||
|
more details on building applications, and the `Using
|
||
|
Tendermint </docs/guides/using-tendermint>`__ guide for more details
|
||
|
about using the ``tendermint`` program.
|
||
|
|
||
|
Next Step
|
||
|
---------
|
||
|
|
||
|
Learn how to `create your first ABCI
|
||
|
app </docs/getting-started/first-abci-app>`__.
|