Merge pull request #890 from ethereum/proto-fix-justification-bitfield

limit bit-length of justification bitfield to strict 64
This commit is contained in:
Danny Ryan 2019-04-12 18:59:42 +10:00 committed by GitHub
commit ce0f52b52d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 2 deletions

View File

@ -1812,8 +1812,8 @@ def update_justification_and_finalization(state: BeaconState) -> None:
new_justified_epoch = state.current_justified_epoch new_justified_epoch = state.current_justified_epoch
new_finalized_epoch = state.finalized_epoch new_finalized_epoch = state.finalized_epoch
# Rotate the justification bitfield up one epoch to make room for the current epoch # Rotate the justification bitfield up one epoch to make room for the current epoch (and limit to 64 bits)
state.justification_bitfield <<= 1 state.justification_bitfield = (state.justification_bitfield << 1) % 2**64
# If the previous epoch gets justified, fill the second last bit # If the previous epoch gets justified, fill the second last bit
previous_boundary_attesting_balance = get_attesting_balance(state, get_previous_epoch_boundary_attestations(state)) previous_boundary_attesting_balance = get_attesting_balance(state, get_previous_epoch_boundary_attestations(state))
if previous_boundary_attesting_balance * 3 >= get_previous_total_balance(state) * 2: if previous_boundary_attesting_balance * 3 >= get_previous_total_balance(state) * 2: