mirror of
https://github.com/status-im/eth2.0-specs.git
synced 2025-02-17 21:16:52 +00:00
Merge pull request #699 from ethereum/start_shard_bug
fix committee assignment bugs
This commit is contained in:
commit
146aef313e
@ -877,19 +877,22 @@ def get_crosslink_committees_at_slot(state: BeaconState,
|
|||||||
shuffling_epoch = state.previous_shuffling_epoch
|
shuffling_epoch = state.previous_shuffling_epoch
|
||||||
shuffling_start_shard = state.previous_shuffling_start_shard
|
shuffling_start_shard = state.previous_shuffling_start_shard
|
||||||
elif epoch == next_epoch:
|
elif epoch == next_epoch:
|
||||||
current_committees_per_epoch = get_current_epoch_committee_count(state)
|
|
||||||
committees_per_epoch = get_next_epoch_committee_count(state)
|
|
||||||
shuffling_epoch = next_epoch
|
|
||||||
|
|
||||||
epochs_since_last_registry_update = current_epoch - state.validator_registry_update_epoch
|
epochs_since_last_registry_update = current_epoch - state.validator_registry_update_epoch
|
||||||
if registry_change:
|
if registry_change:
|
||||||
|
committees_per_epoch = get_next_epoch_committee_count(state)
|
||||||
seed = generate_seed(state, next_epoch)
|
seed = generate_seed(state, next_epoch)
|
||||||
|
shuffling_epoch = next_epoch
|
||||||
|
current_committees_per_epoch = get_current_epoch_committee_count(state)
|
||||||
shuffling_start_shard = (state.current_shuffling_start_shard + current_committees_per_epoch) % SHARD_COUNT
|
shuffling_start_shard = (state.current_shuffling_start_shard + current_committees_per_epoch) % SHARD_COUNT
|
||||||
elif epochs_since_last_registry_update > 1 and is_power_of_two(epochs_since_last_registry_update):
|
elif epochs_since_last_registry_update > 1 and is_power_of_two(epochs_since_last_registry_update):
|
||||||
|
committees_per_epoch = get_next_epoch_committee_count(state)
|
||||||
seed = generate_seed(state, next_epoch)
|
seed = generate_seed(state, next_epoch)
|
||||||
|
shuffling_epoch = next_epoch
|
||||||
shuffling_start_shard = state.current_shuffling_start_shard
|
shuffling_start_shard = state.current_shuffling_start_shard
|
||||||
else:
|
else:
|
||||||
|
committees_per_epoch = get_current_epoch_committee_count(state)
|
||||||
seed = state.current_shuffling_seed
|
seed = state.current_shuffling_seed
|
||||||
|
shuffling_epoch = state.current_shuffling_epoch
|
||||||
shuffling_start_shard = state.current_shuffling_start_shard
|
shuffling_start_shard = state.current_shuffling_start_shard
|
||||||
|
|
||||||
shuffling = get_shuffling(
|
shuffling = get_shuffling(
|
||||||
@ -2093,8 +2096,8 @@ def update_validator_registry(state: BeaconState) -> None:
|
|||||||
|
|
||||||
and perform the following updates:
|
and perform the following updates:
|
||||||
|
|
||||||
* Set `state.current_shuffling_epoch = next_epoch`
|
|
||||||
* Set `state.current_shuffling_start_shard = (state.current_shuffling_start_shard + get_current_epoch_committee_count(state)) % SHARD_COUNT`
|
* Set `state.current_shuffling_start_shard = (state.current_shuffling_start_shard + get_current_epoch_committee_count(state)) % SHARD_COUNT`
|
||||||
|
* Set `state.current_shuffling_epoch = next_epoch`
|
||||||
* Set `state.current_shuffling_seed = generate_seed(state, state.current_shuffling_epoch)`
|
* Set `state.current_shuffling_seed = generate_seed(state, state.current_shuffling_epoch)`
|
||||||
|
|
||||||
If a validator registry update does _not_ happen do the following:
|
If a validator registry update does _not_ happen do the following:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user