> For the complete documentation index, see [llms.txt](https://docs.nkbblocks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nkbblocks.com/readme.md).

# Quicksilver

#### Update the Ubuntu

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

#### Install the essentials

```
sudo apt install curl git jq lz4 build-essential -y
```

#### Install Go

```
sudo rm -rf /usr/local/go
sudo curl -Ls https://go.dev/dl/go1.19.4.linux-amd64.tar.gz | sudo tar -C /usr/local -xz
tee -a $HOME/.profile > /dev/null << EOF
export PATH=$PATH:/usr/local/go/bin
EOF
source $HOME/.profile
```

#### Environment Variables

<pre><code><strong>NODENAME=nkbblocks
</strong><strong>echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
</strong>if [ ! $WALLET ]; then
	echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export SEI_CHAIN_ID=quicksilver-1" >> $HOME/.bash_profile
source $HOME/.bash_profile
</code></pre>

#### Download and build binaries

```
git clone https://github.com/ingenuity-build/quicksilver && cd quicksilver
git fetch origin --tags
git checkout v1.0.0
make install
make build #### was not able to find quicksilverd file so ran this command
```

#### Create a Service

```
sudo tee /etc/systemd/system/quicksilverd.service > /dev/null << EOF
[Unit]
Description=quicksilver-mainnet node service
After=network-online.target
[Service]
User=$USER
ExecStart=$(which quicksilverd) start --home $HOME/.quicksilverd
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable quicksilverd
```

#### Initialize node

```
quicksilverd config chain-id quicksilver-1
quicksilverd config keyring-backend os
##quicksilverd config node tcp://localhost:11657
quicksilverd init $NODENAME --chain-id quicksilver-1
```

#### Download genesis Fetch `genesis.json` into `quicksilverd`'s `config` directory (default: \~/.quicksilverd)

```
curl -Ls https://raw.githubusercontent.com/ingenuity-build/mainnet/main/genesis.json > genesis.json
```

#### Set seeds

```
export SEEDS="20e1000e88125698264454a884812746c2eb4807@seeds.lavenderfive.com:11156,babc3f3f7804933265ec9c40ad94f4da8e9e0017@seed.rhinostake.com:11156"
sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" ~/.quicksilverd/config/config.toml
```

#### Define minimum gas prices

```
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0001uqck\"/;" ~/.quicksilverd/config/app.toml
```

#### Set pruning

```
sudo sed -i -e "s|^pruning *=.*|pruning = \"custom\"|" $HOME/.quicksilverd/config/app.toml
sudo sed -i -e "s|^pruning-keep-recent *=.*|pruning-keep-recent = \"107\"|" $HOME/.quicksilverd/config/app.toml
sudo sed -i -e "s|^pruning-keep-every *=.*|pruning-keep-every = \"0\"|" $HOME/.quicksilverd/config/app.toml
sudo sed -i -e "s|^pruning-interval *=.*|pruning-interval = \"10\"|" $HOME/.quicksilverd/config/app.toml
```

#### Set custom ports in config.toml & app.toml

```
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:11658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:11657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:11060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:11656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":11660\"%" $HOME/.quicksilverd/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:11317\"%; s%^address = \":8080\"%address = \":11080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:11090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:11091\"%; s%^address = \"0.0.0.0:8545\"%address = \"0.0.0.0:11545\"%; s%^ws-address = \"0.0.0.0:8546\"%ws-address = \"0.0.0.0:11546\"%" $HOME/.quicksilverd/config/app.toml
```

#### Download latest chain snapshot

```
curl -L https://snapshots.kjnodes.com/quicksilver-testnet/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.quicksilverd
```

#### Restart service & Check logs

```
sudo systemctl start quicksilverd 
journalctl -u quicksilverd -f --no-hostname -o cat
```
