# Node guide

### Server specifications

<table><thead><tr><th width="317">Specification</th><th>Requirement</th></tr></thead><tbody><tr><td>CPU</td><td>4+ VCPU</td></tr><tr><td>RAM</td><td>8+ GB</td></tr><tr><td>Storage</td><td>240+ GB SSD</td></tr><tr><td>UBUNTU</td><td>22.04</td></tr><tr><td>Bandwidth</td><td>1GBS</td></tr></tbody></table>

### **Installing essentials components**&#x20;

Before diving into the installation of your node, it's essential to update your server. To do this, simply run the following command in your VPS terminal :

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

### Install the necessary libraries

```
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y
```

### Install Go

```
cd $HOME && \
ver="1.21.6" && \
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" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
go version
```

### Check go version

```
go version
```

The command must respond : go version go1.21.6 linux/amd64

### Install `warden`

`We will use the wardenprotocol library for quick and simple update when needed.`

```
git clone https://github.com/warden-protocol/wardenprotocol/
```

```
cd wardenprotocol
```

```
git checkout v0.3.0
```

```
make install
```

We check the wardenprotocol version :

```
wardend version
```

The response must be : v0.3.0

### Create your variables

```
echo 'export MONIKER="my_custom_moniker"' >> ~/.bash_profile
```

```
echo 'export CHAIN_ID="buenavista-1"' >> ~/.bash_profile
```

```
echo 'export WALLET="my_custom_wallet"' >> ~/.bash_profile
```

```
echo 'export RPC_PORT="26657"' >> ~/.bash_profile
```

```
source $HOME/.bash_profile
```

### Node Initialisation

```
cd $HOME
```

```
wardend init $MONIKER
```

### Get the genesis.json file

```
wget https://raw.githubusercontent.com/warden-protocol/networks/main/testnets/buenavista/genesis.json -O $HOME/.warden/config/genesis.json
```

### Update  config.toml with seeds and peers

Peers and seeds list will be added later as they are actually unstable

```
PEERS="650c66dda5f7aa954f44fd6148a6f32b085ca792@sentry-0.buenavista.wardenprotocol.org:26656,7c70120717ef5eae8236162ede6819249bd6587d@sentry-1.buenavista.wardenprotocol.org:26656,288116b75c3c710268b5d86182d8dd5e33a6b56f@sentry-2.buenavista.wardenprotocol.org:26656,7e9adbd0a34fcab219c3a818a022248c575f622b@65.108.227.207:16656,dc0122e37c203dec43306430a1f1879650653479@37.27.97.16:26656,eee54c85c14748f7793738fadbc747ed1511efac@176.9.58.5:46656,8902e6a170e08225023a7fdd8b875c0349fef703@135.181.129.164:26656,c398112c01e8867f3da44b281cb9b2dd96644e2d@222.255.140.235:26656,210bf3fc361aa459921d01fd9ba1734302e283cc@65.108.88.85:11256,b209b221edc3c8a61c50ad895f6852b08cf718f5@173.212.232.122:26656,7f6c095219b0ae2025b6ede827723477d467f0ee@109.199.123.151:46656,4235609063af233ee62f35f075a8d61204823769@62.169.23.44:18656,6a4f5b991c321efb12188c126f115d73f4ebf885@95.217.116.103:36656"
```

```
SEEDS="" // add you seed if wanted
```

```
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" "$HOME/.warden/config/config.toml"
```

### Update  app.toml with gas price

```
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0025uward\"/" $HOME/.warden/config/app.toml
```

### Config pruning, indexer and prometheus

```
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.warden/config/app.toml
```

```
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.warden/config/app.toml
```

```
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"50\"/" $HOME/.warden/config/app.toml
```

```
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.warden/config/config.toml
```

```
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.warden/config/config.toml
```

### Create a service

```
nano /etc/systemd/system/wardend.service
```

```
[Unit]
Description=My warden node
After=network.target
[Service]
User=$USER
Type=simple
WorkingDirectory=$HOME/.warden
ExecStart=$(which wardend) start --home $HOME/.warden
Restart=on-failure
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
```

### Launching the node

```
sudo systemctl daemon-reload
sudo systemctl enable wardend.service
sudo systemctl start wardend.service
```

### Check the status of your node

```
sudo systemctl status wardend.service
```

### Check the node logs

```
sudo journalctl -u wardend -f -o cat
```

### Create your validator wallet

Before going futher you need to wait for your node to be sync. You can check this with differents commands you can find in our Quick command page.

```
wardend keys add $WALLET
```

IMPORTANT : Save your seed phrase.

```bash
# save wallet and address
WALLET_ADDRESS=$(wardend keys show $WALLET -a)
VALOPER_ADDRESS=$(wardend keys show $WALLET --bech val -a)
echo "export WALLET_ADDRESS="$WALLET_ADDRESS >> $HOME/.bash_profile
echo "export VALOPER_ADDRESS="$VALOPER_ADDRESS >> $HOME/.bash_profile
source $HOME/.bash_profile
```

### Fullfill you wallet with faucet

Use this command after changing you wallet adresse :

```
curl -XPOST -d '{"address": "your_wallet_adresse"}' https://faucet.buenavista.wardenprotocol.org
```

### Create you validator

```
wardend tx staking create-validator \
--amount 1000000uward \
--from $WALLET \
--commission-rate 0.1 \
--commission-max-rate 0.2 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--pubkey $(wardend tendermint show-validator) \
--moniker "$MONIKER" \
--identity "your_identity" \
--details "your_details" \
--website "your_website" \
--chain-id buenavista-1 \
--gas auto --gas-adjustment 1.5 --fees 600uward \
-y 
```


---

# 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.starlightnode.com/services/testnets/warden-protocol/node-guide.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.
