prysm-pulse/shared/params/minimal_config.go
terence tsao 5fdb916b4f
Align to spec v1.0.0 (#7469)
* Update eth1data params to double

* Update spec tests tags and state field for fssz gen

* Update more spec test sha tags

* Update slashing params

* Update slashing precompute to use config instead of hardcoded 3

* Update slashing test values due to config changes

* Update configs for slashedless test

* Go mod tidy

* Add toledo config (#7743)

* Update genesis delay to one week (#7782)

* Add Pyrmont config (#7797)

* Add Pyrmont config

* Fix config

* Update genesis time to the correct value

* Remove TestExecuteStateTransition_FullBlock

* Add back missing comments

* Update spectests to v1.0.0

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
2020-11-13 01:00:05 +00:00

83 lines
2.8 KiB
Go

package params
import "github.com/prysmaticlabs/prysm/shared/bytesutil"
// UseMinimalConfig for beacon chain services.
func UseMinimalConfig() {
beaconConfig = MinimalSpecConfig()
}
// MinimalSpecConfig retrieves the minimal config used in spec tests.
func MinimalSpecConfig() *BeaconChainConfig {
minimalConfig := mainnetBeaconConfig.Copy()
// Misc
minimalConfig.MaxCommitteesPerSlot = 4
minimalConfig.TargetCommitteeSize = 4
minimalConfig.MaxValidatorsPerCommittee = 2048
minimalConfig.MinPerEpochChurnLimit = 4
minimalConfig.ChurnLimitQuotient = 65536
minimalConfig.ShuffleRoundCount = 10
minimalConfig.MinGenesisActiveValidatorCount = 64
minimalConfig.MinGenesisTime = 0
minimalConfig.GenesisDelay = 300 // 5 minutes
minimalConfig.TargetAggregatorsPerCommittee = 3
// Gwei values
minimalConfig.MinDepositAmount = 1e9
minimalConfig.MaxEffectiveBalance = 32e9
minimalConfig.EjectionBalance = 16e9
minimalConfig.EffectiveBalanceIncrement = 1e9
// Initial values
minimalConfig.BLSWithdrawalPrefixByte = byte(0)
// Time parameters
minimalConfig.SecondsPerSlot = 6
minimalConfig.MinAttestationInclusionDelay = 1
minimalConfig.SlotsPerEpoch = 8
minimalConfig.MinSeedLookahead = 1
minimalConfig.MaxSeedLookahead = 4
minimalConfig.EpochsPerEth1VotingPeriod = 4
minimalConfig.SlotsPerHistoricalRoot = 64
minimalConfig.MinValidatorWithdrawabilityDelay = 256
minimalConfig.ShardCommitteePeriod = 64
minimalConfig.MinEpochsToInactivityPenalty = 4
minimalConfig.Eth1FollowDistance = 16
minimalConfig.SafeSlotsToUpdateJustified = 2
minimalConfig.SecondsPerETH1Block = 14
// State vector lengths
minimalConfig.EpochsPerHistoricalVector = 64
minimalConfig.EpochsPerSlashingsVector = 64
minimalConfig.HistoricalRootsLimit = 16777216
minimalConfig.ValidatorRegistryLimit = 1099511627776
// Reward and penalty quotients
minimalConfig.BaseRewardFactor = 64
minimalConfig.WhistleBlowerRewardQuotient = 512
minimalConfig.ProposerRewardQuotient = 8
minimalConfig.InactivityPenaltyQuotient = 33554432
minimalConfig.MinSlashingPenaltyQuotient = 64
minimalConfig.ProportionalSlashingMultiplier = 2
// Max operations per block
minimalConfig.MaxProposerSlashings = 16
minimalConfig.MaxAttesterSlashings = 2
minimalConfig.MaxAttestations = 128
minimalConfig.MaxDeposits = 16
minimalConfig.MaxVoluntaryExits = 16
// Signature domains
minimalConfig.DomainBeaconProposer = bytesutil.ToBytes4(bytesutil.Bytes4(0))
minimalConfig.DomainBeaconAttester = bytesutil.ToBytes4(bytesutil.Bytes4(1))
minimalConfig.DomainRandao = bytesutil.ToBytes4(bytesutil.Bytes4(2))
minimalConfig.DomainDeposit = bytesutil.ToBytes4(bytesutil.Bytes4(3))
minimalConfig.DomainVoluntaryExit = bytesutil.ToBytes4(bytesutil.Bytes4(4))
minimalConfig.GenesisForkVersion = []byte{0, 0, 0, 1}
minimalConfig.DepositContractTreeDepth = 32
minimalConfig.FarFutureEpoch = 1<<64 - 1
return minimalConfig
}