# 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
```


---

# 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://services.thequadblock.com/services/mainnet/stride/installation/manual.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.
