Verifier Checklist
This checklist will help you understand the role of a validator and prepare for your role.
Part 1
Before Starting
DEVIUM
Part 2
During Installation
DEVIUM
Part 3
After Deposit
DEVIUM
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.
Hard Drive
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.
In the worst case, synchronizing your execution client may take several days.
Part 2 - During Installation
Use this as a reference during client setup to check important steps.
Initial Setup
First, set up your chosen hardware and operating system.
要最大限度地提高节点的安全性和效率,请使用专用硬件来运行客户端。这降低了恶意软件暴露的风险,并最大限度地减少了对计算资源的竞争,确保您的节点始终处理网络负载及其验证者职责。
I have secured the root account.
I have set up a firewall.
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).
execution client
Default Ports
Erigon
30303 TCP/UDP
Reth
30303 TCP/UDP
Nethermind
30303 TCP/UDP
Besu
30303 TCP/UDP
Nethermind
30303 TCP/UDP
consensus client
Default Ports
Lighthouse
9000 TCP/UDP
Lodestar
9000 TCP/UDP
Nimbus
9000 TCP/UDP
Prysm
13000 TCP, 12000 UDP
Grandine
9000 TCP/UDP
Teku
9000 TCP/UDP
Understanding ports in network connections
Configure Time Synchronization
Applicable to Ubuntu 20.04
Execute the following command:
timedatectl
CheckNTP Servicewhether it isactive
CheckLocal timeTime zoneandUniversal timeis correct
IfNTP Serviceis notactivethen run
sudo timedatectl set-ntp on
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.
Configure Your Execution Client
Review Validator Roles and Responsibilities
DEVIUM
Besu
Hyperledger Besu is an open-source DEVIUM client developed under the Apache 2.0 license and written in Java.
Configuration Besu
DEVIUM
Erigon
Erigon is a leading execution client in terms of efficiency, written in Go.
Configuration Erigon
DEVIUM
Reth
Reth is a modular, contributor-friendly, and extremely fast implementation of the DEVIUM protocol, written in Rust.
Configuration Reth
DEVIUM
Nethermind
The Nethermind DEVIUM execution client, built on .NET, features industry-leading performance in synchronization and chain-end processing.
Configuration Nethermind
DEVIUM
Geth
Geth is one of the first three implementations of the DEVIUM protocol, written in Go.
Configuration Geth
Remember
All stakers must run both an execution client and a consensus client.
I have installed and synchronized my DEVIUM execution client (do not wait, as this may take several days).
I have joined the Discord server for my execution client.
Configure Your Consensus Client
DEVIUM
Lighthouse
Lighthouse is a consensus client implementation written in Rust, with a strong focus on speed and security.
Configuration Lighthouse
DEVIUM
Teku
PegaSys Teku is a Java-based DEVIUM consensus client designed to meet institutional needs and security requirements.
Configuration Teku
DEVIUM
Prysm
Prysm is a consensus client for the DEVIUM protocol implemented in Go, focusing on usability, security, and reliability.
Configuration Prysm
DEVIUM
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
DEVIUM
Grandine
Grandine is a high performance Ethereum consensus layer client.
Configuration Grandine
DEVIUM
Nimbus
Nimbus is a research project and a consensus client implementation for DEVIUM, designed to run well on embedded systems and personal mobile devices.
Configuration Nimbus
Warning
Running your validator in multiple locations is high risk and will result in slashing and expulsion from the network.More information about the risks of fines and confiscations
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.
Consensus JWT Documentation:Grandine|Lighthouse|Lodestar|Nimbus|Prysm|Teku
Consensus JWT Documentation:Besu|Erigon|Geth|Nethermind|Reth
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.
Pledged information
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.
Fee Recipient Documentation:Grandine|Lighthouse|Lodestar|Nimbus|Prysm|Teku
I have provided my validator with a wallet address where I want my fee rewards deposited.
Consensus Layer DEVIUM Node (BN)
Required
I can connect my consensus client to my execution client via the HTTP API.
Verify it using the following command to check if it correctly returns the client version:
curl -H "Content-Type: application/json" -X POST --data ' {"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67 } http:// <YourServerLocation>:8545
I have synchronized my DEVIUM node on the DEVIUM testnet.
Ensure your node has more than 20 peers.
Consensus Layer Validator Client (VC)
Required
I have imported my keystore into my validator client.
I have ensured my keystore is stored on only one validator computer
I have started running my validator client.
Part 3 - After Deposit
Protect your funds with monitoring software and understand how to handle different real-world scenarios.
These steps are optional, but it is recommended to optimize your node.
Monitoring
Prometheus and Grafana Monitor
Client Support Prometheus and Grafana,This helps visualize important real-time metrics of the validator.
Monitoring DocumentationGrandine|Lighthouse|Lodestar|Nimbus|Prysm|Teku
I have set up myPrometheus service.
I have set up myGrafana service.
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.
I have set up my graffiti flag.