def config(shard_count, target_committee_size, ejection_balance, max_balance_churn_quotient, beacon_chain_shard_number, max_indices_per_slashable_vote, latest_block_roots_length, latest_index_roots_length, latest_randao_mixes_length, latest_penalized_exit_length, deposit_contract_address, deposit_contract_tree_depth, min_deposit_amount, max_deposit_amount, genesis_fork_version, genesis_slot, genesis_epoch, genesis_start_shard, bls_withdrawal_prefix_byte, slot_duration, min_attestation_inclusion_delay, epoch_length, seed_lookahead, entry_exit_delay, eth1_data_voting_period, min_validator_withdrawal_time, base_reward_quotient, whistleblower_reward_quotient, includer_reward_quotient, inactivity_penalty_quotient, max_proposer_slashings, max_attester_slashings, max_attestations, max_deposits, max_exits): return BeaconConfig( SHARD_COUNT=shard_count, TARGET_COMMITTEE_SIZE=target_committee_size, EJECTION_BALANCE=ejection_balance, MAX_BALANCE_CHURN_QUOTIENT=max_balance_churn_quotient, BEACON_CHAIN_SHARD_NUMBER=beacon_chain_shard_number, MAX_INDICES_PER_SLASHABLE_VOTE=max_indices_per_slashable_vote, LATEST_BLOCK_ROOTS_LENGTH=latest_block_roots_length, LATEST_INDEX_ROOTS_LENGTH=latest_index_roots_length, LATEST_RANDAO_MIXES_LENGTH=latest_randao_mixes_length, LATEST_PENALIZED_EXIT_LENGTH=latest_penalized_exit_length, DEPOSIT_CONTRACT_ADDRESS=deposit_contract_address, DEPOSIT_CONTRACT_TREE_DEPTH=deposit_contract_tree_depth, MIN_DEPOSIT_AMOUNT=min_deposit_amount, MAX_DEPOSIT_AMOUNT=max_deposit_amount, GENESIS_FORK_VERSION=genesis_fork_version, GENESIS_SLOT=genesis_slot, GENESIS_EPOCH=genesis_epoch, GENESIS_START_SHARD=genesis_start_shard, BLS_WITHDRAWAL_PREFIX_BYTE=bls_withdrawal_prefix_byte, SLOT_DURATION=slot_duration, MIN_ATTESTATION_INCLUSION_DELAY=min_attestation_inclusion_delay, EPOCH_LENGTH=epoch_length, SEED_LOOKAHEAD=seed_lookahead, ENTRY_EXIT_DELAY=entry_exit_delay, ETH1_DATA_VOTING_PERIOD=eth1_data_voting_period, MIN_VALIDATOR_WITHDRAWAL_TIME=min_validator_withdrawal_time, BASE_REWARD_QUOTIENT=base_reward_quotient, WHISTLEBLOWER_REWARD_QUOTIENT=whistleblower_reward_quotient, INCLUDER_REWARD_QUOTIENT=includer_reward_quotient, INACTIVITY_PENALTY_QUOTIENT=inactivity_penalty_quotient, MAX_PROPOSER_SLASHINGS=max_proposer_slashings, MAX_ATTESTER_SLASHINGS=max_attester_slashings, MAX_ATTESTATIONS=max_attestations, MAX_DEPOSITS=max_deposits, MAX_EXITS=max_exits, )
SERENITY_CONFIG = BeaconConfig( # Misc SHARD_COUNT=2**10, # (= 1,024) shards TARGET_COMMITTEE_SIZE=2**7, # (= 128) validators EJECTION_BALANCE=Ether(2**4), # (= 16) ETH MAX_BALANCE_CHURN_QUOTIENT=2**5, # (= 32) BEACON_CHAIN_SHARD_NUMBER=ShardNumber(2**64 - 1), MAX_CASPER_VOTES=2**10, # (= 1,024) votes LATEST_BLOCK_ROOTS_LENGTH=2**13, # (= 8,192) block roots LATEST_RANDAO_MIXES_LENGTH=2**13, # (= 8,192) randao mixes LATEST_PENALIZED_EXIT_LENGTH=2**13, # (= 8,192) randao mixes # Deposit contract DEPOSIT_CONTRACT_ADDRESS=ZERO_ADDRESS, # TBD DEPOSIT_CONTRACT_TREE_DEPTH=2**5, # (= 32) MIN_DEPOSIT=Ether(2**0), # (= 1) ETH MAX_DEPOSIT=Ether(2**5), # (= 32) ETH # Initial values GENESIS_FORK_VERSION=0, GENESIS_SLOT=SlotNumber(0), GENESIS_START_SHARD=ShardNumber(0), BLS_WITHDRAWAL_PREFIX_BYTE=b'\x00', # Time parameters SLOT_DURATION=Second(6), # seconds MIN_ATTESTATION_INCLUSION_DELAY=2**2, # (= 4) slots EPOCH_LENGTH=2**6, # (= 64) slots SEED_LOOKAHEAD=2**6, # (= 64) slots ENTRY_EXIT_DELAY=2**8, # (= 256) slots ETH1_DATA_VOTING_PERIOD=2**10, # (= 1,024) slots MIN_VALIDATOR_WITHDRAWAL_TIME=2**14, # (= 16,384) slots # Reward and penalty quotients BASE_REWARD_QUOTIENT=2**10, # (= 1,024) WHISTLEBLOWER_REWARD_QUOTIENT=2**9, # (= 512) INCLUDER_REWARD_QUOTIENT=2**3, # (= 8) INACTIVITY_PENALTY_QUOTIENT=2**24, # (= 16,777,216) # Max operations per block MAX_PROPOSER_SLASHINGS=2**4, # (= 16) MAX_CASPER_SLASHINGS=2**4, # (= 16) MAX_ATTESTATIONS=2**7, # (= 128) MAX_DEPOSITS=2**4, # (= 16) MAX_EXITS=2**4, # (= 16) )