You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Main source of requirements should be the spec. Attestation is a process of signing off on a segment of canonical chain.
Attestation service is a service that triggers attestation logic in a specific slot that validator is assigned to, its functionality should be pretty similar to ProposerService. There was a reasonable suggestion to use AttestationRecord for single attestation in the way it would be used for aggregated signature, with only one bit set in a bitfield and a signature that is aggregated with nothing.
AttesterService should produce an attestation after block with slot number that attester is assigned to has been imported. Attestation awaiting should be cancelled If block with that slot number does not occur in 2 * CYCLE_LENGTH slots or its slot number becomes less than number of last finalized slot.
AttesterService should start producing an attestation at Genesis.timestamp + slot * SLOT_DURATION + SLOT_DURATION / 2 where slot is a number of slot that attester is assigned to. And it should attest to the head of canonical chain, whatever block it will be.
One more thing that should be kept in mind is a way service is linked with committees, it's described in Per block processing section:
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 the first (ie. item 0 in the array) AttestationRecord object; this attester can be considered to be the proposer of the parent block. In general, when a block is produced, it is broadcasted at the network layer along with the attestation from its proposer.
Basically, it reads about proposer only but other validators from mentioned committee must attest in that slot.
The text was updated successfully, but these errors were encountered:
Abstract
Implement attestation logic and attester service.
Requirements
Main source of requirements should be the spec. Attestation is a process of signing off on a segment of canonical chain.
Attestation service is a service that triggers attestation logic in a specific slot that validator is assigned to, its functionality should be pretty similar to ProposerService. There was a reasonable suggestion to use
AttestationRecord
for single attestation in the way it would be used for aggregated signature, with only one bit set in a bitfield and a signature that is aggregated with nothing.AttesterService
should produce an attestation after block with slot number that attester is assigned to has been imported. Attestation awaiting should be cancelled If block with that slot number does not occur in2 * CYCLE_LENGTH
slots or its slot number becomes less than number of last finalized slot.AttesterService
should start producing an attestation atGenesis.timestamp + slot * SLOT_DURATION + SLOT_DURATION / 2
whereslot
is a number of slot that attester is assigned to. And it should attest to the head of canonical chain, whatever block it will be.One more thing that should be kept in mind is a way service is linked with committees, it's described in Per block processing section:
Basically, it reads about proposer only but other validators from mentioned committee must attest in that slot.
The text was updated successfully, but these errors were encountered: