# Node Installation

### Hardware requirements The following requirements are recommended for running QUICKSILVER:

* **6 or more physical CPU cores**
* **At least 1TB of SSD disk storage**
* **At least 16GB of memory (RAM)**
* **At least 500mbps network bandwidth**

## Manual Installation

```bash
# Update & install dependencies
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq htop tmux chrony liblz4-tool fail2ban -y

# Install Go
cd $HOME
VER="1.23.4"
wget "https://golang.org/dl/go$VER.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$VER.linux-amd64.tar.gz"
rm "go$VER.linux-amd64.tar.gz"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin
go version


# Set Vars
MONIKER=<YOUR_MONIKER_NAME_GOES_HERE>
echo "export MONIKER=$MONIKER" >> $HOME/.bash_profile
echo "export QUICKSILVER_CHAIN_ID="quicksilver-2"" >> $HOME/.bash_profile
echo "export QUICKSILVER_PORT="115"" >> $HOME/.bash_profile
source $HOME/.bash_profile


# Download Binary
cd $HOME
wget -O quicksilverd https://github.com/quicksilver-zone/quicksilver/releases/download/v1.7.5/quicksilverd-v1.7.5-amd64
chmod +x quicksilverd
mv $HOME/quicksilverd $HOME/go/bin/quicksilverd


# Config and Init App
quicksilverd config node tcp://localhost:${QUICKSILVER_PORT}57
quicksilverd config chain-id $QUICKSILVER_CHAIN_ID
quicksilverd init $MONIKER --chain-id $QUICKSILVER_CHAIN_ID


# Add Genesis File and Addrbook
wget -O $HOME/.quicksilverd/config/genesis.json https://snapshot.syanodes.my.id/mainnets/quicksilver/genesis.json
wget -O $HOME/.quicksilverd/config/addrbook.json https://snapshot.syanodes.my.id/mainnets/quicksilver/addrbook.json


#Configure Seeds and Peers
SEEDS=""
PEERS="c950a736496bec7abb89ff137e4c698fc061d9d4@193.34.212.165:36656,1829f35ba04f9ca7a6938f1cd4a056ec395ff558@57.128.20.159:25656,78fc99f2f57edca0440a0afa83f36a01d56a0ea3@144.76.29.90:61156,f1d2ffadfb5c5a0feb09b740a3818672595b8f84@88.198.69.44:11156,ce94c5e02457accd8c0e5f3a61f381f4710b81ae@65.109.29.31:26656,4ac74efa43a964bf6f30078c81d5cbe072d53e5c@135.181.141.120:26656,625eeb91fcc6242798f53426540825e5b37c7670@185.144.99.16:36656,a87f48e433160970318d181bb69c378f4564cd2d@107.155.67.202:26736,e1b058e5cfa2b836ddaa496b10911da62dcf182e@134.65.193.94:26656,4aa307d4ce413837a3da019e966d8115fb4c1467@198.244.229.218:26656,3308d9078fcca016fbd8dc8f3b19666326f41a6f@138.201.121.185:26672,5fa47201aa5208c30982b6f9d8ca44222d256fc5@51.91.70.90:48656,ffd3a67122d557dbc426972196ded625757b71b6@37.120.161.180:11256,cfad318e5387261935777972476df9c26d5bc122@88.99.119.171:46656,50a40c5aba326798ea9520ac0a1207e22a540a0e@95.214.55.100:26556,26aef7f4ca9ba982f09e456fb11d811c8aa64003@65.108.232.168:46656,712ab8988efa4f681225456a1891f739fbd2da6b@51.178.76.62:26656,79b214369c8f52c2d33cf79fc1897677b24cf8cb@94.130.240.229:2000,5b63379fec9edfd0b1b475ae4d67c08bcb4abdc6@51.89.98.102:48656,671c44247a1bb8d305bbd1f935f231fd955d3791@65.109.30.35:11156,4aa0f632db2dbdff121317260dad641e290e4dc5@167.86.115.183:38656,f5d683410b65423ca89ce48a328cb3e0a6561d6f@46.105.56.112:26656,ebfba72389824e819f04e42c62cf93b9e541251a@49.13.146.143:26633,a2e86407c88531b8f62e857ed462eb86634671ea@23.88.100.214:26633,6053a39e67c6bae83430e354f53d99e160e4964b@65.109.28.177:28656,100e867a9c136c1d7b3687e7128202d745d9fbba@88.198.5.77:32656,c3f26a6d02b26668cf46057057cb46a6b893bb6f@65.108.232.104:11156,daaae14161c721448537cd2bb5e6b1bdcc7afd14@51.68.170.145:26656,41caa4106f68977e3a5123e56f57934a2d34a1c1@195.3.223.9:27026,83779cf55cc220c0bf9484560bcdfb93789a88e5@54.39.28.226:11156,ba52d6744d89cf66cf29d7663a21e1299d0f6744@74.80.183.130:26654,7af3aeb6209f3404c2a86d4faa429de4b2d68c1e@195.3.221.249:60656,85ddc35026c80e9f63adacbf9531e067f4079996@95.216.12.106:21026,c9c72a2752cdfe798aa91dd6ddcc0f64597ad934@51.89.14.187:26656,9f5751f22f485a56cf28b55d7b5c9a196a469f91@185.144.99.20:36656,34047b39deae3110158c2bf7359e4a1b559dd8ca@159.89.171.207:26656,4231d453fb95c2a5b57ff93da1d0304dd1958dd3@195.189.96.99:47656,58fe3a7b075e7302f8b46b8171a0aa19ff4a427a@65.108.195.29:31126,e726816f42831689eab9378d5d577f1d06d25716@169.155.46.128:26656,77478af393735191875931fc981bf11b2f38eeb1@65.109.18.169:11156,326c1f2744ef1fda960d9c4645ccbd4b4b439aba@23.227.222.196:26656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.quicksilverd/config/config.toml
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.00025uqck\"/" $HOME/.quicksilverd/config/app.toml
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.quicksilverd/config/config.toml
sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.quicksilverd/config/config.toml


# Config Pruning
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


# Set Custom Port
sed -i -e "s%:1317%:${QUICKSILVER_PORT}17%; s%:8080%:${QUICKSILVER_PORT}80%; s%:9090%:${QUICKSILVER_PORT}90%; s%:9091%:${QUICKSILVER_PORT}91%; s%:8545%:${QUICKSILVER_PORT}45%; s%:8546%:${QUICKSILVER_PORT}46%; s%:6065%:${QUICKSILVER_PORT}65%" $HOME/.quicksilverd/config/app.toml
sed -i -e "s%:26658%:${QUICKSILVER_PORT}58%; s%:26657%:${QUICKSILVER_PORT}57%; s%:6060%:${QUICKSILVER_PORT}60%; s%:26656%:${QUICKSILVER_PORT}56%; s%:26660%:${QUICKSILVER_PORT}61%" $HOME/.quicksilverd/config/config.toml


# Set Service File
sudo tee /etc/systemd/system/quicksilverd.service > /dev/null <<EOF
[Unit]
Description=quicksilver-mainnet
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


# Enable and Start Service
sudo systemctl daemon-reload
sudo systemctl enable quicksilverd
sudo systemctl start quicksilverd && sudo journalctl -fu quicksilverd -o cat
```

## Auto Installation

```bash
wget https://snapshot.syanodes.my.id/auto/mainnet/quicksilver_auto && chmod +x quicksilver_auto && ./quicksilver_auto 
```
