spec: fix shuffle direction in get_crosslink_committees_at_slot

This commit is contained in:
Michael Sproul 2019-04-03 17:15:07 +11:00
parent 19fad1012f
commit b801303374
No known key found for this signature in database
GPG Key ID: 77B1309D2E54E914
3 changed files with 4 additions and 2 deletions

View File

@ -288,7 +288,7 @@ impl EpochCrosslinkCommitteesBuilder {
self.active_validator_indices,
spec.shuffle_round_count,
&self.shuffling_seed[..],
true,
false,
)
.ok_or_else(|| Error::UnableToShuffle)?
};

View File

@ -27,7 +27,7 @@ fn do_sane_cache_test(
active_indices,
spec.shuffle_round_count,
&expected_seed[..],
true,
false,
)
.unwrap();

View File

@ -18,6 +18,8 @@ const TOTAL_SIZE: usize = SEED_SIZE + ROUND_SIZE + POSITION_WINDOW_SIZE;
/// Credits to [@protolambda](https://github.com/protolambda) for defining this algorithm.
///
/// Shuffles if `forwards == true`, otherwise un-shuffles.
/// It holds that: shuffle_list(shuffle_list(l, r, s, true), r, s, false) == l
/// and: shuffle_list(shuffle_list(l, r, s, false), r, s, true) == l
///
/// Returns `None` under any of the following conditions:
/// - `list_size == 0`