mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-18 05:18:30 +00:00
* linter * Add markdown linter * add env * only check markdown * Add token * Update .github/workflows/test-suite.yml * Markdown linter * Exit code * Update script * rename * mdlint * Add an empty line after end of file * Testing disable * add text * update mdlint.sh * ori validator inclusion * Add config yml file * Remove MD041 and fix advanced-datadir file * FIx validator inclusion file conflict * Merge branch 'unstable' into markdown-linter * change files * Merge branch 'markdown-linter' of https://github.com/chong-he/lighthouse into markdown-linter * mdlint * Remove MD025 * Remove MD036 * Remove MD045 * Removr MD001 * Set MD028 to false * Remove MD024 * Remove MD055 * Remove MD029 * Remove MD040 * Set MD040 to false * Set MD033 to false * Set MD013 to false * Rearrange yml file * Update mdlint.sh and test * Test remove fix * Test with fix * Test with space * Fix summary indentation * Test mdlint.sh * Update mdlint.sh * Test * Update * Test fix * Test again * Fix * merge into check-code * Update scripts/mdlint.sh Co-authored-by: Mac L <mjladson@pm.me> * Update scripts/mdlint.sh Co-authored-by: Mac L <mjladson@pm.me> * Remove set -e * Add comment * Merge pull request #7 from chong-he/unstable Merge unstable to markdown branch * mdlint * Merge branch 'unstable' into markdown-linter * mdlint
65 lines
3.1 KiB
Markdown
65 lines
3.1 KiB
Markdown
# Key Recovery
|
|
|
|
Generally, validator keystore files are generated alongside a *mnemonic*. If
|
|
the keystore and/or the keystore password are lost, this mnemonic can
|
|
regenerate a new, equivalent keystore with a new password.
|
|
|
|
There are two ways to recover keys using the `lighthouse` CLI:
|
|
|
|
- `lighthouse account validator recover`: recover one or more EIP-2335 keystores from a mnemonic.
|
|
These keys can be used directly in a validator client.
|
|
- `lighthouse account wallet recover`: recover an EIP-2386 wallet from a
|
|
mnemonic.
|
|
|
|
## ⚠️ Warning
|
|
|
|
**Recovering validator keys from a mnemonic should only be used as a last
|
|
resort.** Key recovery entails significant risks:
|
|
|
|
- Exposing your mnemonic to a computer at any time puts it at risk of being
|
|
compromised. Your mnemonic is **not encrypted** and is a target for theft.
|
|
- It's completely possible to regenerate a validator keypairs that is already active
|
|
on some other validator client. Running the same keypairs on two different
|
|
validator clients is very likely to result in slashing.
|
|
|
|
## Recover EIP-2335 validator keystores
|
|
|
|
A single mnemonic can generate a practically unlimited number of validator
|
|
keystores using an *index*. Generally, the first time you generate a keystore
|
|
you'll use index 0, the next time you'll use index 1, and so on. Using the same
|
|
index on the same mnemonic always results in the same validator keypair being
|
|
generated (see [EIP-2334](https://eips.ethereum.org/EIPS/eip-2334) for more
|
|
detail).
|
|
|
|
Using the `lighthouse account validator recover` command you can generate the
|
|
keystores that correspond to one or more indices in the mnemonic:
|
|
|
|
- `lighthouse account validator recover`: recover only index `0`.
|
|
- `lighthouse account validator recover --count 2`: recover indices `0, 1`.
|
|
- `lighthouse account validator recover --first-index 1`: recover only index `1`.
|
|
- `lighthouse account validator recover --first-index 1 --count 2`: recover indices `1, 2`.
|
|
|
|
For each of the indices recovered in the above commands, a directory will be
|
|
created in the `--validator-dir` location (default `~/.lighthouse/{network}/validators`)
|
|
which contains all the information necessary to run a validator using the
|
|
`lighthouse vc` command. The password to this new keystore will be placed in
|
|
the `--secrets-dir` (default `~/.lighthouse/{network}/secrets`).
|
|
|
|
where `{network}` is the name of the consensus layer network passed in the `--network` parameter (default is `mainnet`).
|
|
|
|
## Recover a EIP-2386 wallet
|
|
|
|
Instead of creating EIP-2335 keystores directly, an EIP-2386 wallet can be
|
|
generated from the mnemonic. This wallet can then be used to generate validator
|
|
keystores, if desired. For example, the following command will create an
|
|
encrypted wallet named `wally-recovered` from a mnemonic:
|
|
|
|
```
|
|
lighthouse account wallet recover --name wally-recovered
|
|
```
|
|
|
|
**⚠️ Warning:** the wallet will be created with a `nextaccount` value of `0`.
|
|
This means that if you have already generated `n` validators, then the next `n`
|
|
validators generated by this wallet will be duplicates. As mentioned
|
|
previously, running duplicate validators is likely to result in slashing.
|