Validator Checklist
This checklist is your guide to understanding the role of a validator and preparing for it step-by-step.
Before You Start
Before starting the validator setup, ensure you're prepared with the right hardware, software, and knowledge.
Hardware Requirements
Storage:
You’ll need ~1TB for Mainnet execution chain data. Total disk space for all clients is around 1TB.
Prefer SSD storage to handle the required read/write speeds efficiently.
Plan for additional space for maintenance and updates.
CPU and RAM:
Use Bahamut's recommended hardware specs as a reference for your setup. It is preferable to use a quad-core (or dual-core hyperthreaded) CPU. At least 16 GB of RAM, 32GB is recommended
Internet Requirements
A reliable, 24/7 connection is crucial to keep your node in sync and ready to validate.
Ensure your internet bandwidth is not capped or throttled.
Important Notes
Avoid overly complex setups.
Brief offline periods result in small penalties but can be easily recovered by staying online longer.
Complicated backup systems might add unnecessary costs and risks.
Syncing your execution client can take several days, so plan accordingly.
Warning: Redundant backup validators can cause slashing, leading to serious penalties and ejection from the network.
During Setup
Use this section to track your progress while setting up your validator.
Initial Setup
Set up your chosen hardware and operating system.
Node Security
Secure the root account.
Set up a firewall.
Forward the necessary ports for your Execution Client (EL) and Consensus Client (CL):
EL Port: 30303 TCP/UDP
CL Ports: 13000 TCP, 12000 UDP
Time Synchronization
For Ubuntu 20.04:
Run: timedatectl
Confirm NTP Service is active and your time settings (Local, Time zone, Universal) are correct.
If NTP isn’t active:
Run: sudo timedatectl set-ntp on
If you encounter issues, install chrony or ntp.
I verified that my server time matches the wall clock.
Execution Client Configuration
Install and sync your Execution Client following these instructions
.
All stakers must operate an execution client alongside a consensus client.
☑ I've installed and synced my execution client (this can take several days).
Node Setup Tutorial
Follow the Node Setup Tutorial to run a node on Bahamut.
Warning: Running your validator in multiple places will cause a slashable event and lead to ejection from the network.
JWT Authentication
Configuring JWT Authentication for HTTP Connections
Generate the token using this method:
OpenSSL:
openssl rand -hex 32 | tr -d "\n" > "jwt.hex"
Ensure the generated jwt.hex file is stored in your Bahamut directory:
📂Bahamut
┣ 📂consensus
┣ 📂execution
┣ 📄jwt.hex
Grant appropriate permissions for file access.
☑ I've set up a shared JWT secret and made it available to both my execution client, and my consensus client (beacon node)
Setting Addresses
Withdrawal Address:
Set this when generating your validator keys to unlock rewards.
If not set before depositing, update your keys with a BLSToExecutionChange message.
☑ I provided an Bahamut address when creating my deposit_data<timestamp>.json file. This is where I want my validator rewards and withdrawals to be sent.
☑ If I didn’t set a withdrawal address before depositing, I’ve updated it by submitting a BLSToExecutionChange message signed with my BLS withdrawal keys.
Fee Recipient Address:
Assign an Bahamut address in your consensus client settings to receive transaction fee rewards.
See Fee Recipient Docs
☑ I provided an Bahamut address to my validator for receiving my fee rewards.
Consensus Layer Validator Client (VC)
Setting up your validator client is essential for participating in the network:
☑ I imported my keystore(s) into my validator client.
☑ I ensured my keystore(s) are stored only on one validator machine to avoid any potential conflicts or slashing risks.
☑ I started running my validator client and confirmed it is functioning correctly.
Consensus Layer Validator Client (VC)
Setting up your validator client is essential for participating in the network:
I imported my keystore(s) into my validator client.
I ensured my keystore(s) are stored only on one validator machine to avoid any potential conflicts or slashing risks.
I started running my validator client and confirmed it is functioning correctly.
Deposit Data
This step is where you inform the network about your validator participation by generating and broadcasting your deposit data.
Launch your validator client to finalize the process.
Make a transaction via your selected wallet to broadcast your deposit data to a network.
After Depositing
After setting up your validator, there are additional steps you can take to secure your funds and optimize your node:
Advanced System Architecture
Consider using a trusted VPN to hide your IP address and protect your validator’s identity from being exposed to the network.
Graffiti
Add a personal touch to your validator's proposed blocks using the graffiti flag. You can customize this with any text under 32 bytes.
☑ I’ve set my graffiti flag to personalize my validator's contributions.
Last updated