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  }