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, self.active_validator_indices,
spec.shuffle_round_count, spec.shuffle_round_count,
&self.shuffling_seed[..], &self.shuffling_seed[..],
true, false,
) )
.ok_or_else(|| Error::UnableToShuffle)? .ok_or_else(|| Error::UnableToShuffle)?
}; };

View File

@ -27,7 +27,7 @@ fn do_sane_cache_test(
active_indices, active_indices,
spec.shuffle_round_count, spec.shuffle_round_count,
&expected_seed[..], &expected_seed[..],
true, false,
) )
.unwrap(); .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. /// Credits to [@protolambda](https://github.com/protolambda) for defining this algorithm.
/// ///
/// Shuffles if `forwards == true`, otherwise un-shuffles. /// 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: /// Returns `None` under any of the following conditions:
/// - `list_size == 0` /// - `list_size == 0`