mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-18 13:28:33 +00:00
Markdown linter (#5494)
* 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
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
# Become an Ethereum Consensus Mainnet Validator
|
||||
|
||||
[launchpad]: https://launchpad.ethereum.org/
|
||||
[lh-book]: https://lighthouse-book.sigmaprime.io/
|
||||
[advanced-datadir]: ./advanced-datadir.md
|
||||
[license]: https://github.com/sigp/lighthouse/blob/stable/LICENSE
|
||||
[slashing]: ./slashing-protection.md
|
||||
@@ -18,7 +17,6 @@ Being educated is critical to a validator's success. Before submitting your main
|
||||
- Reading through this documentation, especially the [Slashing Protection][slashing] section.
|
||||
- Performing a web search and doing your own research.
|
||||
|
||||
|
||||
>
|
||||
> **Please note**: the Lighthouse team does not take any responsibility for losses or damages
|
||||
> occurred through the use of Lighthouse. We have an experienced internal security team and have
|
||||
@@ -27,7 +25,6 @@ Being educated is critical to a validator's success. Before submitting your main
|
||||
> due to the actions of other actors on the consensus layer or software bugs. See the
|
||||
> [software license][license] for more detail on liability.
|
||||
|
||||
|
||||
## Become a validator
|
||||
|
||||
There are five primary steps to become a validator:
|
||||
@@ -39,23 +36,24 @@ There are five primary steps to become a validator:
|
||||
1. [Submit deposit](#step-5-submit-deposit-32eth-per-validator)
|
||||
|
||||
> **Important note**: The guide below contains both mainnet and testnet instructions. We highly recommend *all* users to **run a testnet validator** prior to staking mainnet ETH. By far, the best technical learning experience is to run a testnet validator. You can get hands-on experience with all the tools and it's a great way to test your staking
|
||||
hardware. 32 ETH is a significant outlay and joining a testnet is a great way to "try before you buy".
|
||||
hardware. 32 ETH is a significant outlay and joining a testnet is a great way to "try before you buy".
|
||||
|
||||
> **Never use real ETH to join a testnet!** Testnet such as the Holesky testnet uses Holesky ETH which is worthless. This allows experimentation without real-world costs.
|
||||
|
||||
### Step 1. Create validator keys
|
||||
|
||||
The Ethereum Foundation provides the [staking-deposit-cli](https://github.com/ethereum/staking-deposit-cli/releases) for creating validator keys. Download and run the `staking-deposit-cli` with the command:
|
||||
|
||||
```bash
|
||||
./deposit new-mnemonic
|
||||
```
|
||||
|
||||
and follow the instructions to generate the keys. When prompted for a network, select `mainnet` if you want to run a mainnet validator, or select `holesky` if you want to run a Holesky testnet validator. A new mnemonic will be generated in the process.
|
||||
|
||||
> **Important note:** A mnemonic (or seed phrase) is a 24-word string randomly generated in the process. It is highly recommended to write down the mnemonic and keep it safe offline. It is important to ensure that the mnemonic is never stored in any digital form (computers, mobile phones, etc) connected to the internet. Please also make one or more backups of the mnemonic to ensure your ETH is not lost in the case of data loss. It is very important to keep your mnemonic private as it represents the ultimate control of your ETH.
|
||||
|
||||
Upon completing this step, the files `deposit_data-*.json` and `keystore-m_*.json` will be created. The keys that are generated from staking-deposit-cli can be easily loaded into a Lighthouse validator client (`lighthouse vc`) in [Step 3](#step-3-import-validator-keys-to-lighthouse). In fact, both of these programs are designed to work with each other.
|
||||
|
||||
|
||||
> Lighthouse also supports creating validator keys, see [Key management](./key-management.md) for more info.
|
||||
|
||||
### Step 2. Start an execution client and Lighthouse beacon node
|
||||
@@ -64,15 +62,17 @@ Start an execution client and Lighthouse beacon node according to the [Run a Nod
|
||||
|
||||
### Step 3. Import validator keys to Lighthouse
|
||||
|
||||
In [Step 1](#step-1-create-validator-keys), the staking-deposit-cli will generate the validator keys into a `validator_keys` directory. Let's assume that
|
||||
In [Step 1](#step-1-create-validator-keys), the staking-deposit-cli will generate the validator keys into a `validator_keys` directory. Let's assume that
|
||||
this directory is `$HOME/staking-deposit-cli/validator_keys`. Using the default `validators` directory in Lighthouse (`~/.lighthouse/mainnet/validators`), run the following command to import validator keys:
|
||||
|
||||
Mainnet:
|
||||
|
||||
```bash
|
||||
lighthouse --network mainnet account validator import --directory $HOME/staking-deposit-cli/validator_keys
|
||||
```
|
||||
|
||||
Holesky testnet:
|
||||
|
||||
```bash
|
||||
lighthouse --network holesky account validator import --directory $HOME/staking-deposit-cli/validator_keys
|
||||
```
|
||||
@@ -85,7 +85,6 @@ lighthouse --network holesky account validator import --directory $HOME/staking-
|
||||
|
||||
> Docker users should use the command from the [Docker](#docker-users) documentation.
|
||||
|
||||
|
||||
The user will be prompted for a password for each keystore discovered:
|
||||
|
||||
```
|
||||
@@ -122,11 +121,10 @@ WARNING: DO NOT USE THE ORIGINAL KEYSTORES TO VALIDATE WITH ANOTHER CLIENT, OR Y
|
||||
|
||||
Once you see the above message, you have successfully imported the validator keys. You can now proceed to the next step to start the validator client.
|
||||
|
||||
|
||||
### Step 4. Start Lighthouse validator client
|
||||
|
||||
After the keys are imported, the user can start performing their validator duties
|
||||
by starting the Lighthouse validator client `lighthouse vc`:
|
||||
by starting the Lighthouse validator client `lighthouse vc`:
|
||||
|
||||
Mainnet:
|
||||
|
||||
@@ -135,11 +133,12 @@ lighthouse vc --network mainnet --suggested-fee-recipient YourFeeRecipientAddres
|
||||
```
|
||||
|
||||
Holesky testnet:
|
||||
|
||||
```bash
|
||||
lighthouse vc --network holesky --suggested-fee-recipient YourFeeRecipientAddress
|
||||
```
|
||||
|
||||
The `validator client` manages validators using data obtained from the beacon node via a HTTP API. You are highly recommended to enter a fee-recipient by changing `YourFeeRecipientAddress` to an Ethereum address under your control.
|
||||
The `validator client` manages validators using data obtained from the beacon node via a HTTP API. You are highly recommended to enter a fee-recipient by changing `YourFeeRecipientAddress` to an Ethereum address under your control.
|
||||
|
||||
When `lighthouse vc` starts, check that the validator public key appears
|
||||
as a `voting_pubkey` as shown below:
|
||||
@@ -156,9 +155,9 @@ by the protocol.
|
||||
|
||||
After you have successfully run and synced the execution client, beacon node and validator client, you can now proceed to submit the deposit. Go to the mainnet [Staking launchpad](https://launchpad.ethereum.org/en/) (or [Holesky staking launchpad](https://holesky.launchpad.ethereum.org/en/) for testnet validator) and carefully go through the steps to becoming a validator. Once you are ready, you can submit the deposit by sending 32ETH per validator to the deposit contract. Upload the `deposit_data-*.json` file generated in [Step 1](#step-1-create-validator-keys) to the Staking launchpad.
|
||||
|
||||
> **Important note:** Double check that the deposit contract for mainnet is `0x00000000219ab540356cBB839Cbe05303d7705Fa` before you confirm the transaction.
|
||||
> **Important note:** Double check that the deposit contract for mainnet is `0x00000000219ab540356cBB839Cbe05303d7705Fa` before you confirm the transaction.
|
||||
|
||||
Once the deposit transaction is confirmed, it will take a minimum of ~16 hours to a few days/weeks for the beacon chain to process and activate your validator, depending on the queue. Refer to our [FAQ - Why does it take so long for a validator to be activated](./faq.md#why-does-it-take-so-long-for-a-validator-to-be-activated) for more info.
|
||||
Once the deposit transaction is confirmed, it will take a minimum of ~16 hours to a few days/weeks for the beacon chain to process and activate your validator, depending on the queue. Refer to our [FAQ - Why does it take so long for a validator to be activated](./faq.md#why-does-it-take-so-long-for-a-validator-to-be-activated) for more info.
|
||||
|
||||
Once your validator is activated, the validator client will start to publish attestations each epoch:
|
||||
|
||||
@@ -172,10 +171,11 @@ If you propose a block, the log will look like:
|
||||
Dec 03 08:49:36.225 INFO Successfully published block slot: 98, attestations: 2, deposits: 0, service: block
|
||||
```
|
||||
|
||||
Congratulations! Your validator is now performing its duties and you will receive rewards for securing the Ethereum network.
|
||||
Congratulations! Your validator is now performing its duties and you will receive rewards for securing the Ethereum network.
|
||||
|
||||
### What is next?
|
||||
After the validator is running and performing its duties, it is important to keep the validator online to continue accumulating rewards. However, there could be problems with the computer, the internet or other factors that cause the validator to be offline. For this, it is best to subscribe to notifications, e.g., via [beaconcha.in](https://beaconcha.in/) which will send notifications about missed attestations and/or proposals. You will be notified about the validator's offline status and will be able to react promptly.
|
||||
|
||||
After the validator is running and performing its duties, it is important to keep the validator online to continue accumulating rewards. However, there could be problems with the computer, the internet or other factors that cause the validator to be offline. For this, it is best to subscribe to notifications, e.g., via [beaconcha.in](https://beaconcha.in/) which will send notifications about missed attestations and/or proposals. You will be notified about the validator's offline status and will be able to react promptly.
|
||||
|
||||
The next important thing is to stay up to date with updates to Lighthouse and the execution client. Updates are released from time to time, typically once or twice a month. For Lighthouse updates, you can subscribe to notifications on [Github](https://github.com/sigp/lighthouse) by clicking on `Watch`. If you only want to receive notification on new releases, select `Custom`, then `Releases`. You could also join [Lighthouse Discord](https://discord.gg/cyAszAh) where we will make an announcement when there is a new release.
|
||||
|
||||
@@ -202,9 +202,10 @@ Here we use two `-v` volumes to attach:
|
||||
|
||||
- `~/.lighthouse` on the host to `/root/.lighthouse` in the Docker container.
|
||||
- The `validator_keys` directory in the present working directory of the host
|
||||
to the `/root/validator_keys` directory of the Docker container.
|
||||
to the `/root/validator_keys` directory of the Docker container.
|
||||
|
||||
### Start Lighthouse beacon node and validator client
|
||||
|
||||
Those using Docker images can start the processes with:
|
||||
|
||||
```bash
|
||||
@@ -222,8 +223,5 @@ $ docker run \
|
||||
lighthouse --network mainnet vc
|
||||
```
|
||||
|
||||
|
||||
If you get stuck you can always reach out on our [Discord][discord] or [create an
|
||||
issue](https://github.com/sigp/lighthouse/issues/new).
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user