Add proposer validity rule: Verify that the parent.slot_number % len(get_shards_and_committees_for_slot(crystallized_state, parent.slot_number)[0].committee)'th attester in get_shards_and_committees_for_slot(crystallized_state, parent.slot_number)[0] is part of at least one of the AttestationRecord objects; this attester can be considered to be the proposer of the parent block.
EDIT: added to spec:
is part of the first (ie. item 0 in the array) AttestationRecord object
Issue
v2.1 now has updated logic to support proposer validation.
Proposed implementation
(EDIT: sync with the latest spec)
slot <= parent.slot_number and slot >= max(parent.slot_number - CYCLE_LENGTH + 1, 0)
parent.slot_number % len(get_shards_and_committees_for_slot(crystallized_state, parent.slot_number)[0].committee)
'th attester inget_shards_and_committees_for_slot(crystallized_state, parent.slot_number)[0]
is part of at least one of theAttestationRecord
objects; this attester can be considered to be the proposer of the parent block.EDIT: added to spec: