If Vouch contains a list of validators, and on refresh obtains an empty
list, assume the empty response is a result of an error and do not
remove the existing list in favor of it.
It is possible for network issues to result in an empty response when
requesting an update on the list of validators for which Vouch should
operate. In this situation, where Vouch already has a list of
validators, it retains that list rather than replace it with the empty
results of the request.
If a validator is due to propose a block but cannot obtain the RANDO
reveal it causes Vouch to crash. This change checks for an empty RANDAO
reveal and exits early from the block proposal process on such a
condition.
Fixes#15.
go-eth2-client was missing some defensive checks for server-sent events.
This upgrades to a newer version of go-eth2-client that provides these
checks, giving resiliency in situations where beacon nodes send
malformed or otherwise incorrect messages.
Fixes#10
This metric used to count the number of internal attestation processes
carried out, however a single attestation process can involve multiple
validators if they are attesting in the same slot and committee. This
fix ensures that the metrics reflect the number of attestations, not the
number of processes.
This reintroduces prometheus metrics for the account manager module.
The metrics track the validating state of each account, and are found
under the `vouch_accountmanager_accounts_total` metric. The metrics are
differentiated using the `state` label.
Situation reported where a node returns nil for a beacon block when
scoring attestation data. Although this should not happen (the provider
told us about the block via the attestation, it should know it) this
patch covers the situation where the returned block is empty or
malformed.
Fixes#9