If a Vouch instance has many wallets it can be slow to start up, as
wallet information is fetched in sequence. This changes the methodology
to fetch wallets to be parallel, allowing for faster startup times even
when there are many wallets in use.
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.
(cherry picked from commit 52c58216cb)
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.
(cherry picked from commit fb2d95e97b)
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.