End block to begin block, add README

This commit is contained in:
Christopher Goes 2018-08-13 16:04:35 +02:00
parent 53fa4a28dc
commit a8af4a4fad
2 changed files with 34 additions and 4 deletions

View File

@ -0,0 +1,29 @@
# Slashing module specification
## Abstract
This section specifies the slashing module of the Cosmos SDK, which implements functionality
first outlined in the [Cosmos Whitepaper](https://cosmos.network/about/whitepaper) in June 2016.
The slashing module enables Cosmos SDK-based blockchains to disincentivize any attributable action
by a protocol-recognized actor with value at stake by "slashing" them: burning some amount of their
stake - and possibly also removing their ability to vote on future blocks for a period of time.
This module will be used by the Cosmos Hub, the first hub in the Cosmos ecosystem.
## Contents
1. **[State](state.md)**
1. SigningInfo
1. SlashingPeriod
1. **[State Machine](state-machine.md)**
1. Transactions
1. Unjail
1. Interactions
1. Validator Bonded
1. Validator Slashed
1. Validator Unjailed
1. Slashing Period Cleanup
1. **[Begin Block](begin-block.md)**
1. Evidence handling & slashing
1. Uptime/downtime tracking & slashing

View File

@ -1,12 +1,13 @@
# End-Block
# Begin-Block
## Slashing
## Evidence handling & slashing
Tendermint blocks can include
[Evidence](https://github.com/tendermint/tendermint/blob/develop/docs/spec/blockchain/blockchain.md#evidence), which indicates that a validator
committed malicious behaviour. The relevant information is forwarded to the
application as [ABCI
Evidence](https://github.com/tendermint/tendermint/blob/develop/abci/types/types.proto#L259), so the validator an be accordingly punished.
Evidence](https://github.com/tendermint/tendermint/blob/develop/abci/types/types.proto#L259) in `abci.RequestBeginBlock`
so that the validator an be accordingly punished.
For some `evidence` to be valid, it must satisfy:
@ -75,7 +76,7 @@ This ensures that offending validators are punished the same amount whether they
act as a single validator with X stake or as N validators with collectively X
stake.
## Automatic Unbonding
## Uptime/downtime tracking & slashing
At the beginning of each block, we update the signing info for each validator and check if they should be automatically unbonded: