cosmos-sdk/docs/spec/staking
Christopher Goes c0487996ab
Update slashing docs, slight index change
2018-05-28 23:46:08 +02:00
..
old Rebase & squash slashing 2018-05-28 21:55:27 +02:00
AbsoluteFeeDistrModel.xlsx add spec dir 2018-02-11 12:17:40 -05:00
README.md update readme 2018-05-08 17:46:08 -04:00
overview.md spec: bust up staking into files 2018-05-08 17:35:24 -04:00
state.md spec: explicit CandidateStatus enum 2018-05-09 09:55:19 -04:00
transactions.md Rebase & squash slashing 2018-05-28 21:55:27 +02:00
valset-changes.md Update slashing docs, slight index change 2018-05-28 23:46:08 +02:00

README.md

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 candidate validators and can delegate tokens to candidate 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. Design overview
  2. Implementation
    1. State
      1. Global State
      2. Validator Candidates
      3. Delegator Bonds
      4. Unbond and Rebond Queue
    2. Transactions
      1. Declare Candidacy
      2. Edit Candidacy
      3. Delegate
      4. Unbond
      5. Redelegate
      6. ProveLive
    3. Validator Set Changes
      1. Validator set updates
      2. Slashing
      3. Automatic Unbonding
  3. Future improvements