# Running a Full Node

## Konstellation Mainnet Full Node Quick Start

With each version of the Konstellation Hub, the chain is restarted from a new genesis state. We are currently on `darchub`.

Get Mainnet Configuration files from [here.](https://github.com/Konstellation/konstellation/tree/master/config)

### **Hardware requirements**&#x20;

CPU: 8 core

RAM: 32 GB

DISK Storage: SSD 500 GB \~ 2 TB

### Build from code

This guideline assumes that you're running Linux or MacOS with [Go 1.18+](https://golang.org/dl/).&#x20;

This guide helps you to : Build, Install, and Name your Node.

Currently, latest release is `v0.6.2`

```
# Clone Konstellation from the latest release found here: https://github.com/konstellation/konstellation/releases
git clone -b v0.6.2 https://github.com/konstellation/konstellation
# Enter the folder Konstellation was cloned into
cd konstellation
# Compile and install Konstellation
make build
# alias binary file
# alias knstld=/your/path/to/repo/build/knstld
# Check konstellation version
knstld version
```

**Initialize data and folders**

**WARNING** : command `unsafe-reset-all` will erase your database in node directory if exists, which is `$HOME/.knstld` if no customs have been made. If you are already running validator, be sure to back up your `priv_validator_key.json` in `$HOME/.knstld/config` directory. Though this command won't erase the file, it has to be backed up in somewhere safe.

```
# Reset current node's data
knstld tendermint unsafe-reset-all --keep-addr-book
```

#### Create a key

Add new

```
build/knstld keys add <key_name>
```

Or import via mnemonic

```
build/knstld keys add <key_name> -i
```

As a result, you got

```
- name: <key_name>
  type: local
  address: <key_address>
  pubkey: <key_pubkey>
  mnemonic: ""
  threshold: 0
  pubkeys: []
**Important** write this mnemonic phrase in a safe place.
It is the only way to recover your account if you ever forget your password.
<key_mnemonic>
```

**Genesis & Seeds**

Download [genesis.json](https://raw.githubusercontent.com/Konstellation/konstellation/master/config/genesis.json)

```
wget -O $HOME/.knstld/config/genesis.json https://raw.githubusercontent.com/Konstellation/konstellation/master/config/genesis.json
```

Download [config.toml](https://raw.githubusercontent.com/Konstellation/konstellation/master/config/config.toml) with predefined seeds and persistent peers

```
wget -O $HOME/.knstld/config/config.toml https://raw.githubusercontent.com/Konstellation/konstellation/master/config/config.toml
```

Alternatively enter persistent peers to config.toml provided [here](https://github.com/Konstellation/konstellation/tree/master/config)

1. Open \~/.knstld/config/config.toml with text editor. Alternatively you can use cli editor, like nano `nano ~/.knstld/config/config.toml`
2. Scroll down to persistant peers in `config.toml`, and add the persistant peers as a comma-separated list

####

**Setting Up a New Node**

You can edit this moniker, in the \~/.knstld/config/config.toml file:

```
# A custom human readable name for this node
moniker = "<your_custom_moniker>"
```

You can edit the \~/.knstld/config/app.toml file in order to enable the anti spam mechanism and reject incoming transactions with less than the minimum gas prices:

```
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
##### main base config options #####
# The minimum gas prices a validator is willing to accept for processing a
# transaction. A transaction's fees must meet the minimum of any denomination
# specified in this config (e.g. 10udarc).
minimum-gas-prices = ""
```

Your full node has been initialized!

#### Run Pruning Node

Download Snapshot of previous blocks data

Install lz4 if not installed

```
sudo apt update
sudo apt install snapd -y
sudo snap install lz4
```

Check current height on [polkachu](https://polkachu.com/tendermint_snapshots/konstellation) and download snapshot // I think its not working right now. WIll test later

<pre><code><strong># Download snapshot until current-height
</strong>wget -O konstellation_6445823.tar.lz4 https://snapshots.polkachu.com/snapshots/konstellation/konstellation_[current-height].tar.lz4 --inet4-only
# Unzip snapshot and move to database directory
lz4 -c -d konstellation_6445823.tar.lz4  | tar -x -C $HOME/.knstld
</code></pre>

**Run a Full Node**

```
# Start Konstellation
build/knstld start
# to run process in background run
screen -dmSL knstld build/knstld start
# Check your node's status with konstellation cli
build/knstld status
```

Wait for the konstellation block synchroniztion complete. Since this will take a lot of times and disk spaces, you may want to download snapshots.

#### Block 1826999

At block 1826999 chain will halt, this is the upgrade requirement block. You will get an error

```
INF committed state app_hash=76B4066182CB3D3E984E09CB5226FD9734F0DFB91EA25AC4CFAC326D26E8D346 height=1826999 module=state num_txs=0
ERR UPGRADE "v0.44" NEEDED at height: 1827000:
INF indexed block height=1826999 module=txindex
UPGRADE "v0.44" NEEDED at height: 1827000:
```

This indicates the next steps are ready and you must upgrade the chain.

**Change git release branch `v0.5.0`**

`git checkout v0.5.0`

**Compile and install Konstellation**

`make build`

**Check konstellation version**

`build/knstld version` Should return 0.5.0

**Start Konstellation**

`build/knstld start`

**Again to run process in background run**

`screen -dmSL knstld build/knstld start`

#### Block 6179999

At block 6179999 chain will halt, reason same as above.

**Change git release branch `v0.6.0`**

`git checkout v0.6.0`

**Compile and install Konstellation**

`make build`

**Check konstellation version**

`build/knstld version` Should return 0.6.0

**Start Konstellation**

`build/knstld start`

**Again to run process in background run**

`screen -dmSL knstld build/knstld start`

#### Block 6564999

At block 6564999 chain will halt, reason same as above.

**Change git release branch `v0.6.2`**

`git checkout v0.6.2`

**Compile and install Konstellation**

`make build`

**Check konstellation version**

`build/knstld version` Should return 0.6.2

**Start Konstellation**

`build/knstld start`

**Again to run process in background run**

`screen -dmSL knstld build/knstld start`

####

####

####


---

# 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://konstellation.gitbook.io/konstellation-official-document/developer-guide/running-a-full-node.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.
