spec: remove evidences (#153)

This commit is contained in:
Marko
2020-09-02 18:17:11 +02:00
committed by GitHub
parent 1075f77cc3
commit d8a2c8f6f1
4 changed files with 24 additions and 61 deletions

View File

@@ -96,6 +96,27 @@ Example:
}
```
## EvidenceType
A part of Tendermint's security model is the use of evidence which serves as proof of
malicious behaviour by a network participant. It is the responsibility of Tendermint
to detect such malicious behaviour, to gossip this and commit it to the chain and once
verified by all validators to pass it on to the application through the ABCI. It is the
responsibility of the application then to handle the evidence and exercise punishment.
EvidenceType has the following protobuf format:
```proto
enum EvidenceType {
UNKNOWN = 0;
DUPLICATE_VOTE = 1;
LIGHT_CLIENT_ATTACK = 2;
}
```
There are two forms of evidence: Duplicate Vote and Light Client Attack. More
information can be found [here](https://github.com/tendermint/spec/blob/master/spec/light-client/accountability.md)
## Determinism
ABCI applications must implement deterministic finite-state machines to be
@@ -570,8 +591,7 @@ via light client.
### Evidence
- **Fields**:
- `Type (string)`: Type of the evidence. A hierarchical path like
"duplicate/vote".
- `Type (EvidenceType)`: Type of the evidence. An enum of possible evidence's.
- `Validator (Validator`: The offending validator
- `Height (int64)`: Height when the offense occured
- `Time (google.protobuf.Timestamp)`: Time of the block that was committed at the height that the offense occured
@@ -618,8 +638,6 @@ via light client.
unbonding period. `MaxAgeNumBlocks` is calculated by dividing the unboding
period by the average block time (e.g. 2 weeks / 6s per block = 2d8h).
- `MaxNum (uint32)`: The maximum number of evidence that can be committed to a single block
- `ProofTrialPeriod (int64)`: The duration in terms of blocks that an indicted node has to
provide proof of correctly executing a lock change in the event of amnesia evidence.
### ValidatorParams