Before starting, ensure your server meets the following minimum requirements:
- Operating System: Ubuntu 20.04 or higher
- Memory: 8GB RAM
- Storage: 250GB SSD
- CPU: 4 cores
- Bandwidth: High-speed internet connection
Update the package lists and install essential packages.
sudo apt update && sudo apt upgrade -y
sudo apt install curl build-essential git wget jq make gcc -y
Quicksilver requires Go to build from the source. Install Go as follows:
wget https://golang.org/dl/go1.20.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bashrc
source ~/.bashrc
Verify Go installation:
go version
Download the Quicksilver source code and checkout the latest testnet branch:
git clone https://github.com/ingenuity-build/quicksilver.git
cd quicksilver
git checkout v1.4.0
make build
Move the binary to your executable path:
sudo mv ./build/quicksilverd /usr/local/bin/
Verify the installation by checking the version:
quicksilverd version
Set up the configuration for your node:
quicksilverd init <YOUR_MONIKER> --chain-id quicksilver-testnet-12
Replace <YOUR_MONIKER>
with your desired node name.
Fetch the genesis file required for the testnet:
wget -O ~/.quicksilverd/config/genesis.json "https://raw.githubusercontent.com/ingenuity-build/testnets/main/quicksilver-testnet-12/genesis.json"
Add peers and seeds to the configuration file. Open config.toml
:
nano ~/.quicksilverd/config/config.toml
Locate the persistent_peers
and seeds
sections, then add the following:
persistent_peers = "PEER_LIST_HERE"
seeds = "SEED_LIST_HERE"
Make sure to replace PEER_LIST_HERE
and SEED_LIST_HERE
with actual peer and seed addresses. You can find these from community forums or explorers.
To optimize disk usage and set the minimum gas price, edit the app.toml
:
nano ~/.quicksilverd/config/app.toml
Set pruning:
pruning = "custom"
pruning-keep-recent = "100"
pruning-interval = "10"
Set the minimum gas price (recommended: 0.0001uqck
):
minimum-gas-prices = "0.0001uqck"
If you want to use state sync, edit config.toml
:
nano ~/.quicksilverd/config/config.toml
Uncomment and update the following lines:
enable = true
rpc_servers = "<STATE_SYNC_RPC_SERVERS>"
trust_height = <TRUST_HEIGHT>
trust_hash = "<TRUST_HASH>"
Replace placeholders with correct values from a trusted state sync provider.
You are now ready to start your Quicksilver node:
quicksilverd start
To run the node in the background, you can use systemd
.
Create a systemd service file:
sudo tee /etc/systemd/system/quicksilverd.service > /dev/null <<EOF
[Unit]
Description=Quicksilver Node
After=network-online.target
[Service]
User=$USER
ExecStart=/usr/local/bin/quicksilverd start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
Reload the systemd daemon, enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable quicksilverd
sudo systemctl start quicksilverd
Check logs to ensure everything is working:
sudo journalctl -u quicksilverd -f
Create a new wallet by running:
quicksilverd keys add <WALLET_NAME>
Make sure to securely store the generated mnemonic.
Once your node is running, you can request testnet tokens from a faucet or by following instructions in the community channels.