How to set up the Quicksilver Node
Hello everyone! Let's install the Quicksilver node and participate The Rhapsody testnet. Don't forget to play the "Bohemian Rhapsody" for inspiration.
Requirements for the node according to the documentation: 4 Cores (modern CPU's), 8GB RAM, 40GB of storage. Quicksilver is using statesync, so disk requirements will be low.
Always update your server first
sudo apt install make clang pkg-config libssl-dev build-essential git gcc chrony curl jq ncdu bsdmainutils htop net-tools lsof fail2ban wget -y
Go lang installation. Please check the version at the end.
cd $HOME wget -O go1.18.1.linux-amd64.tar.gz https://golang.org/dl/go1.18.1.linux-amd64.tar.gz rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz && rm go1.18.1.linux-amd64.tar.gz echo 'export GOROOT=/usr/local/go' >> $HOME/.bash_profile echo 'export GOPATH=$HOME/go' >> $HOME/.bash_profile echo 'export GO111MODULE=on' >> $HOME/.bash_profile echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && . $HOME/.bash_profile go version
Download and install the binary
git clone https://github.com/ingenuity-build/quicksilver.git --branch v0.3.0 cd quicksilver make build
Move the binary to the correct folder
chmod +x ./build/quicksilverd && sudo mv ./build/quicksilverd /usr/local/bin/quicksilverd cd $HOME
Set variables. Change MONICKER to your name and set the WALLET NAME as well. Do not change the CHAIN name.
MONIKER="your_name" CHAIN="rhapsody-5" WALLET_NAME="your_name"
Save all variables in the .bash_profile
echo 'export MONIKER='${MONIKER} >> $HOME/.bash_profile echo 'export CHAIN='${CHAIN} >> $HOME/.bash_profile echo 'export WALLET_NAME='${WALLET_NAME} >> $HOME/.bash_profile source $HOME/.bash_profile
Save the name of network, keyring backend and broadcast mode to the config file.
quicksilverd config chain-id $CHAIN quicksilverd config keyring-backend test quicksilver config broadcast-mode block
wget -qO $HOME/.quicksilverd/config/genesis.json "https://raw.githubusercontent.com/ingenuity-build/testnets/main/rhapsody/genesis.json"
pruning="custom" pruning_keep_recent="100" pruning_keep_every="0" pruning_interval="10" sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.quicksilverd/config/app.toml sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.quicksilverd/config/app.toml sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.quicksilverd/config/app.toml sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.quicksilverd/config/app.toml
seeds="dd3460ec11f78b4a7c4336f22a356fe00805ab64@seed.rhapsody-5.quicksilver.zone:26656" sed -i.bak -e "s/^seeds *=.*/seeds = \"$seeds\"/" $HOME/.quicksilverd/config/config.toml
tee /etc/systemd/system/quicksilverd.service > /dev/null <<EOF [unit] Description=Quicksilver After=network.target [service] Type=simple User=$USER ExecStart=$(which quicksilverd) start Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload sudo systemctl enable quicksilverd sudo systemctl restart quicksilverd
Let's check logs and wait for the node to start synchronizing
Also, you can check synchronization status . If catching_up": false, your node is synchronized.
After the synchronization, create your wallet. You will need to set a password. Do not change the name, we set it up earlier. Don't forget to save your mnemonic, password and wallet address.
Link the variable with the wallet address
Add save this variable to the .bash_profile
echo 'export WALLET_ADDRESS='${WALLET_ADDRESS} >> $HOME/.bash_profile source $HOME/.bash_profile
Now you need to receive funds from the faucet. Go to the discord channel #qck-tap and request tokens: $request wallet_number rhapsody
If you already have tokens in your wallet, next step is creating validator. You can change amount for delegation.
quicksilverd tx staking create-validator \ --from=$WALLET_NAME \ --amount=5000000uqck \ --moniker=$MONIKER \ --chain-id=$CHAIN \ --commission-rate=0.1 \ --commission-max-rate=0.2 \ --commission-max-change-rate=0.1 \ --min-self-delegation=1 \ --pubkey=$(quicksilverd tendermint show-validator)
Link validator variable with the address.
VALOPER=$(quicksilverd keys show $WALLET_ADDRESS --bech val -a)
Аdd this variable to the .bash_profile
echo 'export VALOPER='${VALOPER} >> $HOME/.bash_profile source $HOME/.bash_profile
Delegate more to your validator. Check your balance and change the amount if needed.
quicksilverd tx staking delegate $VALOPER 1000000uqck --from $WALLET_NAME --chain-id $CHAIN
If you are JAILED, don't worry. This is the way back:
quicksilverd tx slashing unjail --from $WALLET_NAME --chain-id $CHAIN
Post in the discord proofs that you set up a validator and request the special role. Wait for announcements and participate in community discussions.