The basic scheduler has shown weakness when handling high load, which
manifests with the occasional deadlock situation. This introduces an
advanced scheduler, which contains additional features in an attempt to
ensure that regardless of the concurrent load no job is ever left in an
inconsistent state, explicitly with outstanding items to read on its
channels.
`vouch_ready` is a prometheus metric that is `0` if Vouch is not yet
ready to validate, and `1` if it is.
`vouch_release` has a labeled value `version` that contains the release
version of Vouch.
This option allows users to control the maximum amount of time that
Vouch will wait for a block to arrive before starting its attestation
process. Note that this is a spec value, so changes can have a highly
detrimental impact on Vouch's behaviour.
This adds a label `epoch_slot` to the prometheus metric
`vouch_block_receipt_delay_seconds`. It has been noted that the receipt
delay is often significantly higher for the first (and, to a lesser
extent, second) slot in a given epoch. This allows the receipt delay to
be examined for specific slots in a given epoch.
The "best" aggregate attestation strategy obtains aggregate attestations
from all listed nodes, scores them according to their attestation
coverage, and signs and broadcasts the one with the highest coverage.
The "first" aggregate attestation strategy signs and broadcasts the
first aggregate attestation returned from all listed nodes.