simplify calculate_committee_fraction (#4213)

## Issue Addressed

[#4211](https://github.com/sigp/lighthouse/issues/4211)

## Proposed Changes

This PR conforms the helper function `calculate_committee_fraction` to the [v1.3.0 spec](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/fork-choice.md#get_weight)

## Additional Info

the old definition of `calculate_committee_fraction` is almost identical, but the new definition is simpler.
This commit is contained in:
Eitan Seri-Levi 2023-05-03 09:02:58 +00:00
parent edbb47dd03
commit b1416c8a43
2 changed files with 4 additions and 8 deletions

View File

@ -987,11 +987,11 @@ pub fn get_execution_status_test_definition_03() -> ForkChoiceTestDefinition {
ops.push(Operation::AssertWeight { ops.push(Operation::AssertWeight {
block_root: get_root(0), block_root: get_root(0),
weight: 33_000, weight: 33_250,
}); });
ops.push(Operation::AssertWeight { ops.push(Operation::AssertWeight {
block_root: get_root(1), block_root: get_root(1),
weight: 33_000, weight: 33_250,
}); });
ops.push(Operation::AssertWeight { ops.push(Operation::AssertWeight {
block_root: get_root(2), block_root: get_root(2),
@ -1000,7 +1000,7 @@ pub fn get_execution_status_test_definition_03() -> ForkChoiceTestDefinition {
ops.push(Operation::AssertWeight { ops.push(Operation::AssertWeight {
block_root: get_root(3), block_root: get_root(3),
// This is a "magic number" generated from `calculate_committee_fraction`. // This is a "magic number" generated from `calculate_committee_fraction`.
weight: 31_000, weight: 31_250,
}); });
// Invalidate the payload of 3. // Invalidate the payload of 3.

View File

@ -1055,13 +1055,9 @@ pub fn calculate_committee_fraction<E: EthSpec>(
justified_balances: &JustifiedBalances, justified_balances: &JustifiedBalances,
proposer_score_boost: u64, proposer_score_boost: u64,
) -> Option<u64> { ) -> Option<u64> {
let average_balance = justified_balances let committee_weight = justified_balances
.total_effective_balance .total_effective_balance
.checked_div(justified_balances.num_active_validators)?;
let committee_size = justified_balances
.num_active_validators
.checked_div(E::slots_per_epoch())?; .checked_div(E::slots_per_epoch())?;
let committee_weight = committee_size.checked_mul(average_balance)?;
committee_weight committee_weight
.checked_mul(proposer_score_boost)? .checked_mul(proposer_score_boost)?
.checked_div(100) .checked_div(100)