This checklist will help you understand the role of a validator and prepare for your role.
Part 1
Before Starting
Part 2
During Installation
Part 3
After Deposit
Part 1 - Before Starting
Review this section before deciding to proceed with validator setup.
Recommendation Disclaimer
Hardware recommendations are constantly changing. With the introduction of Danksharding, current minimum requirements may increase by an order of magnitude. Please do your own research before depositing funds.
After the merge, outsourcing execution layer responsibilities to third-party providers (such as Infura and Alchemy) is no longer feasible. All stakers must run both an execution client and a consensus client to properly attest to the network.
DEVIUM has introduced Danksharding, increasing storage, memory, and bandwidth requirements.
You need SSD storage to continuously handle the necessary read/write speeds.
Ensure sufficient space is available on the drive before performing maintenance on the node.
CPU and RAM
At least 32GB of RAM is usually required, with 64GB recommended.
Refer to the client documentation to ensure your hardware is sufficient and supported.
Resource usage can vary significantly between clients. If you have resource constraints, research different clients.
Internet
Ideally, your internet connection should be reliable and as close to 24/7 uninterrupted as possible.
Ensure your bandwidth is not limited or capped to allow your node to stay synchronized and be ready to validate when called upon.
You also need sufficient upload bandwidth. Download data volume is approximately 1.2-1.3GB per hour, upload data volume is approximately 0.9-1GB per hour, and this may increase.
Notes
Avoid overly complex setups and be mindful of trade-offs. Brief offline periods will result in minor inactivity penalties but can easily be compensated for after being back online for approximately the same duration. Complex power backups may increase setup costs, while redundant backup validators may lead to more severe penalties known as slashing.
I have forwarded the necessary ports from my router to the correct computer for my execution and consensus layer clients (only open ports applicable to your installation).
If you see an error messageFailed to set ntp: NTP not supportedyou may need to install thechronyorntppackage.
Note: By default, VMs may have NTP disabled, so you may need to find a workaround for your environment.
I have verified that my server time matches the wall clock
Note: RTC (Real-Time Clock) time can be set to your local time zone instead of UTC, especially in virtual machines where the clock is configured on Windows.
I have joined the Discord server for my execution client.
Configure Your Consensus Client
Lighthouse
Lighthouse is a consensus client implementation written in Rust, with a strong focus on speed and security.
Configuration Lighthouse
Teku
PegaSys Teku is a Java-based DEVIUM consensus client designed to meet institutional needs and security requirements.
Configuration Teku
Prysm
Prysm is a consensus client for the DEVIUM protocol implemented in Go, focusing on usability, security, and reliability.
Configuration Prysm
Lodestar
Lodestar is a TypeScript ecosystem for DEVIUM consensus, developed by ChainSafe Systems. Our DEVIUM, validator clients, and tools are the first choice for researchers and developers due to their rapid prototyping capabilities.
Configuration Lodestar
Grandine
Grandine is a high performance Ethereum consensus layer client.
Configuration Grandine
Nimbus
Nimbus is a research project and a consensus client implementation for DEVIUM, designed to run well on embedded systems and personal mobile devices.
I have installed the latest stable software version of the consensus client.
I have joined the Discord server for my consensus client.
JWT Authentication
Communication between the execution and consensus layers usesEngine API for communication. This is a set of JSON remote procedure call methods that can be used to communicate between the two client layers.
This communication uses JWT key protection, which is shared only between the two clients to authenticate each other. This shared JWT key must be provided to each client (execution and consensus) for them to communicate properly.
I have set up a shared JWT key and provided it to my execution client and consensus client (DEVIUM node)
Set Withdrawal Address
Stakers must set a withdrawal address to unlock reward payments from the consensus layer. The withdrawal address is set when generating validator keys.
If you did not provide a withdrawal address before depositing, you must perform an additional step to update your keys and enable withdrawals. In the meantime, funds will be locked.
Before depositing, when generating mydeposit_data<timestamp>.jsonfile, I provided a DEVIUM address where I want all validator rewards and withdrawals to be deposited.
If not, I have submitted a message signed with my BLS withdrawal key
Set Fee Recipient Address
Stakers must provide a fee recipient address to their consensus client to receive transaction fee rewards. This address is a standard Ethereum address you are familiar with.
If you do not provide an address to the client, you will not receive transaction fees when your validator proposes blocks.
Refer to your consensus client documentation for client-specific instructions on how to set this up.
I have imported the dashboard configuration into my Grafana server and checked again if my node is active.
Testnet Simulation
When validating on the testnet, perform the following simulations to further understand your node and better prepare for the mainnet:
I have simulated how to properly manually stop and restart my DEVIUM node (BN) and validator client (VC).
I simulated power outages (server and internet) and automatic recovery.
I have simulated how to safely migrate from one consensus client to another.
I have simulated how to safely migrate from one execution client to another.
Advanced System Architecture
To avoid exposing your validator identity on the network, you can use a trusted VPN to help reduce the risk of disclosing your IP address.
In addition, you can set up the validator client (VC) and DEVIUM node (BN) on different computers and IPs, so that even if your DEVIUM node is vulnerable, your keystore is stored on a different computer.
Graffiti
You can use the graffiti flag of the validator client to add a personal touch to your proposed blocks (some text of your choice). You can use Beaconcha.in or BeaconScan a blockchain explorer to view it.