|
|
- syntax = "proto3";
- package tendermint.proto.types;
-
- option go_package = "github.com/tendermint/tendermint/proto/types";
-
- import "third_party/proto/gogoproto/gogo.proto";
- import "google/protobuf/duration.proto";
-
- option (gogoproto.equal_all) = true;
- option (gogoproto.marshaler_all) = true;
- option (gogoproto.unmarshaler_all) = true;
- option (gogoproto.sizer_all) = true;
- option (gogoproto.goproto_registration) = true;
-
- // ConsensusParams contains consensus critical parameters that determine the
- // validity of blocks.
- message ConsensusParams {
- BlockParams block = 1 [(gogoproto.nullable) = false];
- EvidenceParams evidence = 2 [(gogoproto.nullable) = false];
- ValidatorParams validator = 3 [(gogoproto.nullable) = false];
- }
-
- // BlockParams contains limits on the block size.
- message BlockParams {
- // Note: must be greater than 0
- int64 max_bytes = 1;
- // Note: must be greater or equal to -1
- int64 max_gas = 2;
- // Minimum time increment between consecutive blocks (in milliseconds)
- // Not exposed to the application.
- int64 time_iota_ms = 3;
- }
-
- // EvidenceParams determine how we handle evidence of malfeasance.
- message EvidenceParams {
- // Max age of evidence, in blocks.
- //
- // The basic formula for calculating this is: MaxAgeDuration / {average block
- // time}.
- int64 max_age_num_blocks = 1;
-
- // Max age of evidence, in time.
- //
- // It should correspond with an app's "unbonding period" or other similar
- // mechanism for handling [Nothing-At-Stake
- // attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed).
- google.protobuf.Duration max_age_duration = 2
- [(gogoproto.nullable) = false, (gogoproto.stdduration) = true];
-
- // This sets the maximum number of evidence that can be committed in a single block.
- // and should fall comfortably under the max block bytes when we consider the size of
- // each evidence (See MaxEvidenceBytes). The maximum number is MaxEvidencePerBlock.
- // Default is 50
- uint32 max_num = 3;
- }
-
- // ValidatorParams restrict the public key types validators can use.
- // NOTE: uses ABCI pubkey naming, not Amino names.
- message ValidatorParams {
- option (gogoproto.populate) = true;
- option (gogoproto.equal) = true;
-
- repeated string pub_key_types = 1;
- }
-
- // HashedParams is a subset of ConsensusParams.
- // It is amino encoded and hashed into
- // the Header.ConsensusHash.
- message HashedParams {
- int64 block_max_bytes = 1;
- int64 block_max_gas = 2;
- }
|