mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-27 08:45:19 +00:00
62 lines
1.8 KiB
Go
62 lines
1.8 KiB
Go
|
package v032
|
||
|
|
||
|
// ConsensusParams contains consensus critical parameters that determine the
|
||
|
// validity of blocks.
|
||
|
type ConsensusParams struct {
|
||
|
Block BlockParams `json:"block"`
|
||
|
Evidence EvidenceParams `json:"evidence"`
|
||
|
Validator ValidatorParams `json:"validator"`
|
||
|
}
|
||
|
|
||
|
// BlockParams define limits on the block size and gas plus minimum time
|
||
|
// between blocks.
|
||
|
type BlockParams struct {
|
||
|
MaxBytes int64 `json:"max_bytes"`
|
||
|
MaxGas int64 `json:"max_gas"`
|
||
|
// Minimum time increment between consecutive blocks (in milliseconds)
|
||
|
// Not exposed to the application.
|
||
|
TimeIotaMs int64 `json:"time_iota_ms"`
|
||
|
}
|
||
|
|
||
|
// EvidenceParams determine how we handle evidence of malfeasance.
|
||
|
type EvidenceParams struct {
|
||
|
MaxAge int64 `json:"max_age"` // only accept new evidence more recent than this
|
||
|
}
|
||
|
|
||
|
// ValidatorParams restrict the public key types validators can use.
|
||
|
// NOTE: uses ABCI pubkey naming, not Amino names.
|
||
|
type ValidatorParams struct {
|
||
|
PubKeyTypes []string `json:"pub_key_types"`
|
||
|
}
|
||
|
|
||
|
// // DefaultConsensusParams returns a default ConsensusParams.
|
||
|
func DefaultConsensusParams() *ConsensusParams {
|
||
|
return &ConsensusParams{
|
||
|
DefaultBlockParams(),
|
||
|
DefaultEvidenceParams(),
|
||
|
DefaultValidatorParams(),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// DefaultBlockParams returns a default BlockParams.
|
||
|
func DefaultBlockParams() BlockParams {
|
||
|
return BlockParams{
|
||
|
MaxBytes: 22020096, // 21MB
|
||
|
MaxGas: -1,
|
||
|
TimeIotaMs: 1000, // 1s
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// DefaultEvidenceParams Params returns a default EvidenceParams.
|
||
|
func DefaultEvidenceParams() EvidenceParams {
|
||
|
return EvidenceParams{
|
||
|
MaxAge: 100000, // 27.8 hrs at 1block/s
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// DefaultValidatorParams returns a default ValidatorParams, which allows
|
||
|
// only ed25519 pubkeys.
|
||
|
func DefaultValidatorParams() ValidatorParams {
|
||
|
return ValidatorParams{[]string{ABCIPubKeyTypeEd25519}}
|
||
|
}
|