cosmos-sdk/docs/spec/staking
Alexander Bezobchuk 9dafa3252d Merge PR #2365: Validator Commission Model
* Update validator commission fields

* Remove CommissionChangeToday and update to use CommissionChangeTime

* Implement commission as a first class citizen type

* Implement stringer for Comission

* Move commission type and logic to new  file

* Add new commission errors

* Add commission to create validator message

* Implement and call UpdateValidatorCommission

* Update godoc for UpdateValidatorCommission

* Add Abs to the decimal type

* Implement new SetValidatorCommission

* Update decimal short godocs

* Move set initial commission logic

* Move initial commission validation to Commission type

* Update initial validator commission logic and unit tests

* Remove commission update time from struct and move to validator

* Update validator create handler tests

* Implement commission logic for CLI

* Fix make lint failure

* Fix make cover failure

* Update edit validator logic to handle new commission rate

* Fix lint and cover

* Update create/edit validator simulation to include commission params

* Update MsgEditValidator godoc

* Update pending log

* Update staking tx docs

* Fix CLI create validator test

* Update variables names for commission  strings

* Merge UpdateTime into Commission type

* Update create-validator usage in docs

* Update more docs with examples

* More doc updates
2018-09-24 18:23:58 -04:00
..
end_block.md Merge PR #2238: Ensure Tendermint Validator Update Invariants 2018-09-12 15:16:28 +08:00
README.md Merge PR #1702: lamborghini distribution & inflation spec upgrade 2018-08-08 12:10:21 +02:00
state.md Merge PR #2251: Refactor Bech32 Prefixes and Nomenclature of Validator Pubkey and Operator 2018-09-08 16:44:58 +08:00
transactions.md Merge PR #2365: Validator Commission Model 2018-09-24 18:23:58 -04:00

Staking module specification

Abstract

This paper specifies the Staking module of the Cosmos-SDK, which was first described in the Cosmos Whitepaper in June 2016.

The module enables Cosmos-SDK based blockchain to support an advanced Proof-of-Stake system. In this system, holders of the native staking token of the chain can become validators and can delegate tokens to validator validators, ultimately determining the effective validator set for the system.

This module will be used in the Cosmos Hub, the first Hub in the Cosmos network.

Contents

The following specification uses Atom as the native staking token. The module can be adapted to any Proof-Of-Stake blockchain by replacing Atom with the native staking token of the chain.

  1. State
    1. Params
    2. Pool
    3. Validators
    4. Delegations
  2. Transactions
    1. Create-Validator
    2. Edit-Validator
    3. Repeal-Revocation
    4. Delegate
    5. Unbond
    6. Redelegate
  3. Validator Set Changes
    1. Validator set updates
    2. Slashing
    3. Automatic Unbonding