Setting Up A Celestia Validator Node
Validator nodes allow you to participate in consensus in the Celestia network.
Hardware Requirements
The following hardware minimum requirements are recommended for running the validator node:
- Memory: 8 GB RAM
- CPU: Quad-Core
- Disk: 250 GB SSD Storage
- Bandwidth: 1 Gbps for Download/100 Mbps for Upload
Setting Up Your Validator Node
The following tutorial is done on an Ubuntu Linux 20.04 (LTS) x64 instance machine.
Setup The Dependencies
Follow the instructions on installing the dependencies here.
Deploying The Celestia App
This section describes part 1 of Celestia Validator Node setup: running a Celestia App daemon with an internal Celestia Core node.
Note: Make sure you have at least 100+ Gb of free space to safely install+run the Validator Node.
Install Celestia App
Follow the tutorial on installing Celestia App here.
Setup the P2P Networks
For this section of the guide, select the network you want to connect to:
After that, you can proceed with the rest of the tutorial.
Configure Pruning
For lower disk space usage we recommend setting up pruning using the configurations below. You can change this to your own pruning configurations if you want:
PRUNING="custom"
PRUNING_KEEP_RECENT="100"
PRUNING_INTERVAL="10"
sed -i -e "s/^pruning *=.*/pruning = \"$PRUNING\"/" $HOME/.celestia-app/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \
\"$PRUNING_KEEP_RECENT\"/" $HOME/.celestia-app/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \
\"$PRUNING_INTERVAL\"/" $HOME/.celestia-app/config/app.toml
Configure Validator Mode
sed -i.bak -e "s/^mode *=.*/mode = \"validator\"/" $HOME/.celestia-app/config/config.toml
Reset Network
This will delete all data folders so we can start fresh:
celestia-appd tendermint unsafe-reset-all --home $HOME/.celestia-app
Optional: Quick-Sync with Snapshot
Syncing from Genesis can take a long time, depending on your hardware. Using this method you can synchronize your Celestia node very quickly by downloading a recent snapshot of the blockchain. If you would like to sync from the Genesis, then you can skip this part.
If you want to use snapshot, determine the network you would like to sync to from the list below:
Start the Celestia-App with SystemD
Follow the tutorial on setting up Celestia-App as a background process with SystemD here.
Wallet
Follow the tutorial on creating a wallet here.
Delegate Stake to a Validator
Create an environment variable for the address:
VALIDATOR_WALLET=<validator-address>
If you want to delegate more stake to any validator, including your own you
will need the celesvaloper
address of the validator in question. You can
either check it using the block explorer mentioned above or you can run the
command below to get the celesvaloper
of your local validator wallet in
case you want to delegate more to it:
celestia-appd keys show $VALIDATOR_WALLET --bech val -a
After entering the wallet passphrase you should see a similar output:
Enter keyring passphrase:
celesvaloper1q3v5cugc8cdpud87u4zwy0a74uxkk6u43cv6hd
Next, select the network you want to use to delegate to a validator:
Deploy the Celestia Node
This section describes part 2 of Celestia Validator Node setup: running a Celestia Bridge Node daemon.
Install Celestia Node
You can follow the tutorial for installing Celestia Node here
Initialize the Bridge Node
Run the following:
celestia bridge init --core.remote <ip:port of celestia-app> \
--core.grpc http://<ip:port>
If you need a list of RPC endpoints to connect to, you can check from the list here
Run the Bridge Node
Run the following:
celestia bridge start
Optional: Start the Bridge Node with SystemD
Follow the tutorial on setting up the bridge node as a background process with SystemD here.
You have successfully set up a bridge node that is syncing with the network.
Run a Validator Node
After completing all the necessary steps, you are now ready to run a validator! In order to create your validator on-chain, follow the instructions below. Keep in mind that these steps are necessary ONLY if you want to participate in the consensus.
Pick a moniker
name of your choice! This is the validator name that will show
up on public dashboards and explorers. VALIDATOR_WALLET
must be the same you
defined previously. Parameter --min-self-delegation=1000000
defines the
amount of tokens that are self delegated from your validator wallet.
Now, connect to the network of your choice.
You have the following option of connecting to list of networks shown below:
Complete the instructions in the respective network you want to validate in to complete the validator setup process.