github.com/cosmos/cosmos-sdk@v0.50.10/proto/tendermint/types/params.proto (about)

     1  syntax = "proto3";
     2  package tendermint.types;
     3  
     4  option go_package = "github.com/cometbft/cometbft/proto/tendermint/types";
     5  
     6  import "gogoproto/gogo.proto";
     7  import "google/protobuf/duration.proto";
     8  
     9  option (gogoproto.equal_all) = true;
    10  
    11  // ConsensusParams contains consensus critical parameters that determine the
    12  // validity of blocks.
    13  message ConsensusParams {
    14    BlockParams     block     = 1;
    15    EvidenceParams  evidence  = 2;
    16    ValidatorParams validator = 3;
    17    VersionParams   version   = 4;
    18    ABCIParams      abci      = 5;
    19  }
    20  
    21  // BlockParams contains limits on the block size.
    22  message BlockParams {
    23    // Max block size, in bytes.
    24    // Note: must be greater than 0
    25    int64 max_bytes = 1;
    26    // Max gas per block.
    27    // Note: must be greater or equal to -1
    28    int64 max_gas = 2;
    29  
    30    reserved 3; // was TimeIotaMs see https://github.com/tendermint/tendermint/pull/5792
    31  }
    32  
    33  // EvidenceParams determine how we handle evidence of malfeasance.
    34  message EvidenceParams {
    35    // Max age of evidence, in blocks.
    36    //
    37    // The basic formula for calculating this is: MaxAgeDuration / {average block
    38    // time}.
    39    int64 max_age_num_blocks = 1;
    40  
    41    // Max age of evidence, in time.
    42    //
    43    // It should correspond with an app's "unbonding period" or other similar
    44    // mechanism for handling [Nothing-At-Stake
    45    // attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed).
    46    google.protobuf.Duration max_age_duration = 2 [(gogoproto.nullable) = false, (gogoproto.stdduration) = true];
    47  
    48    // This sets the maximum size of total evidence in bytes that can be committed in a single block.
    49    // and should fall comfortably under the max block bytes.
    50    // Default is 1048576 or 1MB
    51    int64 max_bytes = 3;
    52  }
    53  
    54  // ValidatorParams restrict the public key types validators can use.
    55  // NOTE: uses ABCI pubkey naming, not Amino names.
    56  message ValidatorParams {
    57    option (gogoproto.populate) = true;
    58    option (gogoproto.equal)    = true;
    59  
    60    repeated string pub_key_types = 1;
    61  }
    62  
    63  // VersionParams contains the ABCI application version.
    64  message VersionParams {
    65    option (gogoproto.populate) = true;
    66    option (gogoproto.equal)    = true;
    67  
    68    uint64 app = 1;
    69  }
    70  
    71  // HashedParams is a subset of ConsensusParams.
    72  //
    73  // It is hashed into the Header.ConsensusHash.
    74  message HashedParams {
    75    int64 block_max_bytes = 1;
    76    int64 block_max_gas   = 2;
    77  }
    78  
    79  // ABCIParams configure functionality specific to the Application Blockchain Interface.
    80  message ABCIParams {
    81    // vote_extensions_enable_height configures the first height during which
    82    // vote extensions will be enabled. During this specified height, and for all
    83    // subsequent heights, precommit messages that do not contain valid extension data
    84    // will be considered invalid. Prior to this height, vote extensions will not
    85    // be used or accepted by validators on the network.
    86    //
    87    // Once enabled, vote extensions will be created by the application in ExtendVote,
    88    // passed to the application for validation in VerifyVoteExtension and given
    89    // to the application to use when proposing a block during PrepareProposal.
    90    int64 vote_extensions_enable_height = 1;
    91  }