# Build Requirements
At present, the SDK fully supports installation on linux distributions. For the purpose of this instruction set, we'll be using
Ubuntu 20.04.3 LTS. It is also possible to install
gaiad on Unix, while Windows may require additional unsupported third party installation. All steps are listed below for a clean install.
# Build Tools
# Install Go
Go 1.17+ or later is required for the Cosmos SDK.
We suggest the following two ways to install Go. Check out the official docs (opens new window) and Go installer for the correct download for your operating system. Alternatively, you can install Go yourself from the command line. Detailed below are standard default installation locations, but feel free to customize.
At the time of this writing, the latest release is
1.17.4. We're going to download the tarball, extract it to
/usr/local, and export
GOROOT to our
Remember to add
GOPATH to your
$PATH environment variable. If you're not sure where that is, run
go env GOPATH. This will allow us to run the
gaiad binary in the next step. If you're not sure how to set your
$PATH take a look at these instructions (opens new window).
# Install the binaries
Next, let's install the latest version of Gaia. Make sure you
git checkout the
correct released version (opens new window).
If this command fails due to the following error message, you might have already set
LDFLAGS prior to running this step.
Unset this environment variable and try again.
NOTE: If you still have issues at this step, please check that you have the latest stable version of GO installed.
That will install the
gaiad binary. Verify that everything installed successfully by running:
You should see something similar to the following:
# Build Tags
Build tags indicate special features that have been enabled in the binary.
|netgo||Name resolution will use pure Go code|
|ledger||Ledger devices are supported (hardware wallets)|
# Work with a Cosmos SDK Clone
To work with your own modifications of the Cosmos SDK, make a fork of this repo, and add a
replace clause to the
replace clause you add to
go.mod must provide the correct import path:
- Make appropriate changes
replace github.com/cosmos/cosmos-sdk => /path/to/clone/cosmos-sdkto
make clean installor
make clean build
- Test changes