Phase 1

Phase 1: Node Operations

Before we begin

Make sure to have Akash client installed on your workstation, check install guide for instructions.

Become a Genesis Validator

1. Add a Key

Pick a memorable team name, ideally team you've registered with for Akashian. Create a key locally using that name:

export TEAM=<name>
akashctl keys add $TEAM

Please store the menonic keys in a safe place

2. Generate Genesis Transaction

akashd init <moniker> --chain-id centauri-2
curl -s https://raw.githubusercontent.com/ovrclk/net/master/centauri/genesis.json > ~/.akashd/config/genesis.json
akashd add-genesis-account $(akashctl keys show $TEAM -a) 10000000uakt # other values will be removed.
akashd gentx --name $TEAM --amount 9000000uakt

You should see a response similar to:

Genesis transaction written to "/Users/gosuri/.akashd/config/gentx/gentx-0519098c91a23b00c33d47a53e069e9470a3e736.json"

3. Submit GenTx using Pull Request

  • Fork the networks repository to your GitHub.

  • Clone the networks repository to your workstation. For example, where is your GitHub username:

    git clone https://github.com/<user>/net.git
  • Copy the generated GenTx from the akashd home directory at ~/.akashd/config/gentx/ to net/centauri/gentxs. For the below example, replace <your-gentx-file> with your local value.

    cp /Users/<user>/.akashd/config/gentx/<your-gentx-file>.json net/centauri/gentxs/$TEAM.json
  • Commit and push your repository.

  • Create a pull request to networks repository with your team name.

4. Join the Akash Telegram Community

Get to know your fellow Akash community members as they're vital for your success throughout the competition. Join our telegram group and introduce yourself.

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 configuraiton will sync your node with below set of seeds nodes and peristent 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

Option #1: Simple

To start the node, simple run start command, and check node status by running status.

akashd start --pruning nothing
akashctl status

Note: Please make sure to add the --pruning flag after the start command

Option #2: Using systemd

Fetch akashd location path and use it in next step.

which akashd

Make akashd a System Service

sudo $(EDITOR) /lib/systemd/system/akashd.service

Paste in the following:

[Unit]
Description=Akash Daemon
After=network-online.target
[Service]
User=<your_user>
ExecStart=<akashd-path> start --pruning nothing
Restart=always
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target

Note: Please make sure to add the --pruning flag after the start command

Enable and start the systemd service using:

sudo systemctl enable akashd
sudo systemctl start akashd

Finally, check node status

akashctl status

Check Logs using:

sudo journalctl -u akashd -f

Sirius upgrade

Context - Why Sirius Upgrade?

Centauri network launch was smooth, the first block was produced within 2 seconds and that's remarkable. Later in the day, a few validators reported issues with block rewards and querying distributions. There was a bug in the distribution module integration and all the jailed (previously) validators were facing issues due to that. A new version was released and Sirius will upgrade the network to a new binary (v0.6.4).

Schedule

  • Upgrade proposal time: 12 May, 16:00 UTC

  • Binary release : 12 May, 16:00 UTC

  • Voting Period : 12, May - 14 May, 16:00 UTC

  • Network Upgrade Time: 15 May, 16:00 UTC

Proposal Details

Proposal ID

2

Name

sirius-upgrade

Title

Sirius Upgrade

Description

The first ever on-chain upgrade on Akash Network. Sirius upgrade fixes the issues with withdraw rewards txs and double-sign slashing

Proposal Time

2020-05-12 16:00 UTC

Voting Start Time

2020-05-12 16:00 UTC

Voting End Time

2020-05-14 16:00 UTC

Network Upgrade Time

15 May, 16:00 UTC

Link(s)

https://akash.aneka.io/proposals/2, https://testnet.akash.bigdipper.live/proposals/2

Querying the proposal

Use the following command to query the proposal:

akashctl query gov proposal 2 --chain-id centauri-2 --node http://akash-rpc.vitwit.com:26657 -o json

You can query the votes using the following command:

akashctl query gov votes 2 --chain-id centauri-2 --node http://akash-rpc.vitwit.com:26657 -o json

Voting for proposal

Use the following command to vote on the proposal:

akashctl tx gov vote 2 yes --chain-id centauri-2 --node http://akash-rpc.vitwit.com:26657 --from <key-name>

Though you have multiple ( yes/no/abstain/no_with_veto) options to vote, it is recommended to choose only the yes option as this will fix existing bugs on the network.

How to Upgrade

If the proposal goes through, everyone gets to switch/update their binaries to new version (v0.6.4). The old binary (v0.6.3) will stop working from 15 May, 16:00 UTC and it won't be able to sync/sign new blocks from then.

Note: We should use new binaries only after 15 May, 16:00UTC, if you try to update it before, it fails.

Download the binaries

Download the linux archive from the release page.

Alternatively, install the v0.6.4 version via godownloader with:

curl https://raw.githubusercontent.com/ovrclk/akash/master/godownloader.sh | sh -s -- v0.6.4

The final step is to make sure that the akash binaries are available in your shell PATH.This page contains instructions for setting the PATH on Linux.

Build from source

Installing Akash suite from source

$ go get -d github.com/ovrclk/akash
$ cd $GOPATH/src/github.com/ovrclk/akash
$ git checkout v0.6.4
$ make deps-install
$ make install

Akash is developed and tested with golang 1.14+. Building requires a working golang installation, a properly set GOPATH, and $GOPATH/bin present in $PATH.

Most golang libraries will be installed via go mod, however the following packages will be installed globally with their binaries placed in $GOPATH/bin by make devdeps-install:

Once you have the dependencies properly setup, download and build akashctl and akashd using make install

Eridani upgrade

Context - Why Eridani Upgrade?

The goal of Eridani release is to tets resilience of the network against corrupted upgrades. There might be a case where the upgrade binaries will be available only after the proposal is passed. What if something is wrong with the new binary? Skipping the upgrade is the best way to handle such cases.

Schedule

  • Upgrade proposal time: 19 May, 16:00 UTC

  • Binary release : 19 May, 16:00 UTC

  • Voting Period : 19 May - 21 May, 16:00 UTC

  • Network Upgrade Time: 22 May, 16:00 UTC

Proposal Details

Proposal ID

3

Name

eridani

Title

Eridani Upgrade

Description

Software upgrades are critical and decides the future of the network. In a PoS network, validators are responsible for deciding on upgrades. Every node operator needs to validate upgrades for the health of the ecosystem. Securing the network with decision-making is vital to the governance process.

Proposal Time

2020-05-19 16:00 UTC

Voting Start Time

2020-05-19 16:00 UTC

Voting End Time

2020-05-21 16:00 UTC

Network Upgrade Time

22 May, 16:00 UTC

Link(s)

https://akash.aneka.io/proposals/3, https://testnet.akash.bigdipper.live/proposals/3, https://look.ping.pub/#/governance/3

Querying the proposal

Use the following command to query the proposal

akashctl query gov proposal 3 --chain-id centauri-2 -o json

You can query the votes using following command.

akashctl query gov votes 3 --chain-id centauri-2 -o json

Voting for proposal

Use the following command to vote on the proposal.

akashctl tx gov vote 3 <option> --chain-id centauri-2 --from <key-name>

You have yes/no/abstain/no_with_veto options to vote, it is recommended to choose your vote carefully as the governance decision will change the network state forever. Note: You can always change your vote before voting endtime.

How to Upgrade

[NA]

Cygni upgrade

Context - Why Cygni Upgrade?

The goal is to ensure upgrades happen without friction, and coordination gaps are identified and fixed. The release will have updates to gov params and staking, to reduce the voting power of genesis validator(s) to match with other validators. More details on the release changelog are available at: https://github.com/ovrclk/akash/releases/tag/v0.7.1

Schedule

  • Upgrade proposal time: 29 May, 16:00 UTC

  • Binary release : 29 May, 16:00 UTC

  • Voting Period : 29 May - 31 May, 16:00 UTC

  • Network Upgrade Time: 01 June, 16:00 UTC

Proposal Details

Proposal ID

1

Name

cygni

Title

Cygni Upgrade

Description

The goal is to ensure upgrades happen without friction, and coordination gaps are identified and fixed. The release will have updates to gov params and staking, to reduce the voting power of genesis validator(s) to match with other validators. More details on the release changelog are available at: https://github.com/ovrclk/akash/releases/tag/v0.7.1

Proposal Time

2020-05-29 16:00 UTC

Voting Start Time

2020-05-29 16:00 UTC

Voting End Time

2020-05-31 16:00 UTC

Network Upgrade Time

1 June, 16:00 UTC

Link(s)

https://akash.aneka.io/proposals/1, https://testnet.akash.bigdipper.live/proposals/1, https://look.ping.pub/#/governance/1

Querying the proposal

Use the following command to query the proposal

akashctl query gov proposal 1 --chain-id centauri-2 -o json

You can query the votes using following command.

akashctl query gov votes 1 --chain-id centauri-2 -o json

Voting for proposal

Use the following command to vote on the proposal.

akashctl tx gov vote 1 <option> --chain-id centauri-2 --from <key-name>

You have yes/no/abstain/no_with_veto options to vote, it is recommended to choose your vote carefully as the governance decision will change the network state forever. Note: You can always change your vote before voting endtime.

How to Upgrade

If the proposal goes through, everyone gets to switch/update their binaries to new version (v0.7.2). The old binary (v0.7.0) will stop working from 01 June, 16:00 UTC and it won't be able to sync/sign new blocks from then.

Note: We should use new binaries only after 01 June, 16:00UTC, if you try to update it before, it fails.

Download the binaries

Download the linux archive from the release page.

Alternatively, install the v0.7.2 version via godownloader with:

curl https://raw.githubusercontent.com/ovrclk/akash/master/godownloader.sh | sh -s -- v0.7.2

The final step is to make sure that the akash binaries are available in your shell PATH.This page contains instructions for setting the PATH on Linux.

Build from source

Installing Akash suite from source

$ go get -d github.com/ovrclk/akash
$ cd $GOPATH/src/github.com/ovrclk/akash
$ git fetch && git checkout v0.7.2
$ make install
$ akashd version

Akash is developed and tested with golang 1.14+. Building requires a working golang installation, a properly set GOPATH, and $GOPATH/bin present in $PATH.

Most golang libraries will be installed via go mod, however the following packages will be installed globally with their binaries placed in $GOPATH/bin by make devdeps-install:

Once you have the dependencies properly setup, download and build akashctl and akashd using make install

Restart the node

If you are using systemd service,

sudo service akashd stop
sudo service akashd start
sudo service akashd status

If you are using screen, switch to the screen and execute:

akashd start --pruning nothing