Skip to content

Commit

Permalink
Merge pull request #641 from paulhauner/patch-11
Browse files Browse the repository at this point in the history
Fix out-of-bounds in `get_shuffling`
  • Loading branch information
djrtwo authored Feb 18, 2019
2 parents 75e649c + 4baa130 commit 0bc3998
Showing 1 changed file with 7 additions and 14 deletions.
21 changes: 7 additions & 14 deletions specs/core/0_beacon-chain.md
Original file line number Diff line number Diff line change
Expand Up @@ -798,23 +798,16 @@ def get_shuffling(seed: Bytes32,
validators: List[Validator],
epoch: Epoch) -> List[List[ValidatorIndex]]
"""
Shuffle ``validators`` into crosslink committees seeded by ``seed`` and ``epoch``.
Return a list of ``committees_per_epoch`` committees where each
committee is itself a list of validator indices.
Shuffle active validators and split into crosslink committees.
Return a list of committees (each a list of validator indices).
"""

# Shuffle active validator indices
active_validator_indices = get_active_validator_indices(validators, epoch)
length = len(active_validator_indices)
shuffled_indices = [active_validator_indices[get_permuted_index(i, length, seed)] for i in range(length)]

committees_per_epoch = get_epoch_committee_count(len(active_validator_indices))

# Shuffle
shuffled_active_validator_indices = [
active_validator_indices[get_permuted_index(i, len(active_validator_indices), seed)]
for i in active_validator_indices
]

# Split the shuffled list into committees_per_epoch pieces
return split(shuffled_active_validator_indices, committees_per_epoch)
# Split the shuffled active validator indices
return split(shuffled_indices, get_epoch_committee_count(length))
```

**Invariant**: if `get_shuffling(seed, validators, epoch)` returns some value `x` for some `epoch <= get_current_epoch(state) + ACTIVATION_EXIT_DELAY`, it should return the same value `x` for the same `seed` and `epoch` and possible future modifications of `validators` forever in phase 0, and until the ~1 year deletion delay in phase 2 and in the future.
Expand Down

0 comments on commit 0bc3998

Please sign in to comment.