You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.0 KiB

  1. syntax = "proto3";
  2. package tendermint.proto.types;
  3. option go_package = "github.com/tendermint/tendermint/proto/types";
  4. import "third_party/proto/gogoproto/gogo.proto";
  5. import "proto/types/types.proto";
  6. import "google/protobuf/timestamp.proto";
  7. import "proto/crypto/keys/types.proto";
  8. // DuplicateVoteEvidence contains evidence a validator signed two conflicting
  9. // votes.
  10. message DuplicateVoteEvidence {
  11. Vote vote_a = 1;
  12. Vote vote_b = 2;
  13. }
  14. message PotentialAmnesiaEvidence {
  15. Vote vote_a = 1;
  16. Vote vote_b = 2;
  17. }
  18. // MockEvidence is used for testing pruposes
  19. message MockEvidence {
  20. int64 evidence_height = 1;
  21. google.protobuf.Timestamp evidence_time = 2
  22. [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
  23. bytes evidence_address = 3;
  24. }
  25. message MockRandomEvidence {
  26. int64 evidence_height = 1;
  27. google.protobuf.Timestamp evidence_time = 2
  28. [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
  29. bytes evidence_address = 3;
  30. bytes rand_bytes = 4;
  31. }
  32. message ConflictingHeadersEvidence {
  33. SignedHeader h1 = 1;
  34. SignedHeader h2 = 2;
  35. }
  36. message LunaticValidatorEvidence {
  37. Header header = 1;
  38. Vote vote = 2;
  39. string invalid_header_field = 3;
  40. }
  41. message Evidence {
  42. oneof sum {
  43. DuplicateVoteEvidence duplicate_vote_evidence = 1;
  44. ConflictingHeadersEvidence conflicting_headers_evidence = 2;
  45. LunaticValidatorEvidence lunatic_validator_evidence = 3;
  46. PotentialAmnesiaEvidence potential_amnesia_evidence = 4;
  47. MockEvidence mock_evidence = 5;
  48. MockRandomEvidence mock_random_evidence = 6;
  49. }
  50. }
  51. // EvidenceData contains any evidence of malicious wrong-doing by validators
  52. message EvidenceData {
  53. repeated Evidence evidence = 1 [(gogoproto.nullable) = false];
  54. bytes hash = 2;
  55. }
  56. message ProofOfLockChange {
  57. repeated Vote votes = 1 [(gogoproto.nullable) = false];
  58. tendermint.proto.crypto.keys.PublicKey pub_key = 2 [(gogoproto.nullable) = false];
  59. }