🏟️ BUIDL where legends play. Join our Hackathon at Parc des Princes, Paris – July 2025 •
Register Now
Chiliz Chain Developer Docs
Chiliz ChainBlock ExplorerCommunitySocios.com
English
English
  • Chiliz Chain developer docs
  • Quick Start
    • Chiliz Chain in a nutshell
    • Connect to Mainnet and Testnet
    • Deploy and verify a contract
      • Deploy with Remix IDE
      • Deploy with thirdweb
      • Verify with Chiliscan
      • Verify with Chiliz Block Explorer
    • Run a Chiliz Chain Node
    • Free online courses
    • Inflation Supply Allocation Addresses
    • Smart Contract Addresses
  • Learn
    • About Chiliz Chain
      • Tokenomics
      • Security Audits
      • Chiliz Labs
    • About Wallets
      • How to use MetaMask
        • Install MetaMask
        • Link Chiliz Chain to MetaMask
      • How to use a multisig wallet (Safe)
    • About Bridging
      • Using Dcentralab's Chainport
      • Using Chiliz Bridge
      • Bridging stablecoins
      • Making your project token bridgeable
    • About Staking
      • Stake your CHZ
      • Unstake your CHZ
      • Staking Rewards
      • Stake CHZ from your Ledger
      • Chiliz Staking FAQ
    • About Validators
      • Defining Validators and Delegators
      • Why Become a Validator
      • How to Become a Validator
      • Running a Validator node
      • How to Stop Being a Validator
      • About Validator slashing
    • About Fan Tokens
      • 2023 Migration of Fan Tokens to Chiliz Chain
    • About Stablecoins
      • Stablecoins on Chiliz Chain
    • Glossary
      • Blockchain
      • Consensus mechanisms
      • Governance
      • Validator
      • Staking
      • Wallet
      • CAP-20
      • Wrapped CHZ (wCHZ)
  • Develop
    • Basics
      • Connect to Chiliz Chain
        • Connect using RPC
        • Run a Chiliz Chain Node
        • Use a hardware wallet
      • Block Explorers
      • Testnet Faucet
        • Obtain testCHZs with Tatum Faucet
      • Use Wrapped CHZ
      • How-Tos
        • How to get the balance of a wallet
        • How to get the history of a wallet
        • How to get the metadata of a specific NFT
      • Tips & Tricks
    • Advanced
      • How to integrate Socios Wallet in your dApp
      • How to use Account Abstraction
      • How to get the USD price of Fan Tokens
      • How to generate random numbers
      • How to follow transfers of a Fan Token
      • How to create Telegram notifications for Fan Token transfers
      • How to estimate gas fees
    • Chiliz Chain API
    • Developers FAQ
  • Community
    • Chiliz Chain Ecosystem
      • Developer Tools
        • Ankr
        • Azuro
        • Biconomy
        • Blocknative
        • Hyperlane
        • Lumx
        • Moralis
        • Pyth
        • Reown
        • Rarible
        • Tatum
        • The Graph
        • Thirdweb
        • Web3Auth
      • Custody solutions
        • Cobo
        • Fireblocks
      • Wallets
        • Magic
        • Privy
    • Developers events
      • Chiliz Sports Hackathon - July 2024
        • Setting The Stage
        • Getting Started
        • Mission Brief & Key Dates
        • The Prize Money
        • Theme & Intro
        • Tracks, Requirements, Regulations & Scoring Criteria
        • The Process
        • Disclaimers
        • Useful information
      • ETHGlobal Bangkok Hackathon 2024
      • ETHGlobal Istanbul Hackathon 2023
      • ETHGlobal London Hackathon 2024
      • ETHGlobal Online Hackathon Summer 2024
      • Hacking Poland 2025
      • Lumx Hack powered by ETH Rio
  • Chiliz Chain Changelog
    • Governance Proposals & Decisions
      • February 2025: New validator proposals
      • December 2024: Governance Update Proposals
      • May 2024: Dragon 8 (Tokenomics 2.0) Proposal
      • 2024 Dragon8 hard fork announcement
    • Blockchain code changes
    • Outage reports
      • Details on the May 21st outage
  • Doc Updates
Powered by GitBook
On this page
  • What is a validator node?
  • TL;DR
  • Prerequisites
  • System requirements
  • Pre-built Docker images
  • Launching a Validator node and starting the sync
  • Create the validator address
  • Generate the validator node key
  • Set Geth's NAT port mapping mechanism
  • Set verbosity
  • Changing the owner of a node

Was this helpful?

  1. Learn
  2. About Validators

Running a Validator node

Setting up a Chiliz Chain Validator node

Last updated 1 month ago

Was this helpful?

What is a validator node?

To become a Chiliz Chain , you are required to run a Validator node, either with your own hardware, or through a partner. A node is a web server set up specifically to validate transactions before committing them on Chiliz Chain.

Note that we have a more generic node-running documentation page: Run a Chiliz Chain Node

TL;DR

To run a Validator node, you need to set the following parameters:

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--mine \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
--datadir=/datadir \
--password=/datadir/password.txt \
--allow-insecure-unlock \
--unlock=REPLACE_WITH_VALIDATOR_ADDRESS \
--syncmode=full \
--gcmode=archive \
--miner.etherbase=REPLACE_WIT
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 \
--nat=extip:140.250.140.250 \ # This is just an example.
--verbosity=4

Don't use this as-is!

Make sure to update the unlock, miner.etherbase and nodekeyhex parameter!

Prerequisites

To run the Chiliz Chain validator node, you must have the Docker Engine installed either on your machine or server. You can use a cloud provider like Amazon Web Services, Google Cloud Platform, or Microsoft Azure, or you can set up your own server (see below).

System requirements

You will need a dedicated server to run your validator node:

  • CPU: At least 2 CPU cores.

  • Memory: At least 4 GB of RAM.

  • Disk: Use a solid-state drive (SSD) for optimal performance.

    • We recommend to have at least 300 GB of free disk space to sync with the chain.

  • Network Bandwidth: At least 10 Gbps.

Pre-built Docker images

Launching a Validator node and starting the sync

The recommended starting point to run a Chiliz Chain validator node is with the mounted data volume. If this method is used to recreate a Docker container, the data gets stored in the directory and can easily be reused or cloned to another validator.

Go-ethereum (aka Geth) is an Ethereum client built in Go. Running Geth alongside a consensus client turns a computer into an node. It is therefore an essential part of your node.

We forked Geth into ccv2-geth, as you'll see below.

Create the validator address

Create the validator node with the following command:

docker run --rm -ti \
-v $(pwd)/keystore:/root/.ethereum/keystore/ \
chilizchain/ccv2-geth:latest \
--chiliz \  # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
account new

You will need to type a password for the secret key file.

  • Public address of the key: While running the validator, this address will be used to set the --unlock parameter.

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
...
--unlock=REPLACE_WITH_VALIDATOR_ADDRESS # This is just an example.
  • Path of the secret key file: This file needs to be moved into the "keystore" directory inside the datadir $(pwd)/my-datadir you created in previous steps, so the final path of the file will be "$(pwd)/my-datadir/keystore/UTC–(TIMESTAMP)-(ADDRESS)". DO NOT change the name of the file.

  • Password: The password you typed during the the execution of the previous command needs to be stored in a file: $(pwd)/my-datadir/password.txt This file will be used to set the --password while running the validator node. Do not forget that all files in the host path $(pwd)/my-datadir will be located in the container in /datadir directory, this is why the password parameter should be set as the following example:

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
...
--password=/datadir/password.txt
...

It is very important to have the following recommendations in mind:

  • You can share your public address with anyone. Others need it to interact with you.

  • You must NEVER SHARE the secret key with anyone! The key controls access to your funds!

  • You must BACK UP your key file! Without the key, it's impossible to access account funds!

  • You must REMEMBER your password! Without the password, it's impossible to decrypt the key!

Generate the validator node key

This section is optional.

We recommend that generate a random hexadecimal string for the node. This is helpful for traceability on the logs and to avoid peering issues with the chain.

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
...
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 # This is just an example.
...

Set Geth's NAT port mapping mechanism

We recommend that use the extip:<IP> option, where <IP> is the public IPv4 address where the validator is being launched.

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
...
--nat=extip:140.250.140.250 # This is just an example.
...

Set verbosity

For deeper troubleshooting, Geth's logging verbosity parameter --verbosity can be set as:

  • 0=silent

  • 1=error

  • 2=warn

  • 3=info

  • 4=debug

  • 5=detail

The default value for is 3. We recommend that you use 4.

docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
...
--verbosity=4 # This is just an example.
...

Changing the owner of a node

There might come a time when you don't want to run a validator node anymore. You might then want to pass the node along to someone else.

In that case, you can follow these steps:

  1. Click the "Change owner" button.

  1. In the modal window, indicate the current address of the node you want to change the owner of, and its new address (provided by the new owner).

Once submitted, the change will apply directly.

Please complete the before you proceed.

View or use the pre-built Docker images from the on the Docker Hub. Note that you must have a Docker Hub account to access the repository.

As a fork of Ethereum, Chiliz Chain relies on for its node servers.

To accomplish this, you can use and generate one hexadecimal key with 64 characters per node. While running a validator node, you can set --nodekeyhex with this value. This will ensure that when you restart the node, it will have the same node address (called "enode address") and it will allow for easier future debugging or fault finding.

Geth's --nat parameter has the following options: any, none, upnp, pmp, pmp:<IP>, and extip:<IP>. The default is any. .

Connect your wallet to the .

validator
Docker installation
Chiliz Chain 2.0 public repository
Geth
https://www.browserling.com/tools/random-hex
See the Geth doc for more info
Chiliz Staking dApp