mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-26 07:12:16 +00:00
101 lines
2.7 KiB
Markdown
101 lines
2.7 KiB
Markdown
# 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).
|