A Comprehensive Guide to Setting Up and Operating a Celestia Validator Node
Exploring Celestia Chains and enhancing your understanding of the network through hands-on node operation
Celestia Validator Node Guide
Welcome to this in-depth Celestia Validator Node guide. My name is Cosmoseup, and I am a node operator at Cosmostation.
Today, we will explore the innovative Celestia Chains, a solution designed to address blockchain data availability challenges.
Celestia is currently running an incentivized testnet program known as “Blockspace race,” in which Cosmostation is participating as a validator.
Our team has been researching and operating as a validator on Celestia for approximately five weeks, seeking to improve our products and node operations.
This article serves as a comprehensive guide to Celestia Chain and provides step-by-step instructions for setting up your validator node, including the app node and bridge node, on the Celestia network.
This guide consists of five key steps:
1. Hardware Requirements
2. Setting Up Dependencies
3. Exploring Celestia Node Types
4. Installing Celestia App Node
5. Installing Celestia Bridge Node
By following this guide, you will gain a deeper understanding of the Celestia network system as you operate your own nodes.
Note: This process is designed for Ubuntu Linux 20.04 (LTS) x64 systems.
1. Hardware Requirements
To operate your node, you’ll need a server that meets the following requirements.
NOTE) if your node is not permanent, you don’t need to worry about the network banthwith.
Memory: 8 GB RAM
CPU: 6 cores
Disk: 500 GB SSD Storage
Bandwidth: 1 Gbps for Download/1 Gbps for Upload
2. Setting Up Dependencies
After preparing your server, enter the following commands to install essential packages for Celestia.
# update & install
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential git make ncdu -y
sudo apt install snapd -y
Then, Install Go version 1.20.*
# install golang
sudo snap install go --channel=1.20/stable --classic
# add $GOBIN PATH
echo "export PATH=\$PATH:$HOME/go/bin" >> $HOME/.profile && source $HOME/.profile
3. Exploring Celestia Node Types
Before proceeding with the installation of Celestia nodes, it is essential to understand the different node types within the Celestia ecosystem.
There are two primary node types: Data Availability (DA) nodes and Consensus nodes, which are commonly found in the Cosmos ecosystem.
To operate as a validator, you need to run two nodes: a DA-type bridge node and a Consensus-type app node.
The validator node is responsible for serving raw data from the consensus node to the bridge node. While it may be challenging to comprehend the concept through text alone, we have provided some helpful resources for further clarification. For a deeper understanding, please consult the official Celestia documentation.
4. Installing Celestia App Node
To install the Consensus type app node, follow official docs and clone and install the celestia-app node repository.
# clone & install
cd $HOME
rm -rf celestia-app
git clone https://github.com/celestiaorg/celestia-app.git
cd celestia-app/
APP_VERSION=v0.12.2
git checkout tags/$APP_VERSION -b $APP_VERSION
make install
# check version
celestia-appd verison
# >>> 0.12.2
# you change chain-id when you want to other network, devnet, testnet or something
celestia-appd init my_node --chain-id blockspacerace-0
celestia-appd tendermint unsafe-reset-all
Once you have installed celestia-appd
binary, you need to get the genesis file and peer information for the Blockspace Race testnet.
cd $HOME && git clone https://github.com/celestiaorg/networks.git
cd networks/blockspacerace/ && ls
# >>> genesis.json, peers.txt
# copy genesis
cp genesis.json $HOME/.celestia-app/config/genesis.json
# add seed & peers
SEEDS=$(tr '\n' ',' < seeds.txt | sed 's/,$//')
sed -i "s|^seeds *=.*|seeds = \"$SEEDS\"|" $HOME/.celestia-app/config/config.toml
PEERS=$(tr '\n' ',' < peers.txt | sed 's/,$//')
sed -i "s|^persistent_peers *=.*|persistent_peers = \"$PEERS\"|" $HOME/.celestia-app/config/config.toml
# set config.toml for validator role
sed -i "s/^pruning *=.*/pruning = \"nothing\"/" $HOME/.celestia-app/config/app.toml
Now, you’re ready to operate the Consensus type app node! Simply start it and see your node syncing.
# start our node
celestia-appd start
If your node cannot sync, please follow this method: download our address book, which contains such as peers and seed, and restart your node to sync it.
# if not connected with other peers, try to do this
cd $HOME/.celestia-app/config && rm addrbook.json && wget -O addrbook.json https://lcd-celestia-itn.cosmostation.io/addrbook.json
# start again our node
celestia-appd start
5. Installing Celestia Bridge Node
The next step is to install bridge node, which is one of DA types. Keep your session syncing in your app node. and open a new session to operate the bridge node.
Then, install celestia node like the process above.
# clone & install
cd $HOME
rm -rf celestia-node
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node/
git checkout tags/v0.9.1
# build binary
make build
make cel-key
# move to $GOBIN
mv ./cel-key ~/go/bin/ && mv ./build/celestia ~/go/bin/
# check version
celestia verison
# >>> Semantic version: v0.9.1
# >>> ....
Once you’ve installed the celestia
binary, start your bridge node like the celestia-app node.
# reset store
celestia bridge unsafe-reset-store --p2p.network blockspacerace
# init
# please keep your mnemonic, if you want to operator permenantly
celestia bridge init --p2p.network blockspacerace
Now, let’s start your brigde node, and you should see your node syncing!
# need to be operated with celestia-appd in same server
celestia bridge start --core.ip 127.0.0.1 --p2p.network blockspacerace
Upon successful synchronization of both nodes, the next step is to send a transaction to become a validator on the Celestia network. However, before doing so, you must acquire some tokens. Tokens can be obtained through the Celestia Offical Discord.
Note: If acquiring tokens in the Blockspace Race seems challenging, consider obtaining Celestia public testnet tokens by joining the Mocha testnet.
You can then follow this guide in the same manner. To conclude this guide, we will discuss how to send a transaction to become a validator. After successfully sending the transaction, ensure you explore the transaction and verify that your node is active.
# create a my validator wallet
celestia-appd keys add validator
# transaction for creating validator
celestia-appd tx staking create-validator \
--amount=1000000utia \
--pubkey=$(celestia-appd tendermint show-validator) \
--moniker=<ENTER YOUR MONIKER> \
--chain-id=blockspacerace-0 \
--commission-rate=0.1 \
--commission-max-rate=0.2 \
--commission-max-change-rate=0.01 \
--min-self-delegation=1000000 \
--from=validator \
--evm-address=<ENTER YOUR ETHEREUM ADDRESS> \
--fees 5000utia \
--gas auto \
--gas-adjustment 1.5
Thank you for reading my writing and following along. I hope to see your again with better writing and contents soon :)
References
- Celestia Incentivized Testnet Program, Blockspace Race
- https://docs.celestia.org/nodes/blockspace-race/ - Celestia Validator Node Setup
- https://docs.celestia.org/nodes/environment/
- https://docs.celestia.org/nodes/celestia-app/
- https://docs.celestia.org/nodes/celestia-node/
About Cosmostation
Cosmostation has been a web3 infrastructure team contributing to more than 50 protocols since 2018. Our suite of products include Mintscan block explorer, Cosmostation non-custodial crypto wallet, and node validator service. At Cosmostation, we bootstrap networks and onboard end-users.
Links
Mintscan | Extension | Android | iOS | Web Wallet | Spacestation Bridge