github.com/Oyster-zx/tendermint@v0.34.24-fork/proto/tendermint/types/evidence.proto (about) 1 syntax = "proto3"; 2 package tendermint.types; 3 4 option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; 5 6 import "gogoproto/gogo.proto"; 7 import "google/protobuf/timestamp.proto"; 8 import "tendermint/types/types.proto"; 9 import "tendermint/types/validator.proto"; 10 11 message Evidence { 12 oneof sum { 13 DuplicateVoteEvidence duplicate_vote_evidence = 1; 14 LightClientAttackEvidence light_client_attack_evidence = 2; 15 } 16 } 17 18 // DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. 19 message DuplicateVoteEvidence { 20 tendermint.types.Vote vote_a = 1; 21 tendermint.types.Vote vote_b = 2; 22 int64 total_voting_power = 3; 23 int64 validator_power = 4; 24 google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; 25 } 26 27 // LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. 28 message LightClientAttackEvidence { 29 tendermint.types.LightBlock conflicting_block = 1; 30 int64 common_height = 2; 31 repeated tendermint.types.Validator byzantine_validators = 3; 32 int64 total_voting_power = 4; 33 google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; 34 } 35 36 message EvidenceList { 37 repeated Evidence evidence = 1 [(gogoproto.nullable) = false]; 38 }