## Proposed Changes This PR fixes various minor typos in the project.
7.1 KiB
Become an Ethereum Consensus Mainnet Validator
Becoming an Ethereum consensus validator is rewarding, but it's not for the faint of heart. You'll need to be familiar with the rules of staking (e.g., rewards, penalties, etc.) and also configuring and managing servers. You'll also need at least 32 ETH!
For those with an understanding of Ethereum consensus and server maintenance, you'll find that running Lighthouse is easy. Install it, start it, monitor it and keep it updated. You shouldn't need to interact with it on a day-to-day basis.
Being educated is critical to validator success. Before submitting your mainnet deposit, we recommend:
- Thoroughly exploring the Staking Launchpad website
- Try running through the deposit process without actually submitting a deposit.
- Reading through this documentation, especially the Slashing Protection section.
- Running a testnet validator.
- Performing a web search and doing your own research.
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. We recommend all mainnet validators to run a testnet validator initially; 32 ETH is a significant outlay and joining a testnet is a great way to "try before you buy".
Remember, if you get stuck you can always reach out on our Discord.
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 undergone multiple third-party security-reviews, however the possibility of bugs or malicious interference remains a real and constant threat. Validators should be prepared to lose some rewards due to the actions of other actors on the consensus layer or software bugs. See the software license for more detail on liability.
Using Lighthouse for Mainnet
When using Lighthouse, the --network
flag selects a network. E.g.,
lighthouse
(no flag): Mainnet.lighthouse --network mainnet
: Mainnet.lighthouse --network prater
: Prater (testnet).
Using the correct --network
flag is very important; using the wrong flag can
result in penalties, slashings or lost deposits. As a rule of thumb, always
provide a --network
flag instead of relying on the default.
Joining a Testnet
There are five primary steps to become a testnet validator:
- Create validator keys and submit deposits.
- Start an execution client.
- Install Lighthouse.
- Import the validator keys into Lighthouse.
- Start Lighthouse.
- Leave Lighthouse running.
Each of these primary steps has several intermediate steps, so we recommend setting aside one or two hours for this process.
Step 1. Create validator keys
The Ethereum Foundation provides a "Staking Launchpad" for creating validator keypairs and submitting deposits:
Please follow the steps on the launch pad site to generate validator keys and submit deposits. Make sure you select "Lighthouse" as your client.
Move to the next step once you have completed the steps on the launch pad, including generating keys via the Python CLI and submitting gETH/ETH deposits.
Step 2. Start an execution client
Since the consensus chain relies upon the execution chain for validator on-boarding, all consensus validators must have a connection to an execution client.
We provide instructions for using Geth, but you could use any client that implements the JSON RPC via HTTP. A fast-synced node is sufficient.
Installing Geth
If you're using a Mac, follow the instructions listed here to install geth. Otherwise see here.
Starting Geth
Once you have geth installed, use this command to start your execution node:
geth --http
Step 3. Install Lighthouse
Note: Lighthouse only supports Windows via WSL.
Follow the Lighthouse Installation Instructions to install Lighthouse from one of the available options.
Proceed to the next step once you've successfully installed Lighthouse and viewed
its --version
info.
Note: Some of the instructions vary when using Docker, ensure you follow the appropriate sections later in this guide.
Step 4. Import validator keys to Lighthouse
When Lighthouse is installed, follow the Importing from the Ethereum Staking Launch pad instructions so the validator client can perform your validator duties.
Proceed to the next step once you've successfully imported all validators.
Step 5. Start Lighthouse
For staking, one needs to run two Lighthouse processes:
lighthouse bn
: the "beacon node" which connects to the P2P network and verifies blocks.lighthouse vc
: the "validator client" which manages validators, using data obtained from the beacon node via a HTTP API.
Starting these processes is different for binary and docker users:
Binary users
Those using the pre- or custom-built binaries can start the two processes with:
lighthouse --network mainnet bn --staking
lighthouse --network mainnet vc
Note:
~/.lighthouse/mainnet
is the default directory which contains the keys and databases. To specify a custom dir, see Custom Directories.
Docker users
Those using Docker images can start the processes with:
$ docker run \
--network host \
-v $HOME/.lighthouse:/root/.lighthouse sigp/lighthouse \
lighthouse --network mainnet bn --staking --http-address 0.0.0.0
$ docker run \
--network host \
-v $HOME/.lighthouse:/root/.lighthouse \
sigp/lighthouse \
lighthouse --network mainnet vc
Step 6. Leave Lighthouse running
Leave your beacon node and validator client running and you'll see logs as the beacon node stays synced with the network while the validator client produces blocks and attestations.
It will take 4-8+ hours for the beacon chain to process and activate your validator, however you'll know you're active when the validator client starts successfully publishing attestations each epoch:
Dec 03 08:49:40.053 INFO Successfully published attestation slot: 98, committee_index: 0, head_block: 0xa208…7fd5,
Although you'll produce an attestation each epoch, it's less common to produce a block. Watch for the block production logs too:
Dec 03 08:49:36.225 INFO Successfully published block slot: 98, attestations: 2, deposits: 0, service: block
If you see any ERRO
(error) logs, please reach out on
Discord or create an
issue.
Happy staking!