# 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>16+ GB</td></tr><tr><td>Storage</td><td>1+ TB 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 git jq build-essential gcc unzip wget lz4 -y
```

### Install Go

```
cd $HOME && \
ver="1.22.0" && \
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.22.0 linux/amd64

### Install `initia`

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

```
git clone https://github.com/initia-labs/initia.git
```

```
cd initia
```

```
git checkout v0.2.14
```

```
make install
```

We check the initia version :

```
initiad version
```

The response must be : v0.2.14

### Create your variables

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

```
echo 'export CHAIN_ID="initiation-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
```

```
initiad init $MONIKER --chain-id $CHAIN_ID
```

```
initiad config set client chain-id $CHAIN_ID
```

```
initiad config set client node tcp://localhost:$RPC_PORT
```

```
initiad config set client keyring-backend os
```

### Get the genesis.json file

```
wget https://initia.s3.ap-southeast-1.amazonaws.com/initiation-1/genesis.json -O $HOME/.initia/config/genesis.json
```

### Update  config.toml with seeds and peers

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

```
PEERS=""
```

```
SEEDS=""
```

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

### Update  app.toml with gas price

```
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.15uinit,0.01uusdc\"/" $HOME/.initia/config/app.toml
```

###

### Create a service

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

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

### Launching the node

```
systemctl enable initiad.service
systemctl start initiad.service
```

### Check the status of your node

```
systemctl status initiad.service
```

### Check the node logs

```
sudo journalctl -u initiad -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.

```
initiad keys add $WALLET_NAME
```

IMPORTANT : Save your seed phrase.

### Fullfill you wallet with faucet

Use the initia faucet : <https://faucet.testnet.initia.xyz/>

### Create you validator

```
initiad tx mstaking create-validator
--amount=1000000uinit
--pubkey=$(initiad tendermint show-validator)
--moniker=$MONIKER
--chain-id=$CHAIN_ID
--commission-rate=0.05
--commission-max-rate=0.10
--commission-max-change-rate=0.01
--from=$WALLET
--identity="your_identity"
--website="your_website"
--details="your_details"
--gas=2000000 --fees=300000uinit
-y
```

### Check you validator

You can check your validator status in the explorer : <https://scan.testnet.initia.xyz/initiation-1>
