# 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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nkbblocks.com/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
