set committees root for next epoch rather tahn ACTIVaTION_EXIT_DELAY in the future
This commit is contained in:
parent
990cc55db7
commit
5a8f3e495a
|
@ -698,6 +698,9 @@ def get_shard_delta(state: BeaconState, epoch: Epoch) -> int:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
def get_epoch_start_shard(state: BeaconState, epoch: Epoch) -> Shard:
|
def get_epoch_start_shard(state: BeaconState, epoch: Epoch) -> Shard:
|
||||||
|
"""
|
||||||
|
Return the start shard of the 0th committee in an epoch.
|
||||||
|
"""
|
||||||
assert epoch <= get_current_epoch(state) + 1
|
assert epoch <= get_current_epoch(state) + 1
|
||||||
check_epoch = Epoch(get_current_epoch(state) + 1)
|
check_epoch = Epoch(get_current_epoch(state) + 1)
|
||||||
shard = Shard((state.start_shard + get_shard_delta(state, get_current_epoch(state))) % SHARD_COUNT)
|
shard = Shard((state.start_shard + get_shard_delta(state, get_current_epoch(state))) % SHARD_COUNT)
|
||||||
|
@ -767,7 +770,7 @@ def get_compact_committees_root(state: BeaconState, epoch: Epoch) -> Hash:
|
||||||
committees[shard].pubkeys.append(validator.pubkey)
|
committees[shard].pubkeys.append(validator.pubkey)
|
||||||
compact_balance = validator.effective_balance // EFFECTIVE_BALANCE_INCREMENT
|
compact_balance = validator.effective_balance // EFFECTIVE_BALANCE_INCREMENT
|
||||||
# `index` (top 6 bytes) + `slashed` (16th bit) + `compact_balance` (bottom 15 bits)
|
# `index` (top 6 bytes) + `slashed` (16th bit) + `compact_balance` (bottom 15 bits)
|
||||||
compact_validator = uint64(index << 16 + validator.slashed << 15 + compact_balance)
|
compact_validator = uint64((index << 16) + (validator.slashed << 15) + compact_balance)
|
||||||
committees[shard].compact_validators.append(compact_validator)
|
committees[shard].compact_validators.append(compact_validator)
|
||||||
return hash_tree_root(Vector[CompactCommittee, SHARD_COUNT](committees))
|
return hash_tree_root(Vector[CompactCommittee, SHARD_COUNT](committees))
|
||||||
```
|
```
|
||||||
|
@ -782,7 +785,7 @@ def generate_seed(state: BeaconState,
|
||||||
"""
|
"""
|
||||||
return hash(
|
return hash(
|
||||||
get_randao_mix(state, Epoch(epoch + EPOCHS_PER_HISTORICAL_VECTOR - MIN_SEED_LOOKAHEAD)) +
|
get_randao_mix(state, Epoch(epoch + EPOCHS_PER_HISTORICAL_VECTOR - MIN_SEED_LOOKAHEAD)) +
|
||||||
state.compact_committees_roots[epoch] +
|
state.compact_committees_roots[epoch % EPOCHS_PER_HISTORICAL_VECTOR] +
|
||||||
int_to_bytes(epoch, length=32)
|
int_to_bytes(epoch, length=32)
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
@ -1546,7 +1549,7 @@ def process_final_updates(state: BeaconState) -> None:
|
||||||
state.start_shard = Shard((state.start_shard + get_shard_delta(state, current_epoch)) % SHARD_COUNT)
|
state.start_shard = Shard((state.start_shard + get_shard_delta(state, current_epoch)) % SHARD_COUNT)
|
||||||
# Set active index root
|
# Set active index root
|
||||||
index_root_position = (next_epoch + ACTIVATION_EXIT_DELAY) % EPOCHS_PER_HISTORICAL_VECTOR
|
index_root_position = (next_epoch + ACTIVATION_EXIT_DELAY) % EPOCHS_PER_HISTORICAL_VECTOR
|
||||||
state.compact_committees_roots[index_root_position] = get_compact_committees_root(state, next_epoch + ACTIVATION_EXIT_DELAY)
|
state.compact_committees_roots[index_root_position] = get_compact_committees_root(state, next_epoch)
|
||||||
# Set total slashed balances
|
# Set total slashed balances
|
||||||
state.slashed_balances[next_epoch % EPOCHS_PER_SLASHED_BALANCES_VECTOR] = (
|
state.slashed_balances[next_epoch % EPOCHS_PER_SLASHED_BALANCES_VECTOR] = (
|
||||||
state.slashed_balances[current_epoch % EPOCHS_PER_SLASHED_BALANCES_VECTOR]
|
state.slashed_balances[current_epoch % EPOCHS_PER_SLASHED_BALANCES_VECTOR]
|
||||||
|
|
Loading…
Reference in New Issue