# Setup Testnet
## Setup Chain
### Index
* Install Akash
* Create Keys
* Update genesis params
* Add genesis accounts
* Collect Gentx
* Start the chain
### Before we begin
Make sure to have Akash client installed on your workstation, check [install guide](https://docs.akash.network/guides/install) for instructions.
### Add a Key
Create a new key (account) using below command:
```
akashctl keys add <key-name>
```
Or recover your old key with mnemonic using below command:
```
akashctl keys add <key-name> --recover
```
{% hint style='warning' %}
Please store the menonic keys in a safe place
{% endhint %}
### Initialize Node
Following instructions are for setting up a node.
First, initialize the node and create the necessary config files:
```
akashd init <your_moniker> --chain-id eridani
```
You can edit the `~/.akashd/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. 0.25token1;0.0001token2).
minimum-gas-prices = ""
```
Your node has been initialized!
If you want to run a
* Validator, move to [Configure Node](#Configure-Node)
* Sentry node, move to [Setup Sentry Node](#Setup-Sentry-Node)
* Seed node, move to [Setup Seed Node](#Setup-Seed-Node)
## Setup Sentry Node
Once your node is initialized, update `config.toml` to setup sentry node.
```
$EDITOR ~/.akashd/config/config.toml
```
Set `addr_book_strict` value in `config.toml` to `false` if you want to setup private sentry or to `true` for public.
```
# Set true for strict address routability rules
# Set false for private or local networks
addr_book_strict = true
```
Set `private_peer_ids` value with your validators node IDs, the values should be seperated by a comma (`,`) for each ID:
```
# Comma separated list of peer IDs to keep private (will not be gossiped to other peers)
private_peer_ids = "331db71f20be13da096a8c2e4fbb8106cd7077e8"
```
To know your validator node ID, run below command in your validator node:
```
akashd tendermint show-node-id
```
Skip to [Configure Node](#Configure-Node) to update genesis and seeds.
## Setup Seed Node
Once your node is initialized, update `config.toml` to setup seed node.
```
$EDITOR ~/.akashd/config/config.toml
```
Set `seed_mode` value in `config.toml` to `true`.
```
# Set true for strict address routability rules
# Set false for private or local networks
seed_mode = true
```
Next configure your node to update genesis.
# Configure Node
This section is applicable only after the genesis is released.
### Download the Genesis and Sync with Seeds
Fetch released genesis into `akashd`'s `config` directory.
```
curl -s https://raw.githubusercontent.com/ovrclk/net/master/centauri/genesis.json > ~/.akashd/config/genesis.json
```
Add seed nodes and persistent peers in `config.toml`.
```
$EDITOR ~/.akashd/config/config.toml
```
Find the following section and add the _seed_ and _persistent peer_ nodes, the values should be seperated by a comma (`,`) for each key:
```
seeds = "331db71f20be13da096a8c2e4fbb8106cd7077e8@147.75.62.73:26656,cf9b4ab767f245062f664cf3cc6aa06c082af106@67.207.70.48:26656,e58583366339344c92161e92602f40fa4163edf9@86.109.15.49:26656"
```
```
# Comma separated list of persistent peers to connect to
persistent_peers = "b29c405d575b76795150cf9b26e44a7b51e72dd8@157.245.119.72:26656,c7c3f86b35dee13958190b301f7f3b8de137fa9e@167.71.138.117:26656"
```
The above configuration will sync your node with below set of seeds nodes and persistent peers:
**Seed nodes:**
- `331db71f20be13da096a8c2e4fbb8106cd7077e8@147.75.62.73:26656`
- `cf9b4ab767f245062f664cf3cc6aa06c082af106@67.207.70.48:26656`
- `e58583366339344c92161e92602f40fa4163edf9@86.109.15.49:26656`
**Persistent peers:**
- `b29c405d575b76795150cf9b26e44a7b51e72dd8@157.245.119.72:26656`
- `c7c3f86b35dee13958190b301f7f3b8de137fa9e@167.71.138.117:26656`
### Start your node
## Join as a Validator (Post genesis time)
To create a validator, you need to have enough `uakt`.
Please make sure you have enough `uakt` in your account by running below command:
```shell
akashctl query account <key-address>
```
## Create Your Validator
To create your validator, just use the following command:
```
akashctl tx staking create-validator \
--amount=9000000uakt \
--pubkey=$(akashd tendermint show-validator) \
--moniker="choose a moniker" \
--chain-id=eridani \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--gas="auto" \
--from=<key_name>
```
{% hint style='warning' %}
Don't use more `uakt` than you have.
{% endhint %}
* 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 stritly 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 `1akt`, or `1000000uakt`.
You can confirm that you are in the validator set by using any akash block explorer.
Or, you can query validators using:
```sh
akashctl query staking validators --trust-node --node http://localhost:26657 --chain-id centauri -o json | jq '.[] | select(.jailed==false) | {operator_address, jailed, status, moniker:.description.moniker}'
```
# Cygni Upgrade
Cygni, the fourth release of The Akashian Challenge: Phase 1, starts with the proposal to upgrade the network to Cygni release, which goes live Tuesday May 26th at 1600 UTC.
## Context - Why Cygni Upgrade?
Cygni Upgrade will requires features for Akash Phase 2. The goal is to ensure upgrades happen without friction, and coordination gaps are identified and fixed.
## Cygni Voting
All validators and delegators will have 48 hours to cast their votes on the proposal
The voting starts on May 26th, 2020 1600 UTC
The voting closes on May 28th, 2020 1600 UTC.
## Schedule
- Upgrade proposal time: May 26th, 2020 1600 UTC
- Voting Period : May 26th, 2020 1600 UTC - May 28th, 2020 1600 UTC
- Network Upgrade Time: May 29th, 2020 1600 UTC