Install Spend

This guide will explain how to install the spend and spendcli entrypoints onto your system. With these installed on a server, you can participate in the testnet as either a Full Node or a Validator.

Install Go

Install go by following the official docs. Remember to set your $GOPATH and $PATH environment variables, for example:

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 Spend SDK. :::

Install the binaries

Next, let's install the latest version of Spend. Make sure you git checkout the correct released version.

mkdir -p $GOPATH/src/github.com/cosmos
cd $GOPATH/src/github.com/cosmos
git clone -b <latest-release-tag> https://github.com/spend/Spendchain
cd spend && make build-linux
cd build
# Copy binaries to bin so you can use them from terminal
cp spend /bin/
cp spendcli /bin/spendcli

NOTE: If you have issues at this step, please check that you have the latest stable version of GO installed.

That will install the spend and spendcli binaries. Verify that everything is OK:

$ spend version --long
$ spendcli version --long

spendcli 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 testnet, the public testnet or create you own testnet