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 }