End block to begin block, add README
This commit is contained in:
parent
53fa4a28dc
commit
a8af4a4fad
|
@ -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
|
|
@ -1,12 +1,13 @@
|
||||||
# End-Block
|
# Begin-Block
|
||||||
|
|
||||||
## Slashing
|
## Evidence handling & slashing
|
||||||
|
|
||||||
Tendermint blocks can include
|
Tendermint blocks can include
|
||||||
[Evidence](https://github.com/tendermint/tendermint/blob/develop/docs/spec/blockchain/blockchain.md#evidence), which indicates that a validator
|
[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
|
committed malicious behaviour. The relevant information is forwarded to the
|
||||||
application as [ABCI
|
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:
|
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
|
act as a single validator with X stake or as N validators with collectively X
|
||||||
stake.
|
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:
|
At the beginning of each block, we update the signing info for each validator and check if they should be automatically unbonded:
|
||||||
|
|
Loading…
Reference in New Issue