ValidatorParams is the parameter space that defines the rules and criteria for validators in the blockchain
| 312 | |
| 313 | // ValidatorParams is the parameter space that defines the rules and criteria for validators in the blockchain |
| 314 | type ValidatorParams struct { |
| 315 | state protoimpl.MessageState `protogen:"open.v1"` |
| 316 | // unstaking_blocks: is the number of blocks a validator's staked tokens must remain locked and slashable after |
| 317 | // sending 'unstake_validator'. Without unstaking blocks, validators could withdraw their stake right after attempting |
| 318 | // malicious behavior, like double-signing or failing to validate correctly |
| 319 | UnstakingBlocks uint64 `protobuf:"varint,1,opt,name=unstaking_blocks,json=unstakingBlocks,proto3" json:"unstakingBlocks"` // @gotags: json:"unstakingBlocks" |
| 320 | // max_pause_blocks: is the maximum number of blocks a validator may be paused before being 'force unstaked'. |
| 321 | // This is necessary to prevent dead validators from forever existing in the state |
| 322 | MaxPauseBlocks uint64 `protobuf:"varint,2,opt,name=max_pause_blocks,json=maxPauseBlocks,proto3" json:"maxPauseBlocks"` // @gotags: json:"maxPauseBlocks" |
| 323 | // double_sign_slash_percentage: is the percentage of staked tokens that are slashed when a Validator is caught |
| 324 | // performing a double-sign (signing two different blocks for the same block height and round, |
| 325 | // supporting conflicting versions of the blockchain) |
| 326 | DoubleSignSlashPercentage uint64 `protobuf:"varint,3,opt,name=double_sign_slash_percentage,json=doubleSignSlashPercentage,proto3" json:"doubleSignSlashPercentage"` // @gotags: json:"doubleSignSlashPercentage" |
| 327 | // non_sign_slash_percentage: is the percentage of staked tokens that are slashed when a Validator doesn't sign a |
| 328 | // number of blocks over the max_non_sign threshold within the non_sign_window blocks. |
| 329 | NonSignSlashPercentage uint64 `protobuf:"varint,4,opt,name=non_sign_slash_percentage,json=nonSignSlashPercentage,proto3" json:"nonSignSlashPercentage"` // @gotags: json:"nonSignSlashPercentage" |
| 330 | // max_non_sign: is the maximum number of blocks a Validator may not sign before being slashed, a threshold system |
| 331 | // provides lee-way for accidental non-sign faults |
| 332 | MaxNonSign uint64 `protobuf:"varint,5,opt,name=max_non_sign,json=maxNonSign,proto3" json:"maxNonSign"` // @gotags: json:"maxNonSign" |
| 333 | // non_sign_window: is the period of blocks in which a validator’s count of missed signatures (non-signs) is tracked |
| 334 | // before it is reset. During this window, if a validator fails to sign blocks, the missed count is incremented |
| 335 | // Once the window expires, the non-sign count is reset, providing the validator a chance to recover without immediate |
| 336 | // penalties |
| 337 | NonSignWindow uint64 `protobuf:"varint,6,opt,name=non_sign_window,json=nonSignWindow,proto3" json:"nonSignWindow"` // @gotags: json:"nonSignWindow" |
| 338 | // max_committees: is the maximum number of committees a validator is allowed to stake for |
| 339 | MaxCommittees uint64 `protobuf:"varint,7,opt,name=max_committees,json=maxCommittees,proto3" json:"maxCommittees"` // @gotags: json:"maxCommittees" |
| 340 | // max_committee_size: is the maximum number of active validators a committee may have participating in BFT at any |
| 341 | // one view |
| 342 | MaxCommitteeSize uint64 `protobuf:"varint,8,opt,name=max_committee_size,json=maxCommitteeSize,proto3" json:"maxCommitteeSize"` // @gotags: json:"maxCommitteeSize" |
| 343 | // early_withdrawal_penalty: is the percent reward deduction if NOT compounding validator rewards |
| 344 | EarlyWithdrawalPenalty uint64 `protobuf:"varint,9,opt,name=early_withdrawal_penalty,json=earlyWithdrawalPenalty,proto3" json:"earlyWithdrawalPenalty"` // @gotags: json:"earlyWithdrawalPenalty" |
| 345 | // delegate_unstaking_blocks: is the number of blocks a delegate validator's staked tokens must remain locked. |
| 346 | // Since there's no slashing of delegates, this variable affects economic stability more than security |
| 347 | DelegateUnstakingBlocks uint64 `protobuf:"varint,10,opt,name=delegate_unstaking_blocks,json=delegateUnstakingBlocks,proto3" json:"delegateUnstakingBlocks"` // @gotags: json:"delegateUnstakingBlocks" |
| 348 | // minimum_order_size: is the minimum amount a 'sell order' must sell in order to be valid |
| 349 | MinimumOrderSize uint64 `protobuf:"varint,11,opt,name=minimum_order_size,json=minimumOrderSize,proto3" json:"minimumOrderSize"` // @gotags: json:"minimumOrderSize" |
| 350 | // stake_percent_for_subsidized_committee: is the minimum percentage of total stake that a committee must have |
| 351 | // committed to it in order to be considered "subsidized" by the protocol |
| 352 | StakePercentForSubsidizedCommittee uint64 `protobuf:"varint,12,opt,name=stake_percent_for_subsidized_committee,json=stakePercentForSubsidizedCommittee,proto3" json:"stakePercentForSubsidizedCommittee"` // @gotags: json:"stakePercentForSubsidizedCommittee" |
| 353 | // max_slash_per_committee: is the maximum slash per committee per block that a validator may receive. |
| 354 | // If the slash exceeds maximum, the validator will be auto-removed from the committee to protect all parties from |
| 355 | // cascading failures. |
| 356 | MaxSlashPerCommittee uint64 `protobuf:"varint,13,opt,name=max_slash_per_committee,json=maxSlashPerCommittee,proto3" json:"maxSlashPerCommittee"` // @gotags: json:"maxSlashPerCommittee" |
| 357 | // delegate_reward_percentage: is the percentage of the block reward that is awarded to the delegates |
| 358 | DelegateRewardPercentage uint64 `protobuf:"varint,14,opt,name=delegate_reward_percentage,json=delegateRewardPercentage,proto3" json:"delegateRewardPercentage"` // @gotags: json:"delegateRewardPercentage" |
| 359 | // buy_deadline_blocks: amount of blocks a 'buyer' has to complete an order they 'reserved' |
| 360 | BuyDeadlineBlocks uint64 `protobuf:"varint,15,opt,name=buy_deadline_blocks,json=buyDeadlineBlocks,proto3" json:"buyDeadlineBlocks"` // @gotags: json:"buyDeadlineBlocks" |
| 361 | // lock_order_fee_multiplier: the fee multiplier of the 'send' fee that is required to execute a lock order |
| 362 | LockOrderFeeMultiplier uint64 `protobuf:"varint,16,opt,name=lock_order_fee_multiplier,json=lockOrderFeeMultiplier,proto3" json:"lockOrderFeeMultiplier"` // @gotags: json:"lockOrderFeeMultiplier" |
| 363 | // minimum_stake_for_validators: is the least amount a validator must stake to qualify as staked |
| 364 | MinimumStakeForValidators uint64 `protobuf:"varint,17,opt,name=minimum_stake_for_validators,json=minimumStakeForValidators,proto3" json:"minimumStakeForValidators"` // @gotags: json:"minimumStakeForValidators" |
| 365 | // minimum_stake_for_delegates: is the least amount a delegator must stake to qualify as staked |
| 366 | MinimumStakeForDelegates uint64 `protobuf:"varint,18,opt,name=minimum_stake_for_delegates,json=minimumStakeForDelegates,proto3" json:"minimumStakeForDelegates"` // @gotags: json:"minimumStakeForDelegates" |
| 367 | // maximum_delegates_per_committee: is the maximum number of delegates that can be chose as lottery winners |
| 368 | MaximumDelegatesPerCommittee uint64 `protobuf:"varint,19,opt,name=maximum_delegates_per_committee,json=maximumDelegatesPerCommittee,proto3" json:"maximumDelegatesPerCommittee"` // @gotags: json:"maximumDelegatesPerCommittee" |
| 369 | unknownFields protoimpl.UnknownFields |
| 370 | sizeCache protoimpl.SizeCache |
| 371 | } |
nothing calls this directly
no outgoing calls
no test coverage detected