Konstellation is the blockchain built using the Cosmos SDK. Konstellation will be interact with other sovereign blockchains using a protocol called IBC that enables Inter-Blockchain Communication.
With each version of the Konstellation Hub, the chain is restarted from a new Genesis state. We are currently on darchub.
Get mainnet config here
- Hardware requirements
CPU: 4 core
RAM: 32 GB
DISK Storage: SSD 500 GB
This assumes that you're running Linux or MacOS and have installed Go 1.17+. This guide helps you:
Build, Install, and Name your Node
Current first you must sync from v4.3.0
# Clone Konstellation from the latest release found here: https://github.com/konstellation/konstellation/releases
git clone -b v0.4.3 https://github.com/konstellation/konstellation
# Enter the folder Konstellation was cloned into
cd konstellation
# Compile and install Konstellation
make build
# Check konstellation version
build/knstld version
build/knstld unsafe-reset-all
Download genesis.json
wget -O $HOME/.knstld/config/genesis.json https://raw.githubusercontent.com/Konstellation/konstellation/master/config/genesis.json
Download 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
- Open ~/.knstld/config/config.toml with text editor. Alternatively you can use cli editor, like nano
nano ~/.knstld/config/config.toml
- Scroll down to persistant peers in
config.toml
, and add the persistant peers as a comma-separated list
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!
# 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
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.
git checkout v0.5.0
make build
build/knstld version
Should return 0.5.0
build/knstld start
screen -dmSL knstld build/knstld start
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>
Before setting up your validator node, make sure you've already gone through the Full Node Setup
Validators are responsible for committing new blocks to the blockchain through voting. A validator's stake is slashed if they become unavailable or sign blocks at the same height. Please read about Sentry Node Architecture to protect your node from DDOS attacks and to ensure high-availability.
Your darcvalconspub
can be used to create a new validator by staking tokens. You can find your validator pubkey by running:
build/knstld tendermint show-validator
To create your validator, just use the following command:
Check if your key(address) has enough balance:
build/knstld query bank balances <key address>
For test nodes, chain-id
is darchub
.
You need transction fee 2udarc
to make your transaction for creating validator.
Don't use more udarc
than you have!
build/knstld tx staking create-validator \
--amount=1000000udarc \
--pubkey=$(build/knstld tendermint show-validator) \
--moniker=<choose a moniker> \
--chain-id=<chain_id> \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--from=<key_name> \
--fees=2udarc
- NOTE: If you have troubles with '\' symbol, run the command in a single line like
build/knstld tx staking create-validator --amount=1000000udarc --pubkey=$(build/knstld tendermint show-validator) ...
When specifying commission parameters, the commission-max-change-rate
is used to measure % point change over the commission-rate
. E.g. 1% to 2% is a 100% rate increase, but only 1 percentage point.
Min-self-delegation
is a strictly positive integer that represents the minimum amount of self-delegated voting power your validator must always have. A min-self-delegation
of 1 means your validator will never have a self-delegation lower than 1000000udarc
You can check that you are in the validator set by using a third party explorer or using cli tool
build/knstld query staking validators --chain-id=<chain_id>
- Note: You can edit the params after, by running command
build/knstld tx staking edit-validator ... —from <key_name> --chain-id=<chain_id> --fees=2udarc
with the necessary options
Add key to your keyring
build/knstld keys add <key name>
Initialize genesis and config files.
build/knstld init <moniker> --chain-id <chain id>
Replace all denoms stake
to udarc
in genesis.json
Add genesis account
build/knstld add-genesis-account <key name> 200000000000udarc
- 200000darc
Create genesis transaction
build/knstld gentx <key name> 100000000000udarc --chain-id <chain id>
- create CreateValidator transaction
Collect all of gentxs
build/knstld collect-gentxs
Run network
build/knstld start