# 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