mirror of
https://github.com/status-im/eth2.0-specs.git
synced 2025-01-13 12:14:19 +00:00
c764202a57
If the exit queue is very long, then a validator may take many months to exit. With the code as currently written, however, self-slashing is a potentially lucrative route to get one's money out faster, because one can exit in 36 days. This PR changes it so that slashing can only extend your withdrawal time, not contract it. Also, instead of the slashed balances used to calculate one's slashing penalty being those in `[withdrawal - 54 days ... withdrawal - 18 days]`, we now run the penalization algorithm once every 36 days that a validator is slashed but not withdrawn, so that it covers the 36-day period where the validator was actually slashed. It also moves the minimum slashing penalty to the `slash_validator` function so that it is only applied once. We also simplify the `slashed_balances` logic to be per-epoch.
124 lines
3.3 KiB
YAML
124 lines
3.3 KiB
YAML
# Mainnet preset
|
|
# Note: the intention of this file (for now) is to illustrate what a mainnet configuration could look like.
|
|
# Some of these constants may still change before the launch of Phase 0.
|
|
|
|
|
|
# Misc
|
|
# ---------------------------------------------------------------
|
|
# 2**10 (= 1,024)
|
|
SHARD_COUNT: 1024
|
|
# 2**7 (= 128)
|
|
TARGET_COMMITTEE_SIZE: 128
|
|
# 2**12 (= 4,096)
|
|
MAX_INDICES_PER_ATTESTATION: 4096
|
|
# 2**2 (= 4)
|
|
MIN_PER_EPOCH_CHURN_LIMIT: 4
|
|
# 2**16 (= 65,536)
|
|
CHURN_LIMIT_QUOTIENT: 65536
|
|
# See issue 563
|
|
SHUFFLE_ROUND_COUNT: 90
|
|
|
|
|
|
# Deposit contract
|
|
# ---------------------------------------------------------------
|
|
# **TBD**
|
|
DEPOSIT_CONTRACT_ADDRESS: 0x1234567890123456789012345678901234567890
|
|
|
|
|
|
# Gwei values
|
|
# ---------------------------------------------------------------
|
|
# 2**0 * 10**9 (= 1,000,000,000) Gwei
|
|
MIN_DEPOSIT_AMOUNT: 1000000000
|
|
# 2**5 * 10**9 (= 32,000,000,000) Gwei
|
|
MAX_EFFECTIVE_BALANCE: 32000000000
|
|
# 2**4 * 10**9 (= 16,000,000,000) Gwei
|
|
EJECTION_BALANCE: 16000000000
|
|
# 2**0 * 10**9 (= 1,000,000,000) Gwei
|
|
EFFECTIVE_BALANCE_INCREMENT: 1000000000
|
|
|
|
|
|
# Initial values
|
|
# ---------------------------------------------------------------
|
|
GENESIS_FORK_VERSION: 0x00000000
|
|
# 0, GENESIS_EPOCH is derived from this constant
|
|
GENESIS_SLOT: 0
|
|
BLS_WITHDRAWAL_PREFIX: 0
|
|
|
|
|
|
# Time parameters
|
|
# ---------------------------------------------------------------
|
|
# 6 seconds 6 seconds
|
|
SECONDS_PER_SLOT: 6
|
|
# 2**2 (= 4) slots 24 seconds
|
|
MIN_ATTESTATION_INCLUSION_DELAY: 4
|
|
# 2**6 (= 64) slots 6.4 minutes
|
|
SLOTS_PER_EPOCH: 64
|
|
# 2**0 (= 1) epochs 6.4 minutes
|
|
MIN_SEED_LOOKAHEAD: 1
|
|
# 2**2 (= 4) epochs 25.6 minutes
|
|
ACTIVATION_EXIT_DELAY: 4
|
|
# 2**10 (= 1,024) slots ~1.7 hours
|
|
SLOTS_PER_ETH1_VOTING_PERIOD: 1024
|
|
# 2**13 (= 8,192) slots ~13 hours
|
|
SLOTS_PER_HISTORICAL_ROOT: 8192
|
|
# 2**8 (= 256) epochs ~27 hours
|
|
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256
|
|
# 2**11 (= 2,048) epochs 9 days
|
|
PERSISTENT_COMMITTEE_PERIOD: 2048
|
|
# 2**6 (= 64) epochs ~7 hours
|
|
MAX_EPOCHS_PER_CROSSLINK: 64
|
|
# 2**2 (= 4) epochs 25.6 minutes
|
|
MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4
|
|
|
|
|
|
# State vector lengths
|
|
# ---------------------------------------------------------------
|
|
# 2**16 (= 65,536) epochs ~0.8 years
|
|
EPOCHS_PER_HISTORICAL_VECTOR: 65536
|
|
# 2**13 (= 8,192) epochs ~36 days
|
|
EPOCHS_PER_SLASHINGS_VECTOR: 8192
|
|
# 2**24 (= 16,777,216) historical roots, ~26,131 years
|
|
HISTORICAL_ROOTS_LIMIT: 16777216
|
|
# 2**40 (= 1,099,511,627,776) validator spots
|
|
VALIDATOR_REGISTRY_LIMIT: 1099511627776
|
|
|
|
|
|
# Reward and penalty quotients
|
|
# ---------------------------------------------------------------
|
|
# 2**5 (= 32)
|
|
BASE_REWARD_FACTOR: 32
|
|
# 2**9 (= 512)
|
|
WHISTLEBLOWER_REWARD_QUOTIENT: 512
|
|
# 2**3 (= 8)
|
|
PROPOSER_REWARD_QUOTIENT: 8
|
|
# 2**25 (= 33,554,432)
|
|
INACTIVITY_PENALTY_QUOTIENT: 33554432
|
|
# 2**5 (= 32)
|
|
MIN_SLASHING_PENALTY_QUOTIENT: 32
|
|
|
|
|
|
# Max operations per block
|
|
# ---------------------------------------------------------------
|
|
# 2**4 (= 16)
|
|
MAX_PROPOSER_SLASHINGS: 16
|
|
# 2**0 (= 1)
|
|
MAX_ATTESTER_SLASHINGS: 1
|
|
# 2**7 (= 128)
|
|
MAX_ATTESTATIONS: 128
|
|
# 2**4 (= 16)
|
|
MAX_DEPOSITS: 16
|
|
# 2**4 (= 16)
|
|
MAX_VOLUNTARY_EXITS: 16
|
|
# Originally 2**4 (= 16), disabled for now.
|
|
MAX_TRANSFERS: 0
|
|
|
|
|
|
# Signature domains
|
|
# ---------------------------------------------------------------
|
|
DOMAIN_BEACON_PROPOSER: 0
|
|
DOMAIN_RANDAO: 1
|
|
DOMAIN_ATTESTATION: 2
|
|
DOMAIN_DEPOSIT: 3
|
|
DOMAIN_VOLUNTARY_EXIT: 4
|
|
DOMAIN_TRANSFER: 5
|