LogoLogo
  • Overview
    • Introduction
    • Features
    • Consensus PoSa
  • Building on Bahamut
    • Overview
    • Network Endpoints
    • Deploy Smart Contracts
      • Using Hardhat
        • Create a project
        • Compiling the contract
      • Using Remix
        • Writing a Smart Contract
        • Compiling the contract
    • Deploy a Token
    • Deploy an NFT
    • Explorer
    • Bridge
    • About $FTN
  • Become a validator
    • Step 1: Install the Required Files
    • Step 2: Run the Node
    • Step 3: Set Up Your Wallet
    • Step 4: Generate Validator Keys
    • Step 5: Import Validator Keys and Launch the Validator Client
    • Step 6: Submit Deposit Data
    • Step 7: Set Withdrawal Credentials (BLS to Execution)
  • Validator Checklist
  • Staking Withdrawals
  • Difference on Bahamut Staking vs. Lolik
  • Disclosure
    • Disclaimers
    • Risk Statement
Powered by GitBook
On this page
  • Before You Start
  • During Setup
  • After Depositing

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:

  1. Run: timedatectl

    • Confirm NTP Service is active and your time settings (Local, Time zone, Universal) are correct.

  2. 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:

  1. 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.

  1. Launch your validator client to finalize the process.

  2. 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.

PreviousStep 7: Set Withdrawal Credentials (BLS to Execution)NextStaking Withdrawals

Last updated 1 month ago

To authenticate the HTTP connection between your beacon node and execution node, use a.

Download the necessary tools from this.

Follow the to generate deposit data with your new keys.

JWT token
repository
instructions