cosmos/testnets

Name: testnets

Owner: COSMOS

Description: null

Created: 2018-04-22 18:47:37.0

Updated: 2018-05-23 03:39:15.0

Pushed: 2018-05-24 14:25:54.0

Homepage: null

Size: 96

Language: null

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Connect to a Testnet

This document explains how to connect to the Testnet of a Cosmos-SDK based blockchain. It can be used to connect to the latest Testnet for the Cosmos Hub.

Software Setup (Manual Installation)

Follow these instructions to install the Cosmos-SDK and connect to the latest Testnet. This instructions work for both a local machine and a VM in a cloud server.

If you want to run a non-validator full-node, installing the SDK on a Cloud server is a good option. However, if you are want to become a validator for the Hub's mainnet you should look at more complex setups, including Sentry Node Architecture, to protect your node from DDOS and ensure high-availability (see the technical requirements). You can find more information on validators in our website, in the Validator FAQ and in the Validator Chat.

Install Go

Install go following the instructions in the official golang website. You will require Go 1.9+ for this tutorial.

Set GOPATH

First, you will need to set up your GOPATH. Make sure that the location $HOME is something like /Users/<username>, you can corroborate it by typing echo $HOME in your terminal.

Go to $HOME with the command cd $HOME and open the the hidden file .barshrc with a code editor and paste the following lines (or .bash_profile if your're using OS X).

rt GOPATH=$HOME/go
rt PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Save and restart the terminal.

Note: If you can't see the hidden file, use the shortcut Command + Shift + . in Finder.

Update Packages

To update all packages in your GOPATH run:

et -u all

If you want to update a specific package run:

et -u <package_name>
Install GNU Wget

MacOS

 install wget

Linux

 apt-get install wget

Note: You can check other available options for downloading wget here.

Install binaries

Cosmos SDK can be installed to $GOPATH/src/github.com/cosmos/cosmos-sdk like a normal Go program:

et github.com/cosmos/cosmos-sdk

Now we can fetch the correct versions of each dependency by running:

GOPATH/src/github.com/cosmos/cosmos-sdk
fetch --all
checkout v0.17.0-rc0
 get_tools // run $ make update_tools if already installed
 get_vendor_deps
 install

This will install the gaiad and gaiacli binaries. Verify that everything is OK by running:

d version

You should see:

.0-20abeb3d

And also:

cli version

You should see:

.0-20abeb3d
Genesis Setup

Genesis files are the starting point for the full-node to sync up with the network. In order to sync up with the correct version of the Testnet, be sure to choose the genesis file corresponding to the version of the Testnet you want to connect to.

Now that we have completed the basic SDK setup, we can start working on the genesis configuration for the chain we want to connect to.

Get the genesis transactions

clone https://github.com/cosmos/testnets

r -p $HOME/.gaiad/config
a testnets/gaia-5001/. $HOME/.gaiad/config/gentx
d unsafe_reset_all
d init --gen-txs -o --chain-id=gaia-5001

Lastly change the moniker string in theconfig.tomlto identify your node.

custom human readable name for this node
ker = "<your_custom_name>"
Run a Full Node

Start the full node:

d start

Check the everything is running smoothly:

cli status
Generate keys

You'll need a private and public key pair (a.k.a. sk, pk respectively) to be able to receive funds, send txs, bond tx, etc.

To generate your a new key (default ed25519 elliptic curve):

cli keys add <your_key_name>

Next, you will have to enter a passphrase for your key twice. Save the seed phrase in a safe place in case you forget the password.

Now if you check your private keys you will see the <your_key_name> key among them:

cli keys show <your_key_name>

You can see all your other available keys by typing:

cli keys list

The validator pubkey from your node should be the same as the one printed with the command:

d show_validator

Finally, save your address and pubkey into a variable to use them afterwards.

DR=<your_newly_generated_address>
BKEY=<your_newly_generated_public_key>

IMPORTANT: We strongly recommend to NOT use the same passphrase for your different keys. The Tendermint team and the Interchain Foundation will not be responsible for the lost of funds.

Get coins

Go to the faucet in http://atomexplorer.com/ and claim some coins for your testnet by typing the address of your key, as printed out above.

Send tokens
cli send --amount=1000fermion --chain-id=<name_of_testnet_chain> --sequence=1 --name=<key_name> --to=<destination_address>

The --amount flag defines the corresponding amount of the coin in the format --amount=<value|coin_name>

The --sequence flag corresponds to the sequence number to sign the tx.

Now check the destination account and your own account to check the updated balances (by default the latest block):

cli account <destination_address>
cli account <your_address>

You can also check your balance at a given block by using the --block flag:

cli account <your_address> --block=<block_height>
Run a Validator Node

Validators are actors from the network that are responsible from committing new blocks to the blockchain by submitting their votes. In terms of security, validators' stake is slashed in all the zones they belong if they become unavailable, double sign a transaction, or don't cast their votes. We strongly recommend entities intending to run validators in the Cosmos Hub's mainnet to check the technical requirements and take the necessary precautions to ensure high-availability, such as setting a Sentry Node architecture. If you have any question about validators, read the Validator FAQ and join the Validator Chat.

This section covers the instructions necessary to stake tokens to become a testnet validator candidate.

Your pubkey can be used to create a new validator candidate by staking some tokens:

You can find your node pubkey by running

d show_validator

and this returns your public key for the declare-candidate command

cli declare-candidacy --amount=500steak --pubkey=<your_node_pubkey> --address-candidate=<your_address> --moniker=satoshi --chain-id=<name_of_the_testnet_chain> --sequence=1 --name=<key_name>

You can add more information of the validator candidate such as--website, --keybase-sigor additional --details. If you want to edit the candidate info:

cli edit-candidacy --details="To the cosmos !" --website="https://cosmos.network"

Finally, you can check all the candidate information by typing:

cli candidate --address-candidate=<your_address> --chain-id=<name_of_the_testnet_chain>

To check that the validator is active you can find it on the validator set list:

cli validatorset

Note: Remember that to be in the validator set you need to have more total power than the Xnd validator, where X is the assigned size for the validator set (by default X = 100).

Delegate your tokens

You can delegate (i.e. bind) Atoms to a validator to become a delegator and obtain a part of its fee revenue in Photons. For more information about the Cosmos Token Model, refer to our whitepaper.

Bond your tokens

Bond your tokens to a validator candidate with the following command:

cli delegate --amount=10steak --address-delegator=<your_address> --address-candidate=<bonded_validator_address> --name=<key_name> --chain-id=<name_of_testnet_chain> --sequence=1
Unbond

If for any reason the validator misbehaves or you just want to unbond a certain amount of the bonded tokens:

cli unbond --address-delegator=<your_address> --address-candidate=<bonded_validator_address> --shares=MAX --name=<key_name> --chain-id=<name_of_testnet_chain> --sequence=1

You can unbond a specific amount ofshares(eg:12.1) or all of them (MAX).

You should now see the unbonded tokens reflected in your balance and in your delegator bond:

cli account <your_address>
cli delegator-bond --address-delegator=<your_address> --address-candidate=<bonded_validator_address> --chain-id=<name_of_testnet_chain>

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.