github.com/adoriasoft/tendermint@v0.34.0-dev1.0.20200722151356-96d84601a75a/proto/tendermint/types/evidence.proto (about) 1 syntax = "proto3"; 2 package tendermint.types; 3 4 option go_package = "github.com/adoriasoft/tendermint/proto/tendermint/types"; 5 6 import "gogoproto/gogo.proto"; 7 import "tendermint/types/types.proto"; 8 import "tendermint/crypto/keys.proto"; 9 10 // DuplicateVoteEvidence contains evidence a validator signed two conflicting 11 // votes. 12 message DuplicateVoteEvidence { 13 Vote vote_a = 1; 14 Vote vote_b = 2; 15 } 16 17 message PotentialAmnesiaEvidence { 18 Vote vote_a = 1; 19 Vote vote_b = 2; 20 21 int64 height_stamp = 3; 22 } 23 24 message AmnesiaEvidence { 25 PotentialAmnesiaEvidence potential_amnesia_evidence = 1; 26 ProofOfLockChange polc = 2; 27 } 28 29 message ConflictingHeadersEvidence { 30 SignedHeader h1 = 1; 31 SignedHeader h2 = 2; 32 } 33 34 message LunaticValidatorEvidence { 35 Header header = 1; 36 Vote vote = 2; 37 string invalid_header_field = 3; 38 } 39 40 message PhantomValidatorEvidence { 41 Vote vote = 1; 42 int64 last_height_validator_was_in_set = 2; 43 } 44 45 message Evidence { 46 oneof sum { 47 DuplicateVoteEvidence duplicate_vote_evidence = 1; 48 ConflictingHeadersEvidence conflicting_headers_evidence = 2; 49 LunaticValidatorEvidence lunatic_validator_evidence = 3; 50 PotentialAmnesiaEvidence potential_amnesia_evidence = 4; 51 AmnesiaEvidence amnesia_evidence = 5; 52 PhantomValidatorEvidence phantom_validator_evidence = 6; 53 } 54 } 55 56 // EvidenceData contains any evidence of malicious wrong-doing by validators 57 message EvidenceData { 58 repeated Evidence evidence = 1 [(gogoproto.nullable) = false]; 59 bytes hash = 2; 60 } 61 62 message ProofOfLockChange { 63 repeated Vote votes = 1; 64 tendermint.crypto.PublicKey pub_key = 2; 65 }