lighthouse/consensus/types/src
Paul Hauner 1373dcf076 Add validator-manager (#3502)
## Issue Addressed

Addresses #2557

## Proposed Changes

Adds the `lighthouse validator-manager` command, which provides:

- `lighthouse validator-manager create`
    - Creates a `validators.json` file and a `deposits.json` (same format as https://github.com/ethereum/staking-deposit-cli)
- `lighthouse validator-manager import`
    - Imports validators from a `validators.json` file to the VC via the HTTP API.
- `lighthouse validator-manager move`
    - Moves validators from one VC to the other, utilizing only the VC API.

## Additional Info

In 98bcb947c I've reduced some VC `ERRO` and `CRIT` warnings to `WARN` or `DEBG` for the case where a pubkey is missing from the validator store. These were being triggered when we removed a validator but still had it in caches. It seems to me that `UnknownPubkey` will only happen in the case where we've removed a validator, so downgrading the logs is prudent. All the logs are `DEBG` apart from attestations and blocks which are `WARN`. I thought having *some* logging about this condition might help us down the track.

In 856cd7e37d I've made the VC delete the corresponding password file when it's deleting a keystore. This seemed like nice hygiene. Notably, it'll only delete that password file after it scans the validator definitions and finds that no other validator is also using that password file.
2023-08-08 00:03:22 +00:00
..
beacon_state CommitteeCache.get_all_beacon_committees: set correct capacity to avoid realloc (#4557) 2023-08-02 23:50:43 +00:00
test_utils Rust 1.71 lints (#4503) 2023-07-17 00:14:19 +00:00
aggregate_and_proof.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
application_domain.rs Register validator api (#3194) 2022-06-30 00:49:21 +00:00
attestation_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
attestation_duty.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
attestation.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
attester_slashing.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
beacon_block_body.rs Add broadcast validation routes to Beacon Node HTTP API (#4316) 2023-06-29 12:02:38 +00:00
beacon_block_header.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
beacon_block.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
beacon_committee.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
beacon_state.rs Rust 1.71 lints (#4503) 2023-07-17 00:14:19 +00:00
bls_to_execution_change.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
builder_bid.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
chain_spec.rs Shift networking configuration (#4426) 2023-08-03 01:51:47 +00:00
checkpoint.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
config_and_preset.rs Shift subnet backbone structure (attnets revamp) (#4304) 2023-05-30 06:15:56 +00:00
consts.rs Clean capella (#4019) 2023-03-01 03:19:02 +00:00
contribution_and_proof.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
deposit_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
deposit_message.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
deposit_tree_snapshot.rs Use JSON by default for Deposit Snapshot Sync (#4397) 2023-06-15 08:42:20 +00:00
deposit.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
enr_fork_id.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
eth1_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
eth_spec.rs Update gnosis capella preset (#4302) 2023-05-19 10:07:12 +00:00
execution_block_hash.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
execution_block_header.rs Verify blockHash with withdrawals 2023-01-13 12:46:54 +11:00
execution_payload_header.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
execution_payload.rs Rust 1.71 lints (#4503) 2023-07-17 00:14:19 +00:00
fork_context.rs Clean capella (#4019) 2023-03-01 03:19:02 +00:00
fork_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
fork_name.rs Implement el_offline and use it in the VC (#4295) 2023-05-17 05:51:56 +00:00
fork_versioned_response.rs Remove the unused ExecutionOptimisticForkVersionedResponse type (#4160) 2023-04-12 01:48:21 +00:00
fork.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
graffiti.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
historical_batch.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
historical_summary.rs Merge remote-tracking branch 'origin/unstable' into capella 2023-01-12 16:22:00 +11:00
indexed_attestation.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
lib.rs Add validator-manager (#3502) 2023-08-08 00:03:22 +00:00
light_client_bootstrap.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
light_client_finality_update.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
light_client_optimistic_update.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
light_client_update.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
participation_flags.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
participation_list.rs Rust 1.71 lints (#4503) 2023-07-17 00:14:19 +00:00
payload.rs Reduce false positive logging for late builder blocks (#4073) 2023-03-17 00:44:03 +00:00
pending_attestation.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
preset.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
proposer_preparation_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
proposer_slashing.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
relative_epoch.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
selection_proof.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
shuffling_id.rs Optimize validator duties (#2243) 2021-03-17 05:09:57 +00:00
signed_aggregate_and_proof.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
signed_beacon_block_header.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
signed_beacon_block.rs Clean capella (#4019) 2023-03-01 03:19:02 +00:00
signed_bls_to_execution_change.rs Broadcast address changes at Capella (#3919) 2023-02-07 17:13:49 +11:00
signed_contribution_and_proof.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
signed_voluntary_exit.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
signing_data.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
slot_data.rs [Altair] Sync committee pools (#2321) 2021-07-15 00:52:02 +00:00
slot_epoch_macros.rs Use SmallVec for TreeHash packed encoding (#3581) 2022-09-16 08:54:06 +00:00
slot_epoch.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sqlite.rs Directory Restructure (#1163) 2020-05-18 21:24:23 +10:00
subnet_id.rs Shift networking configuration (#4426) 2023-08-03 01:51:47 +00:00
sync_aggregate.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
sync_aggregator_selection_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_committee_contribution.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_committee_message.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_committee_subscription.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_committee.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
sync_duty.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_selection_proof.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_subnet_id.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
tree_hash_impls.rs Fixes to make EF Capella tests pass (#3719) 2022-11-14 13:14:31 -06:00
validator_registration_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
validator_subscription.rs Implement standard eth2.0 API (#1569) 2020-10-01 11:12:36 +10:00
validator.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
voluntary_exit.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
withdrawal_credentials.rs Add validator-manager (#3502) 2023-08-08 00:03:22 +00:00
withdrawal.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00