## Install Gaia This guide will explain how to install the `gaiad` and `gaiacli` entrypoints onto your system. With these installed on a server, you can participate in the mainnet as either a [Full Node](./join-mainnet.md) or a [Validator](./validators/validator-setup.md). ### Install Go Install `go` by following the [official docs](https://golang.org/doc/install). Remember to set your `$GOPATH` and `$PATH` environment variables, for example: ```bash mkdir -p $HOME/go/bin echo "export GOPATH=$HOME/go" >> ~/.bash_profile echo "export PATH=\$PATH:\$GOPATH/bin" >> ~/.bash_profile source ~/.bash_profile ``` ::: tip **Go 1.12+** is required for the Cosmos SDK. ::: ### Install the binaries Next, let's install the latest version of Gaia. Make sure you `git checkout` the correct [released version](https://github.com/cosmos/gaia/releases). ```bash git clone -b https://github.com/cosmos/gaia cd gaia && make install ``` > _NOTE_: If you have issues at this step, please check that you have the latest stable version of GO installed. That will install the `gaiad` and `gaiacli` binaries. Verify that everything is OK: ```bash $ gaiad version --long $ gaiacli version --long ``` `gaiacli` for instance should output something similar to: ``` cosmos-sdk: 0.33.0 git commit: 7b4104aced52aa5b59a96c28b5ebeea7877fc4f0 build tags: netgo ledger go version go1.12 linux/amd64 ``` ##### Build Tags Build tags indicate special features that have been enabled in the binary. | Build Tag | Description | | --------- | ----------------------------------------------- | | netgo | Name resolution will use pure Go code | | ledger | Ledger devices are supported (hardware wallets) | ### Install binary distribution via snap (Linux only) **Do not use snap at this time to install the binaries for production until we have a reproducible binary system.** ### Developer Workflow To test any changes made in the SDK or Tendermint, a `replace` clause needs to be added to `go.mod` providing the correct import path. - Make appropriate changes - Add `replace github.com/cosmos/cosmos-sdk => /path/to/clone/cosmos-sdk` to `go.mod` - Run `make clean install` or `make clean build` - Test changes ### Next Now you can [join the mainnet](./join-mainnet.md), [the public testnet](./join-testnet.md) or [create you own testnet](./deploy-testnet.md)