Cosmetic improvement to reward/penalty functions

This commit is contained in:
vbuterin 2019-03-21 16:29:14 -05:00 committed by GitHub
parent 5fef8ea339
commit 3b403909e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 12 deletions

View File

@ -1995,12 +1995,8 @@ def compute_inactivity_leak_deltas(state: BeaconState) -> Tuple[List[Gwei], List
```python ```python
def get_crosslink_deltas(state: BeaconState) -> Tuple[List[Gwei], List[Gwei]]: def get_crosslink_deltas(state: BeaconState) -> Tuple[List[Gwei], List[Gwei]]:
# deltas[0] for rewards rewards = [0 for index in range(len(state.validator_registry))]
# deltas[1] for penalties penalties = [0 for index in range(len(state.validator_registry))]
deltas = [
[0 for index in range(len(state.validator_registry))],
[0 for index in range(len(state.validator_registry))]
]
previous_epoch_start_slot = get_epoch_start_slot(get_previous_epoch(state)) previous_epoch_start_slot = get_epoch_start_slot(get_previous_epoch(state))
current_epoch_start_slot = get_epoch_start_slot(get_current_epoch(state)) current_epoch_start_slot = get_epoch_start_slot(get_current_epoch(state))
for slot in range(previous_epoch_start_slot, current_epoch_start_slot): for slot in range(previous_epoch_start_slot, current_epoch_start_slot):
@ -2010,10 +2006,10 @@ def get_crosslink_deltas(state: BeaconState) -> Tuple[List[Gwei], List[Gwei]]:
total_balance = get_total_balance(state, crosslink_committee) total_balance = get_total_balance(state, crosslink_committee)
for index in crosslink_committee: for index in crosslink_committee:
if index in participants: if index in participants:
deltas[0][index] += get_base_reward(state, index) * participating_balance // total_balance rewards[index] += get_base_reward(state, index) * participating_balance // total_balance
else: else:
deltas[1][index] += get_base_reward(state, index) penalties[index] += get_base_reward(state, index)
return deltas return [rewards, penalties]
``` ```
#### Apply rewards #### Apply rewards
@ -2022,12 +2018,12 @@ Run the following:
```python ```python
def apply_rewards(state: BeaconState) -> None: def apply_rewards(state: BeaconState) -> None:
deltas1 = get_justification_and_finalization_deltas(state) rewards1, penalties1 = get_justification_and_finalization_deltas(state)
deltas2 = get_crosslink_deltas(state) rewards2, penalties2 = get_crosslink_deltas(state)
for i in range(len(state.validator_registry)): for i in range(len(state.validator_registry)):
state.validator_balances[i] = max( state.validator_balances[i] = max(
0, 0,
state.validator_balances[i] + deltas1[0][i] + deltas2[0][i] - deltas1[1][i] - deltas2[1][i] state.validator_balances[i] + rewards1[i] + rewards2[i] - penalties1[i] - penalties2[i]
) )
``` ```