telegramLight Node Setup for Celestia Mainnet — celestia

Official documentation

Setting up a light node

Update packages and Install dependencies:

sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make gcc tar clang pkg-config libssl-dev ncdu -y

Install :

cd ~
! [ -x "$(command -v go)" ] && {
VER="1.22.6"
wget "https://golang.org/dl/go$VER.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$VER.linux-amd64.tar.gz"
rm "go$VER.linux-amd64.tar.gz"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source ~/.bash_profile
}
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin
go version

Download and build binaries:

cd $HOME
rm -rf celestia-node
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node/
git checkout tags/v0.20.3 
make build 
sudo make install 
make cel-key

Config and init app:

celestia light init

Create wallet:

KEY_NAME="my_celes_key"
cd ~/celestia-node
./cel-key add $KEY_NAME --keyring-backend test --node.type light

(Optional) Restore an existing cel_key:

KEY_NAME="my_celes_key"
cd ~/celestia-node
./cel-key add $KEY_NAME --keyring-backend test --node.type light

You can find the address by running the following command in the celestia-node directory:

cd $HOME/celestia-node
./cel-key list --node.type light --keyring-backend test

Add Consensus node RPC and gRPC ports:

CORE_IP="<PUT_CONSENSUS_NODE_IP>"
CORE_RPC_PORT="<PUT_CONSENSUS_NODE_RPC_PORT>"
CORE_GRPC_PORT="<PUT_CONSENSUS_NODE_GRPC_PORT>"
KEY_NAME="my_celes_key"

Create Service file:

sudo tee /etc/systemd/system/celestia-light.service > /dev/null <<EOF
[Unit]
Description=celestia light
After=network-online.target

[Service]
User=$USER
ExecStart=$(which celestia) light start \
--core.ip $CORE_IP \
--core.rpc.port $CORE_RPC_PORT \
--core.grpc.port $CORE_GRPC_PORT \
--keyring.accname $KEY_NAME \
--metrics.tls=true \
--metrics --metrics.endpoint otel.celestia.observer
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Enable and start service:

sudo systemctl daemon-reload
sudo systemctl enable celestia-light
sudo systemctl restart celestia-light && sudo journalctl -u celestia-light -fo cat

Get your node information:

❗NOTE: You can only generate an auth token after initializing and starting your celestia-node.

NODE_TYPE=light
AUTH_TOKEN=$(celestia $NODE_TYPE auth admin)

Then you can get the peerId of your node with the following curl command:

curl -X POST \
     -H "Authorization: Bearer $AUTH_TOKEN" \
     -H 'Content-Type: application/json' \
     -d '{"jsonrpc":"2.0","id":0,"method":"p2p.Info","params":[]}' \
     http://localhost:26658

Cheat sheet

Check Light node wallet balance:

celestia state balance --node.store ~/.celestia-light/

Get wallet address:

cd $HOME/celestia-node
./cel-key list --node.type light --keyring-backend test

Restore an existing cel_key:

KEY_NAME="my_celes_key"
cd ~/celestia-node
./cel-key add $KEY_NAME --keyring-backend test --node.type light  --recover

Check light node status:

celestia header sync-state --node.store ~/.celestia-light/

Get Node ID:

celestia p2p info --node.store ~/.celestia-light/

(Optional) Add permissions for transferring keys to another server:

chmod -R 700 ~/.celestia-light

Reset node:

celestia light unsafe-reset-store

Upgrade

Stop light node:

sudo systemctl stop celestia-light

Download binary:

cd $HOME
rm -rf celestia-node
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node/
git checkout tags/v0.20.3 
make build 
sudo make install 
make cel-key

Update:

celestia light config-update

Start light node:

sudo systemctl restart celestia-light && sudo journalctl -u celestia-light -fo cat

Delete light node

sudo systemctl stop celestia-light
sudo systemctl disable celestia-light
sudo rm /etc/systemd/system/celestia-light*
rm -rf $HOME/celestia-node $HOME/.celestia-light
Copyright © 2025 ITRocket. All Rights Reserved.