github.com/ari-anchor/sei-tendermint@v0.0.0-20230519144642-dc826b7b56bb/proto/tendermint/types/params.proto (about) 1 syntax = "proto3"; 2 package seitendermint.types; 3 4 option go_package = "github.com/ari-anchor/sei-tendermint/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 SynchronyParams synchrony = 5; 19 TimeoutParams timeout = 6; 20 ABCIParams abci = 7; 21 } 22 23 // BlockParams contains limits on the block size. 24 message BlockParams { 25 // Max block size, in bytes. 26 // Note: must be greater than 0 27 int64 max_bytes = 1; 28 // Max gas per block. 29 // Note: must be greater or equal to -1 30 int64 max_gas = 2; 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 47 [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; 48 49 // This sets the maximum size of total evidence in bytes that can be committed 50 // in a single block. and should fall comfortably under the max block bytes. 51 // Default is 1048576 or 1MB 52 int64 max_bytes = 3; 53 } 54 55 // ValidatorParams restrict the public key types validators can use. 56 // NOTE: uses ABCI pubkey naming, not Amino names. 57 message ValidatorParams { 58 repeated string pub_key_types = 1; 59 } 60 61 // VersionParams contains the ABCI application version. 62 message VersionParams { 63 uint64 app_version = 1; 64 } 65 66 // HashedParams is a subset of ConsensusParams. 67 // 68 // It is hashed into the Header.ConsensusHash. 69 message HashedParams { 70 int64 block_max_bytes = 1; 71 int64 block_max_gas = 2; 72 } 73 74 // SynchronyParams configure the bounds under which a proposed block's timestamp is considered valid. 75 // These parameters are part of the proposer-based timestamps algorithm. For more information, 76 // see the specification of proposer-based timestamps: 77 // https://github.com/tendermint/tendermint/tree/master/spec/consensus/proposer-based-timestamp 78 message SynchronyParams { 79 // message_delay bounds how long a proposal message may take to reach all validators on a network 80 // and still be considered valid. 81 google.protobuf.Duration message_delay = 1 [(gogoproto.stdduration) = true]; 82 // precision bounds how skewed a proposer's clock may be from any validator 83 // on the network while still producing valid proposals. 84 google.protobuf.Duration precision = 2 [(gogoproto.stdduration) = true]; 85 } 86 87 // TimeoutParams configure the timeouts for the steps of the Tendermint consensus algorithm. 88 message TimeoutParams { 89 // These fields configure the timeouts for the propose step of the Tendermint 90 // consensus algorithm: propose is the initial timeout and propose_delta 91 // determines how much the timeout grows in subsequent rounds. 92 // For the first round, this propose timeout is used and for every subsequent 93 // round, the timeout grows by propose_delta. 94 // 95 // For example: 96 // With propose = 10ms, propose_delta = 5ms, the first round's propose phase 97 // timeout would be 10ms, the second round's would be 15ms, the third 20ms and so on. 98 // 99 // If a node waiting for a proposal message does not receive one matching its 100 // current height and round before this timeout, the node will issue a 101 // nil prevote for the round and advance to the next step. 102 google.protobuf.Duration propose = 1 [(gogoproto.stdduration) = true]; 103 google.protobuf.Duration propose_delta = 2 [(gogoproto.stdduration) = true]; 104 105 // vote along with vote_delta configure the timeout for both of the prevote and 106 // precommit steps of the Tendermint consensus algorithm. 107 // 108 // These parameters influence the vote step timeouts in the the same way that 109 // the propose and propose_delta parameters do to the proposal step. 110 // 111 // The vote timeout does not begin until a quorum of votes has been received. Once 112 // a quorum of votes has been seen and this timeout elapses, Tendermint will 113 // procced to the next step of the consensus algorithm. If Tendermint receives 114 // all of the remaining votes before the end of the timeout, it will proceed 115 // to the next step immediately. 116 google.protobuf.Duration vote = 3 [(gogoproto.stdduration) = true]; 117 google.protobuf.Duration vote_delta = 4 [(gogoproto.stdduration) = true]; 118 119 // commit configures how long Tendermint will wait after receiving a quorum of 120 // precommits before beginning consensus for the next height. This can be 121 // used to allow slow precommits to arrive for inclusion in the next height before progressing. 122 google.protobuf.Duration commit = 5 [(gogoproto.stdduration) = true]; 123 124 // bypass_commit_timeout configures the node to proceed immediately to 125 // the next height once the node has received all precommits for a block, forgoing 126 // the remaining commit timeout. 127 // Setting bypass_commit_timeout false (the default) causes Tendermint to wait 128 // for the full commit timeout. 129 bool bypass_commit_timeout = 6; 130 } 131 132 // ABCIParams configure functionality specific to the Application Blockchain Interface. 133 message ABCIParams { 134 // vote_extensions_enable_height configures the first height during which 135 // vote extensions will be enabled. During this specified height, and for all 136 // subsequent heights, precommit messages that do not contain valid extension data 137 // will be considered invalid. Prior to this height, vote extensions will not 138 // be used or accepted by validators on the network. 139 // 140 // Once enabled, vote extensions will be created by the application in ExtendVote, 141 // passed to the application for validation in VerifyVoteExtension and given 142 // to the application to use when proposing a block during PrepareProposal. 143 int64 vote_extensions_enable_height = 1; 144 145 // Indicates if CheckTx should be called on all the transactions 146 // remaining in the mempool after a block is executed. 147 bool recheck_tx = 2; 148 }