Install Tendermint

From Binary

To download pre-built binaries, see the Download page.

From Source

You’ll need go, maybe glide, and the Tendermint source code.

Install Go

Make sure you have installed Go 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 glide tool for dependency management.

First, 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