đŸ”ĸNode step by step installation

This is a step by step process alternative to the node auto-installer script. Always refer to the Node Auto-installer for any other info or assistance.

(...) following up from step 2 of the main guide.

Simply run the commands one after the other by copy/pasting. When several commands are grouped, you can safely copy and paste all of them at the same time, and they will be executed sequentially.

Check if everything is alright

Things change fast, and we may be not fast enough to update the scripts you find from now on in the guide. So, to avoid any issue, I suggest checking Telegram pinned messages and Discord announcements for any last minute issue or update. If there is something you don't understand, ask in the chats.

If everything looks fine, proceed.

Even if you run some commands but they don't work because there was a last minute update, don't worry. The worst that can happen is that they will give you an error.


App installation

Update/upgrade the package lists to ensure the latest versions are available.

sudo apt update -y && sudo apt upgrade -y

Install some necessary packages.

sudo apt install git wget tar curl cron -y

Install some optional packages (optional).

sudo apt install tmux jq htop -y

OPTIONAL: You won't need GO since you will be running the node directly from the binary file. But it could still be useful for other things. Download and extract the required version of Go (below commands are for amd64 architectures, if you are on a Linux server they should be fine)

wget https://go.dev/dl/go1.23.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz
sudo rm go1.23.2.linux-amd64.tar.gz

Update PATH and GOPATH environment variables in ~/.bashrc.

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export GO111MODULE=on' >> ~/.bashrc
echo 'export GOPROXY=https://goproxy.cn,direct' >> ~/.bashrc
source ~/.bashrc

Extra setups

OPTIONAL: Create and configure swap space for weak server - (not needed if you are running on Docker)

sudo mkdir /swap && sudo fallocate -l 24G /swap/swapfile && sudo chmod 600 /swap/swapfile
sudo mkswap /swap/swapfile && sudo swapon /swap/swapfile
sudo bash -c 'echo "/swap/swapfile swap swap defaults 0 0" >> /etc/fstab'

Modify network buffer sizes for better performance (likely won't work if you are running on Docker)

sudo bash -c 'echo -e "\nnet.core.rmem_max=600000000" >> /etc/sysctl.conf'
sudo bash -c 'echo -e "\nnet.core.wmem_max=600000000" >> /etc/sysctl.conf'
sudo sysctl -p

Create some useful folders

mkdir -p /root/backup/ /root/scripts/ /root/scripts/log/

Reboot your server (not needed on Docker)

sudo reboot

Login again in your server after 3–5 mins and proceed below


Install your node and run it as a service

OPTIONAL: Clone the ceremony client from GitHub

You won't need the repo code, since you will be running the node directly from the binary file. But it could still be useful for other things so I suggest you do this step.

cd ~ && git clone --depth 1 --branch release https://github.com/QuilibriumNetwork/ceremonyclient.git

Download the node binary

You can download the correct node binary automatically via this script:

mkdir -p ~/scripts && \
curl -sSL "https://raw.githubusercontent.com/lamat1111/QuilibriumScripts/main/tools/qnode_download_node_binary.sh" -o ~/scripts/qnode_download_node_binary.sh && \
chmod +x ~/scripts/qnode_download_node_binary.sh && \
~/scripts/qnode_download_node_binary.sh

Or you can do it manually:

Check the current node release on https://releases.quilibrium.com/release

Retrieve the release from the following urls (using curl or wget) and place the files where your node release normally resides (usually in the ceremonyclient/node folder):

https://releases.quilibrium.com/node-<version>-<os>-<arch> 
https://releases.quilibrium.com/node-<version><os>-<arch>.dgst
https://releases.quilibrium.com/node-<version><os>-<arch>.dgst.sig.1
https://releases.quilibrium.com/node-<version>-<os>-<arch>.dgst.sig.2
https://releases.quilibrium.com/node-<version>-<os>-<arch>.dgst.sig.3
etc.

Replace <version> with the current node version. If on mac, replace <os> with darwin, or on linux, replace <os> with linux. For arch, use arm64 or amd64 as needed for your system.

Download the qclient

Check the current qclient release on https://releases.quilibrium.com/qclient-release

Retrieve the release from the following URLs (using curl or wget) and place the files in ~/ceremonyclient/client

For mac, download the darwin release. For linux, the linux release. For arch, use arm64 or amd64 as needed for your system.

Create the service file and open it in the nano editor

nano /lib/systemd/system/ceremonyclient.service

Copy/paste the below code (for pasting, simply right click with the mouse) If your working directory is different from "root" than edit the code accordingly Change the node binary file name node-2.0.0.5-linux-amd64 according to what you see in your /ceremonyclient/node/ folder

[Unit]
Description=Ceremony Client Go App Service
StartLimitIntervalSec=0
StartLimitBurst=0

[Service]
Type=simple
Restart=always
RestartSec=5s
WorkingDirectory=/root/ceremonyclient/node
ExecStart=/root/ceremonyclient/node/node-2.0.0.5-linux-amd64
ExecStop=/bin/kill -s SIGINT $MAINPID
KillSignal=SIGINT
RestartKillSignal=SIGINT
FinalKillSignal=SIGKILL
TimeoutStopSec=30s

[Install]
WantedBy=multi-user.target

To save press CTRL+X, then Y, then ENTER

Enable the service

sudo systemctl daemon-reload && sudo systemctl enable ceremonyclient

Start the node

service ceremonyclient start

Now continue here


Last updated