> For the complete documentation index, see [llms.txt](https://services.thequadblock.com/services/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://services.thequadblock.com/services/mainnet/stride/installation/manual.md).

# Manual

#### 1. Install Dependencies

{% code overflow="wrap" %}

```
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 chrony liblz4-tool -y
```

{% endcode %}

2. **Install GO**

{% hint style="info" %}
If you already Installed **GO version 1.19.5** you can skip this step

check your GO version:&#x20;
{% endhint %}

{% code overflow="wrap" lineNumbers="true" %}

```
ver="1.19.5"
cd $HOME
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" >> ~/.bash_profile
source ~/.bash_profile
go version
```

{% endcode %}

3. **Download and Install Binary**

{% code lineNumbers="true" %}

```
cd $HOME
rm -rf planq/
git clone https://github.com/planq-network/planq.git
cd planq/
git fetch
git checkout v1.0.5
make build
```

{% endcode %}

4. **Install Cosmovisor**

```
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.4.0
```

5. **Create Symbolic Links for Cosmovisor**

{% code lineNumbers="true" %}

```
mkdir -p $HOME/.planqd/cosmovisor/genesis/bin
mv build/planqd $HOME/.planqd/cosmovisor/genesis/bin/
rm -rf build

sudo ln -s $HOME/.planqd/cosmovisor/genesis $HOME/.planqd/cosmovisor/current
sudo ln -s $HOME/.planqd/cosmovisor/current/bin/planqd /usr/local/bin/planqd
```

{% endcode %}

6. **Set Config App**

{% hint style="info" %}
First, create variable for:

```
NODENAME=<fill with your node name>
PORT=<fill with your available port>

(you can use port 4-65353, except: 18, 22, 23, 53, 80 and 323)
```

{% endhint %}

{% code lineNumbers="true" %}

```
planqd config chain-id planq_7070-2
planqd config keyring-backend file
planqd config node tcp://localhost:${PORT}657
planqd init $NODENAME --chain-id $CHAIN
```

{% endcode %}

7. **Download Addrbook & Genesis**

{% code overflow="wrap" lineNumbers="true" %}

```
wget -O ${HOME}/.planqd/config/addrbook.json https://raw.githubusercontent.com/planq-network/networks/main/mainnet/addrbook.json
wget -O ${HOME}/.planqd/config/genesis.json https://raw.githubusercontent.com/planq-network/networks/main/mainnet/genesis.json
```

{% endcode %}

8. **Configure Seeds and Peers**

{% code overflow="wrap" lineNumbers="true" %}

```
SEEDS=`curl -sL https://raw.githubusercontent.com/planq-network/networks/main/mainnet/seeds.txt | awk '{print $1}' | paste -s -d, -`
PEERS=`curl -sL https://raw.githubusercontent.com/planq-network/networks/main/mainnet/peers.txt | sort -R | head -n 10 | awk '{print $1}' | paste -s -d, -`
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.planqd/config/config.toml
```

{% endcode %}

9. **Configure Pruninge**

{% code overflow="wrap" %}

```
PRUNING="custom"
PRUNING_KEEP_RECENT="100"
PRUNING_INTERVAL="19"

sed -i -e "s/^pruning *=.*/pruning = \"$PRUNING\"/" $HOME/.planqd/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \
\"$PRUNING_KEEP_RECENT\"/" $HOME/.planqd/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \
\"$PRUNING_INTERVAL\"/" $HOME/.planqd/config/app.toml
```

{% endcode %}

10. &#x20;**Create Service**

```
sudo tee /etc/systemd/system/planqd.service > /dev/null << EOF
[Unit]
Description=planqd node service
After=network-online.target

[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
Environment="DAEMON_HOME=$HOME/.planqd"
Environment="DAEMON_NAME=planqd"
Environment="UNSAFE_SKIP_BACKUP=true"

[Install]
WantedBy=multi-user.target
EOF
```

11. **Start Node**

{% code lineNumbers="true" %}

```
sudo systemctl daemon-reload
sudo systemctl enable planqd
sudo systemctl start planqd
```

{% endcode %}

12. &#x20;(Optional) **Check Node Status**

{% hint style="info" %}
if you want check your Node logs, run the command below:
{% endhint %}

```
sudo journalctl -fu planqd -o cat
```

{% hint style="info" %}
if you want check your Node synchronize status, run the command below:
{% endhint %}

```
curl -s localhost:${PORT}657/status
```
