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

####

####

####
