syntax = "proto3";
|
|
package tendermint.types;
|
|
|
|
option go_package = "github.com/tendermint/tendermint/proto/tendermint/types";
|
|
|
|
import "gogoproto/gogo.proto";
|
|
import "tendermint/types/types.proto";
|
|
import "tendermint/crypto/keys/types.proto";
|
|
|
|
// DuplicateVoteEvidence contains evidence a validator signed two conflicting
|
|
// votes.
|
|
message DuplicateVoteEvidence {
|
|
Vote vote_a = 1;
|
|
Vote vote_b = 2;
|
|
}
|
|
|
|
message PotentialAmnesiaEvidence {
|
|
Vote vote_a = 1;
|
|
Vote vote_b = 2;
|
|
|
|
int64 height_stamp = 3;
|
|
}
|
|
|
|
message AmnesiaEvidence {
|
|
PotentialAmnesiaEvidence potential_amnesia_evidence = 1;
|
|
ProofOfLockChange polc = 2;
|
|
}
|
|
|
|
message ConflictingHeadersEvidence {
|
|
SignedHeader h1 = 1;
|
|
SignedHeader h2 = 2;
|
|
}
|
|
|
|
message LunaticValidatorEvidence {
|
|
Header header = 1;
|
|
Vote vote = 2;
|
|
string invalid_header_field = 3;
|
|
}
|
|
|
|
message PhantomValidatorEvidence {
|
|
Vote vote = 1;
|
|
int64 last_height_validator_was_in_set = 2;
|
|
}
|
|
|
|
message Evidence {
|
|
oneof sum {
|
|
DuplicateVoteEvidence duplicate_vote_evidence = 1;
|
|
ConflictingHeadersEvidence conflicting_headers_evidence = 2;
|
|
LunaticValidatorEvidence lunatic_validator_evidence = 3;
|
|
PotentialAmnesiaEvidence potential_amnesia_evidence = 4;
|
|
AmnesiaEvidence amnesia_evidence = 5;
|
|
PhantomValidatorEvidence phantom_validator_evidence = 6;
|
|
}
|
|
}
|
|
|
|
// EvidenceData contains any evidence of malicious wrong-doing by validators
|
|
message EvidenceData {
|
|
repeated Evidence evidence = 1 [(gogoproto.nullable) = false];
|
|
bytes hash = 2;
|
|
}
|
|
|
|
message ProofOfLockChange {
|
|
repeated Vote votes = 1;
|
|
tendermint.crypto.keys.PublicKey pub_key = 2;
|
|
}
|