120 lines
2.7 KiB
Markdown
120 lines
2.7 KiB
Markdown
---
|
|
sidebar_position: 0
|
|
---
|
|
|
|
# Setting Up
|
|
|
|
## Pre-Requisites
|
|
|
|
There are a few things needed before installing.
|
|
|
|
While logged in as the 'root' or 'admin' user, we add a 'jackal' user and give them root privileges.
|
|
|
|
### Enable Firewall Rules
|
|
|
|
Enabling the firewall is important to ensure your hardware remains secure. The following commands will add rules
|
|
required for access on both validators and providers:
|
|
|
|
```sh
|
|
sudo ufw allow 22
|
|
sudo ufw allow 80
|
|
sudo ufw allow 443
|
|
```
|
|
|
|
Additional ports are required if you are running a validator:
|
|
|
|
```sh
|
|
sudo ufw allow 26657
|
|
sudo ufw allow 26658
|
|
```
|
|
|
|
The only additional port required for a provider is 3333:
|
|
|
|
```sh
|
|
sudo ufw allow 3333
|
|
```
|
|
|
|
If you are running a combined validator/provider, you need to allow all of the above ports. After adding ports to the
|
|
rules list, you will need to start the firewall:
|
|
|
|
```sh
|
|
sudo ufw enable
|
|
```
|
|
|
|
After starting the firewall, verify all of the required rules are in place by running:
|
|
|
|
```sh
|
|
sudo ufw status verbose
|
|
```
|
|
|
|
Your output should be similar to the following:
|
|
|
|
```sh
|
|
Status: active
|
|
|
|
To Action From
|
|
-- ------ ----
|
|
22 ALLOW Anywhere
|
|
80 ALLOW Anywhere
|
|
443 ALLOW Anywhere
|
|
1317 ALLOW Anywhere
|
|
3333 ALLOW Anywhere
|
|
26657 ALLOW Anywhere
|
|
26658 ALLOW Anywhere
|
|
```
|
|
|
|
### Create Jackal user
|
|
|
|
```sh
|
|
sudo adduser --gecos "" jackal
|
|
sudo usermod -aG sudo jackal
|
|
```
|
|
|
|
Log in as the jackal user to complete the below steps:
|
|
|
|
```sh
|
|
sudo su - jackal
|
|
```
|
|
|
|
### Installing required tools
|
|
|
|
This will install the necessary tools to build the jackal chain source, along with lz4 compression tool and jquery tool.
|
|
|
|
```sh
|
|
sudo apt update
|
|
sudo apt install build-essential lz4 jq
|
|
```
|
|
|
|
### Installing Go
|
|
|
|
Follow more in-depth instructions to install Go v1.19 or higher [here](https://golang.org/doc/install).
|
|
|
|
On Ububtu you can install it with:
|
|
|
|
```sh
|
|
GOVER=$(curl https://go.dev/VERSION?m=text)
|
|
wget https://golang.org/dl/${GOVER}.linux-amd64.tar.gz
|
|
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf ${GOVER}.linux-amd64.tar.gz
|
|
```
|
|
|
|
Add the following golang path info to the current users `~/.profile`.
|
|
|
|
Also add it to the skeleton profile so all new users have it. `/etc/skel/.profile`
|
|
|
|
```sh
|
|
# add environmental variables for Go
|
|
if [ -f "/usr/local/go/bin/go" ] ; then
|
|
export GOROOT=/usr/local/go
|
|
export GOPATH=${HOME}/go
|
|
export GOBIN=$GOPATH/bin
|
|
export PATH=${PATH}:${GOROOT}/bin:${GOBIN}
|
|
export GO111MODULE=on
|
|
fi
|
|
```
|
|
|
|
Restarting the shell with youre profile settings or just rebasing them like so is required.
|
|
|
|
```sh
|
|
source ~/.profile
|
|
```
|