All networks
Explorer
Celestia logo

Celestia

mainnet
Chain ID
celestia
Node
v9.0.4

πŸ“š Node installation

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc lz4 gcc -y

Install Go

cd $HOME && \
ver="1.26.3" && \
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" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
go version

The output should be: go version go1.26.3 linux/amd64

Download binary for work

git clone https://github.com/celestiaorg/celestia-app
cd celestia-app
git checkout v9.0.4
make install

Specify variables, for ease of work

echo 'export celestia_moniker="Validator_name"' >> $HOME/.profile
echo 'export celestia_wallet="Wallet_name"' >> $HOME/.profile
echo 'export celestia_port="111"' >> $HOME/.profile
source $HOME/.profile

Initialize the node

celestia-appd init $celestia_moniker --chain-id celestia

Set the settings

celestia-appd config chain-id celestia && \
peers=0f7fea6ba71798a9daccf4c38622d8c97f747067@65.21.84.223:11656,405b4fd42761f41d2fa0af5de26988f7e24fc9ff@192.200.108.66:26656,d272293cec9585b414566dc2943675b5021d63fd@88.198.27.51:56656,b0643eb32e7c8d9e842df7dc82fc457259a29e91@94.158.242.192:27658,940dfbbb0884185984b098457a21e523391545ac@95.216.78.225:12056 && \
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.celestia-app/config/config.toml && \
seeds="6b0ffcce9b59b91ceb8eea5d4599e27707e3604a@seeds.stakeup.tech:10235" && \
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.celestia-app/config/config.toml

Create wallet

celestia-appd keys add $celestia_wallet

Save the wallet. Or restore if there is a mnemonic:

celestia-appd keys add $celestia_wallet --recover

Download Genesis

celestia-appd download-genesis celestia

Set minimum gas price

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.002utia"|g' $HOME/.celestia-app/config/app.toml

Optional Settings

Memory optimization
cd $HOME/.celestia-app/config && \
indexer="null" && \
snapshot_interval="0" && \
pruning="custom" && \
pruning_keep_recent="1000" && \
pruning_interval="50" && \
sed -i.bak -e "s/^indexer *=.*/indexer = \"$indexer\"/" config.toml && \
sed -i.bak -e "s/^snapshot-interval *=.*/snapshot-interval = \"$snapshot_interval\"/" app.toml && \
sed -i.bak -e "s/^pruning *=.*/pruning = \"$pruning\"/" app.toml && \
sed -i.bak -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" app.toml && \
sed -i.bak -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" app.toml
Change port
cd $HOME/.celestia-app/config && \
sed -i.bak \
    -e "s/:\s*26656/:${celestia_port}56/g" \
    -e "s/:\s*26657/:${celestia_port}57/g" \
    -e "s/:\s*26658/:${celestia_port}58/g" \
    -e "s/:\s*26660/:${celestia_port}59/g" \
    -e "s/:\s*6060/:${celestia_port}61/g" \
    config.toml

sed -i.bak \
    -e "s/:\s*1317/:${celestia_port}17/g" \
    -e "s/:\s*8080/:${celestia_port}80/g" \
    -e "s/:\s*8545/:${celestia_port}545/g" \
    -e "s/:\s*8546/:${celestia_port}546/g" \
    -e "s/:\s*9090/:${celestia_port}90/g" \
    -e "s/:\s*9091/:${celestia_port}91/g" \
    app.toml && \
echo 'export celestia_node=http://localhost:${celestia_port}57' >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
celestia-appd config node $celestia_node

Create a service file

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

[Service]
User=$USER
ExecStart=$(which celestia-appd) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload &&
sudo systemctl enable celestia-appd &&
sudo systemctl restart celestia-appd && sudo journalctl -u celestia-appd -f -o cat