Commit Graph

124 Commits

Author SHA1 Message Date
Jim McDonald ffa5ce8834
Disable ARM64 build. 2021-08-19 07:55:17 +01:00
Jim McDonald 2c30279ead
Name rc1. 2021-08-19 03:12:41 +01:00
Jim McDonald b9b84431f6
Update workflow. 2021-08-19 03:11:51 +01:00
Jim McDonald ada4c29aec
Merge pull request #27 from attestantio/altair
Altair support.
2021-08-19 03:04:35 +01:00
Jim McDonald 8bfe31a47b
Updates for release candidate 1. 2021-08-18 12:38:02 +01:00
Jim McDonald b927f3afed
Update documentation for sync committee contribution strategy. 2021-08-15 00:01:57 +01:00
Jim McDonald 945c85fb30
Add sync committee contribution strategy. 2021-08-15 00:00:02 +01:00
Jim McDonald d7efbd856b
Sync committee slot offset.
Ensure that sync committee messages are created for the slots of the
sync period, rather than in the slots of the sync period.
2021-08-02 19:53:57 +01:00
Jim McDonald 2a17229b39
Tidy ups for sync committee scheduling. 2021-08-02 19:53:56 +01:00
Jim McDonald 7bdcb4be2b
Update tests. 2021-08-02 19:53:56 +01:00
Jim McDonald dcf8a81058
Update go-eth2-client version. 2021-08-02 19:53:56 +01:00
Jim McDonald 34d6df9312
Work for Altair. 2021-08-02 19:53:47 +01:00
Jim McDonald 2eba0ed622
Merge pull request #25 from attestantio/parallel-decrypt
Decrypt local accounts in parallel.
2021-08-02 19:53:31 +01:00
Jim McDonald 01fb65a1ed
Decrypt local accounts in parallel.
This changes the wallet account manager to decrypt accounts in parallel,
to reduce the time taken to update accounts on startup and refresh.
2021-08-02 19:25:38 +01:00
Jim McDonald c104742e60
Merge pull request #24 from attestantio/advanced-scheduler
Add advanced scheduler.
2021-07-27 16:46:32 +01:00
Jim McDonald 3e1b529ec5
Add advanced scheduler.
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.
2021-07-27 16:28:50 +01:00
Jim McDonald 31f873fbb1
Merge pull request #23 from attestantio/waitgroup-wait
Wait for waitgroup to complete.
2021-07-26 10:54:58 +01:00
Jim McDonald fa7e37fee7
Wait for waitgroup to complete. 2021-07-23 23:18:25 +01:00
Jim McDonald 073eff2515
Merge pull request #22 from attestantio/parallel-dirk
Use process-concurrency for Dirk accountmanager.
2021-07-23 12:19:43 +01:00
Jim McDonald c10f060848
Use process-concurrency for Dirk accountmanager.
The Dirk accountmanager was using a local scatter/gather concurrency
method to obtain wallets, however this uses the parallelism of the Vouch
server rather than the Dirk server.  This chnages the Dirk
accountmanager to use a configuration value to select the concurrency
level.

This also standardizes the use of process concurency to allow for
hierarchical definition of the value.
2021-07-22 22:35:09 +01:00
Jim McDonald 700d1a19d9
Merge pull request #21 from attestantio/linting
Linting.
2021-07-19 12:22:18 +01:00
Jim McDonald bf88473145
Merge pull request #20 from attestantio/spec-phase0
Remove spec import alias.
2021-07-19 12:22:01 +01:00
Jim McDonald 919a519b32
Linting.
Fix lint warnings given by revive (successor to golint).
2021-07-18 07:46:01 +01:00
Jim McDonald 41afb240c2
Remove spec import alias.
Specification imports for phase0 were aliased as 'spec'.  Due to the
mechanism decided upon to manage structs that vary beteween hard forks
this is no longer useful, so this removes the alias in preparation for
the Altair hard fork.
2021-07-18 07:34:43 +01:00
Jim McDonald 4598f9f639
Merge pull request #19 from attestantio/mixed-accounts
Separate accounts before batch signing.
2021-06-27 12:36:29 +01:00
Jim McDonald 30702489e3
Merge pull request #18 from attestantio/scatter-wallet-fetch
Fetch remote wallet information in parallel
2021-06-27 12:36:20 +01:00
Jim McDonald b1f9b940f7
Separate accounts before batch signing.
Accounts and distributed accounts were bundled up together for signing.
This was non-optimal, as they have different requirements (single shot
Vs. distributed threshold).  This separates them in to two groups, and
signs them as separate sets of requests.
2021-06-26 14:40:10 +01:00
Jim McDonald d175f068ff
Fetch remote wallet information in parallel
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.
2021-06-26 14:33:18 +01:00
Jim McDonald 820ef73a9d
Merge pull request #17 from attestantio/strategy-monitor
Strategy monitor.
2021-05-21 12:30:15 +01:00
Jim McDonald f24671e4fb
Reduce log level of debug message. 2021-05-19 15:34:15 +01:00
Jim McDonald b825ba40b7
Add metrics to track strategy operations. 2021-05-19 15:29:23 +01:00
Jim McDonald 1439ee1937
Merge pull request #16 from attestantio/reorgs
Rework conditions for reorgs.
2021-05-04 17:56:21 +01:00
Jim McDonald dc0847acfd
Rework conditions for reorgs.
Avoid refetching attestation and proposal duties when not necessary in
the situation where a block for slot 0 of the epoch is not presented.
2021-05-04 10:51:25 +01:00
Jim McDonald fba445ced0
Sync changelog with 1.0.x branch. 2021-03-13 20:16:12 +00:00
Jim McDonald c377442e24
Do not overwrite validator list with null.
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)
2021-03-06 00:27:50 +00:00
Jim McDonald 88a8c2978b
Tidy-ups. 2021-03-06 00:23:34 +00:00
Jim McDonald 5950f8f562
Address crash when proposing block.
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)
2021-03-06 00:17:31 +00:00
Jim McDonald 3b6e160fb8
Provide flag to enable chain reorganisations. 2021-02-24 22:05:11 +00:00
Jim McDonald 5cc55776fb
Merge pull request #14 from attestantio/remove-dependency
Remove dependency on Dirk.
2021-02-16 11:49:22 +00:00
Jim McDonald 93be4a3df6
Remove dependency on Dirk.
An earlier commit introduced a dependency on the attestantio/dirk
repository that is unnecessary.  This change removes that dependency,
and related references to Dirk.
2021-02-15 10:12:02 +00:00
Jim McDonald 999b9520c2
Bump version. 2021-02-01 19:28:56 +00:00
Jim McDonald f56fa48655
Add `vouch_ready` and `vouch_release` metrics.
`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.
2021-02-01 19:27:06 +00:00
Jim McDonald 05e5464948
Reduce log message 2021-02-01 16:11:13 +00:00
Jim McDonald 1ec2f4e4a9
Merge pull request #13 from attestantio/reorgs
Handle chain reorganisations.
2021-02-01 16:10:33 +00:00
Jim McDonald 443ca18d4e
Handle chain reorganisations.
When a chain reorganisation occurs it is possible that this impacts
Vouch's attestations and proposals for the current and next epoch.  This
patch listens to the Ethereum 2 events stream for reorganisation
notifications.  If it finds one it cancels existing and creates new
duties, as required.
2021-01-31 13:49:15 +00:00
Gary Rowe 648e506413
Merge pull request #11 from attestantio/remove-lock
Remove unused lock.
2020-12-31 10:09:14 +00:00
Gary Rowe 4c45a7a0ed
Merge pull request #12 from attestantio/max-attestation-delay
Max attestation delay
2020-12-31 10:07:10 +00:00
Jim McDonald 4e2aaf6c5c
Add `controller.max-attestation-delay`
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.
2020-12-30 23:12:05 +00:00
Jim McDonald a17f71a90d
Update mocks.
Create mocks for services that do not have them.
Update eth2client mock with more mocks.
2020-12-30 22:07:47 +00:00
Jim McDonald 67f7078828
Remove unused lock.
This removes a mutex lock followed by an unlock that has no code
inbetween.  This was a remnant from when job management was handled
within the control function, and is no longer required.
2020-12-30 16:56:06 +00:00