var img = document.createElement('img'); img.src = "https://terradocs.matomo.cloud//piwik.php?idsite=2&rec=1&url=https://feather.terra.money" + location.pathname; img.style = "border:0"; img.alt = "tracker"; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(img,s);
Skip to main content

Appendix

Developing with ARM chips​

MacOS users with ARM chips may want to test Feather on linux/amd64 instances. In cases like this, you could setup Feather in a cloud VM.


# Create a VM instance in GCP...
# Create a GKE cluster in GCP...
# SSH into the newly-created instance
gcloud compute ssh myuser@myhost
# Update/Upgrade packages
sudo apt update && sudo apt upgrade
# Install golang
export LATEST_GO_VERSION="$(curl --silent https://go.dev/VERSION?m=text)"
export GO_TAR_FILE="$LATEST_GO_VERSION.linux-amd64.tar.gz"
export GO_DOWNLOAD_URL="https://golang.org/dl/$GO_TAR_FILE"
wget $GO_DOWNLOAD_URL -P ~
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf ~/$GO_TAR_FILE
rm -f ~/$GO_TAR_FILE
# Add go binary to PATH
export GO_BIN="export PATH=$PATH:/usr/local/go/bin"
grep -qxF "$GO_BIN" ~/.profile || echo $GO_BIN >>~/.profile
source ~/.profile
# Add go installation folder to PATH
export GO_PATH="export PATH=$PATH:$(go env GOPATH)/bin"
grep -qxF "$GO_PATH" ~/.profile || echo $GO_PATH >>~/.profile
source ~/.profile
# Verify golang is installed
go version
# Install make for Makefiles
sudo apt install make
# Build feather binary from source
git clone https://github.com/terra-money/feather
cd feather
git checkout dev
cd cli
make install
# Install docker (omitted)
# https://docs.docker.com/engine/install/ubuntu/
# Allow non-root access to docker
# https://docs.docker.com/engine/install/linux-postinstall/
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
# Start docker on VM startup and verify docker is running
sudo systemctl start docker
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
sudo systemctl status docker
# Install gcloud CLI (omitted)
# https://cloud.google.com/sdk/docs/install#deb
# Login with an account with access to the GKE cluster
gcloud init
# Install kubectl and required plugins
# https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl#gcloud
sudo apt-get install kubectl
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
# Configure access to cluster
export CLUSTER_NAME="<your cluster name>"
export CLUSTER_REGION="<your cluster region>"
gcloud container clusters get-credentials $CLUSTER_NAME --region=$CLUSTER_REGION
# Import key for feather daemon to sign txs
feather config keys add mykey --recover
# Init feather daemon config
feather validator config init --moniker mymoniker
# Start feather daemon
export DOCKER_USER="<your docker username>"
export DOCKER_PW="<your docker password>"
feather validator daemon start --key mykey --docker-registry dockerhub --docker-username $DOCKER_USER --docker-password $DOCKER_PW