# Rebusd Installation and setup

# Choose an Operating System

The operating system you use for your node is entirely your personal preference. You will be able to compile the rebusd daemon on most modern linux distributions and recent versions of macOS.

# Install pre-requisites

# update the local package list and install any available upgrades
sudo apt-get update && sudo apt upgrade -y

# install toolchain and ensure accurate time synchronization
sudo apt-get install make build-essential gcc git jq chrony -y

# Install Go

Follow the instructions here to install Go.

For an Ubuntu LTS, you can probably use:

wget https://golang.org/dl/go1.17.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.1.linux-amd64.tar.gz

Please install Go v1.17 or later.

Unless you want to configure in a non standard way, then set these in the .profile in the user's home (i.e. ~/) folder.

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin

After updating your ~/.profile you will need to source it:

source ~/.profile

# Build Rebus from source

git clone https://github.com/rebuschain/rebus.core
cd rebus.core
git fetch
git checkout <version-tag>

The <version-tag> will need to be set to either a testnet branch or the latest mainnet version tag.

Once you're on the correct tag, you can build:

# in rebus dir, the binary will be in the build/ folder
make 
# in rebus dir, the binary will be installed in the GO root
make install

Build using docker:

# in rebus dir, the binary can be used from docker (or copied from docker)
make build-docker

To confirm that the installation has succeeded, you can run:

rebusd version

using docker:

# create /opt/rebusdata before 
docker run -it -p 26657:26657 -p 26656:26656 -p 1317:1317 -v /opt/rebusdata/:/.rebusd -t rebuslab/rebus:latest version

# Connecting to the network

To connect to the Rebus network you can either run your own node or connect to a public node's RPC endpoint. To find a public node to connect to consider looking in the Rebus Discord. Connecting to a public node requires the least configuration but you should be sure that you trust whatever node that you choose.

If you choose to run your own node see either Joining Mainet or Joining Testnets depending on what chain you would like to work on.