Learn step by step to set up an Ethereum 2.0 verification node.
Written by: Ryan Sean Adams
Translation: Lu Jiangfei
Ethereum 2.0 is finally here, which means that ETH pledge will start, and Ether will finally have the opportunity to play the role of “digital bond”!
At present, the ETH pledge contract has been opened, and Ethereum 2.0 will be put into use on December 1, 2020. This time-consuming work has finally achieved certain results. There is no doubt that each of us is very excited. In order to provide better help to users who wish to run validator nodes on the mainnet, we decided to publish an ETH pledge guide. In addition, we published a Medalla testnet validator setup guide in August this year. You can also refer to this guide to practice how to deploy validator nodes on the testnet.
But now, the real “play time” has come! So we need to give a practical guide to setting up validator nodes for the Ethereum 2.0 mainnet.
Before starting, I would like to thank Collin Myers and Mara Schmiedt from ConsenSys CodeFi and Bison Trails for their contributions to this article. We all hope to provide valuable resources for the Ethereum community and allow more people to use Ethereum 2.0.
Now, let us get to the topic.
1. Hardware requirements
Based on the decentralized design goal of Ethereum 2.0, it is expected that the validator will use a variety of different infrastructure settings (such as internal deployment, cloud computing, etc.).
👉 If you haven’t pledged ETH before, you may wish to go to the Medalla testnet to experience it. This is actually a good way to participate in Ethereum 2.0 in advance, allowing you enough time to determine which type of settings can bring the most The best and most reliable performance experience.
Therefore, before the formal deployment, it is recommended to do some testing first! Because we still hope you can test your settings on the Medella testnet first, please refer to here for details.
Next, we will give some hardware suggestions, resource links, and other useful guides to help you better prepare for Ethereum 2.0.
Recommended specifications:
- Operating system: 64-bit Linux, Mac OS X, Windows
- Processor: Intel Core i7-4770 or AMD FX-8310 (or higher)
- Memory: 8GB RAM
- Storage: 100GB free space SSD
- Internet: Broadband Internet connection (10 Mbps)
- Power supply: Uninterruptible power supply (UPS)
Digital Ocean alternative equipment (cloud provider):
- Standard Droplet
- Memory: 8GB RAM
- Storage: 160GB free space SSD
- Uptime: 99.99%
- Availability: 8 data centers
- Hourly cost: $0.060
- Monthly cost: $40
Hardware replacement equipment:
- ZOTAC ZBOX CI662 Nano silent passive cooling mini PC, 10th generation Intel Core i7 processor
- SanDisk Ultra 3D NAND 2TB built-in SSD
- Corsair Vengeance Performance SODIMM memory 16GB (2x8GB)
Minimum hardware requirements:
- Operating system: 64-bit Linux, Mac OS X, Windows
- Processor: Intel Core i5-760 or AMD FX-8110 (or higher)
- Memory: 4GB RAM
- Storage: 20GB free space SSD
- Internet: Broadband Internet connection (10 Mbps)
- Power supply: Uninterruptible power supply (UPS)
Digital Ocean alternative equipment (cloud provider):
- Standard Droplet
- Memory: 4GB RAM
- Storage: 80GB free space SSD
- Uptime: 99.99%
- Availability: 8 data centers
- Hourly cost: $0.030
- Monthly cost: $20
Hardware replacement equipment:
- ZOTAC ZBOX CI642 Nano silent passive cooling mini PC 10th generation Intel Core i5
- SanDisk Ultra 3D NAND 2TB built-in SSD
- Corsair Vengeance Performance SODIMM memory 8GB
2. Select and install the client
When Ethereum 2.0 is launched, multiple clients will provide support, and validators can use different clients to run their own validator options. Up to now, there are a total of four clients deployed on the production network, let’s introduce them one by one:
Ethereum 2.0 mainnet client
Prysm client (Discord) developed by Prysmatic Labs
Prysm is an Ethereum 2.0 protocol developed using the Go programming language. The client focuses on usability, security and reliability, and is released under the GPL-3.0 license.
Lighthouse client (Discord) developed by Sigma Prime
Lighthouse is a Rust implementation of the Ethereum 2.0 client, released under the Apache 2.0 license. The client focuses on speed and security. The development team behind it, Sigma Prime, is an information security and software engineering company.
Teku client (Discord) developed by ConsenSys
PegaSys Teku is a Java-based Ethereum 2.0 client designed and built to meet institutional needs and security requirements. The client is developed using the most mature and widely used Java programming language on the market and released under the Apache 2.0 license .
Nimbus client (Discord) developed by Status
Nimbus is both a client implementation and an Ethereum 2.0 research project, aiming to run well on embedded systems and personal mobile devices (including older smartphones with hardware resource constraints). The Nimbus client is released under the Apache 2.0 license and is developed using the Nim programming language, which is similar to Python and supports the compilation of C language.
3. Install an Ethereum 1.0 node
Running a validator node on Ethereum 2.0 requires you to first run an Ethereum 1.0 node to monitor the validator deposit (ie 32 ETH tokens). There are actually many options when choosing an Ethereum 1.0 node. Below, we will provide you with Several of the most commonly used Ethereum 1.0 node startup tools.
Autonomous hosting:
- OpenEthereum
- Geth
- Besu
- Nethermind
escrow:
4. Run an Ethereum 2.0 validator
Step 1: Obtain ETH tokens
If you are not familiar with Ethereum, the first step is to “add fuel” before you can participate in it. This means that every Ethereum 2.0 validator must first pledge 32 ETH tokens. It should be noted that if you eventually become an Ethereum 2.0 validator, it also means that you have made a long-term commitment to the project.
If you need to top up some ETH tokens now, we can recommend several cryptocurrency exchanges:
- Cryptocurrency exchanges that support fiat currency trading (US region): Coinbase or Gemini;
- Cryptocurrency exchanges that support fiat currency trading (non-US regions): Binance or Kraken;
- Ethereum decentralized exchange: Uniswap.
Step 2: Go to Ethereum 2.0 Launchpad
In the past few months, the Ethereum Foundation (EF), Codefi Activate and Deep Work Studio have been developing an interface to make it easier for users to stake ETH tokens and become validators of Ethereum 2.0.
Now we show the results of this work, it is: ETH2 Launch Pad, this application is designed to safely guide you to complete the generation of the Ethereum 2.0 key and pledge 32 ETH to the official deposit contract of the Ethereum main network.
Launch Pad is designed for ordinary validators. Even Ethereum hobbyists who plan to run the validator on their own can use it at home and run commands on the computer’s terminal screen.
Step 2a: Due diligence (overview part)
In the process of setting up the Ethereum 2.0 validator, you may need to take a moment to read this part of the content, because this part of the overview is very important, and is designed to help you better learn and understand the relevant issues you may encounter when staking ETH tokens risk.
Step 3: Generate key pair and mnemonic
For each validator node, you need to generate a validator key pair and a mnemonic to generate a withdrawal key.
First, you need to choose the number of validators you want to run and which operating system you want to run on the validators.
Launchpad will provide you with two options to generate your deposit key.
You can find detailed instructions about the operating system here .
The first option is to download the binary executable file from the Ethereum 2.0 GitHub code repository, and then run the ./deposit command in the terminal window.
It should be noted that you need to verify the URL and confirm that you are using the correct URL!
The second option is to build the deposit-CLI tool from the Python source code. You only need to follow the instructions to ensure that all necessary development libraries and deposit-CLI tools are installed.
Once the deposit-CLI tool is completed and run in the terminal window, you will see the system prompt:
- Specify the number of validators you want to run;
- Which language do you want to use to generate mnemonics;
- Specify the network (main network) where the validator is running.
You need to make sure that you have set the “chain mainnet” for the mainnet testnet, otherwise the deposit will not take effect.
Now, you need to set a password. Once the password is confirmed, the mnemonic phrase will be generated. You need to write down the mnemonic phrase and store it in a safe place!
If the above steps are successfully completed, you should see the following screen at this point:
If you have any questions about the deposit-cli tool, you can visit the relevant GitHub repository .
Step 4: Upload your deposit file
At this point, the entire Ethereum 2.0 validator deployment process is about to end! At this point, you need to upload the deposit .json file generated in the previous step. The file is located in the /eth2.0-deposit-cli/validator_keys directory and has the title deposit-data-[timestamp].json.
Step 5: Connect the wallet
Next, connect your Web3 wallet and click Continue. Please note that you need to select “Mainnet” in the wallet settings.
Step 6: Confirm transaction summary and initiate deposit
After connecting and confirming your wallet address, you will be taken to the summary page, which will display the total amount of Eth tokens sent to the deposit contract based on the number of validators you choose to run.
In agreeing to accept the “Alert Check”, you need to click “Confirm” to navigate to the last step-actual deposit. At this time, click “Start Transaction” to deposit your ETH tokens into the official Ethereum 2.0 deposit contract. After that, you can use your wallet to confirm whether 32 ETH has been successfully deposited in each validator.
Once confirmed…well! You have done everything, and now you can proudly call yourself an Ethereum 2.0 validator!
That’s it! !