github.com/franono/tendermint@v0.32.2-0.20200527150959-749313264ce9/proto/types/evidence.proto (about)

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