Overview
Celestia is a modular blockchain network designed to provide scalable data availability for decentralized applications. Unlike traditional monolithic blockchains, which bundle execution, consensus, and data availability into a single layer, Celestia separates these functions. This allows developers to build customizable blockchains-rollups or sovereign chains-without maintaining their own consensus network.
At its core, Celestia uses Data Availability Sampling (DAS), a technique that lets nodes verify data availability without downloading entire blocks. This improves scalability while maintaining security. Rollups publish their transaction data to Celestia, and Celestia ensures that data is available and verifiable.
Celestia’s modular architecture leads to three major advantages:
Scalability - DAS enables higher throughput as more light nodes join.
Sovereignty - Developers can launch independent chains relying on Celestia only for consensus and data availability.
Ease of deployment - Rollups can be deployed quickly without building validator sets.
In summary, Celestia is a data-availability-focused base layer that enables a modular approach to blockchain design, making decentralized networks more scalable, flexible, and efficient.
Public Endpoints
| Type | Endpoint | Link |
|---|---|---|
| RPC | https://celestia-mainnet-rpc.crouton.digital | |
| API | https://celestia-mainnet-api.crouton.digital | |
| gRPC | celestia-mainnet-grpc.crouton.digital:11690 | |
| peer | [email protected]:11656 |
Hardware requirements
Recommended server specs for a Celestia validator: 32 GB RAM, 32 CPU cores, and high-performance NVMe storage with at least 12 TiB capacity.
Prepare
Update and install packages
sudo apt update && sudo apt upgrade -y && \ sudo apt install -y curl git wget jq make gcc clang tmux screen htop ncdu unzip tar lz4 bc build-essential pkg-config libssl-dev libleveldb-dev bsdmainutils fail2ban
Installing Go
VER="1.24.1" && \ cd $HOME && \ 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" && \ mkdir -p $HOME/go/bin && \ grep -qxF 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' $HOME/.bash_profile || echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version
Binary
Building from source
cd $HOME && \ rm -rf celestia && \ git clone https://github.com/celestiaorg/celestia-app.git celestia && \ cd celestia && \ APP_VERSION="v6.4.10" && \ git checkout tags/$APP_VERSION -b $APP_VERSION && \ make install && \ celestia-appd version --long | grep -E 'version|commit' # version: 6.4.10 # commit: 0b26ea0c
Initialization
Initialize the node and create the default configuration files
celestia-appd init MONIKER --chain-id celestia
Replace MONIKER with your own validator name. This name will be used as your node’s identifier on the network.
Genesis
Download genesis
mkdir -p $HOME/.celestia-app/config && \ wget -O $HOME/.celestia-app/config/genesis.json https://storage.crouton.digital/mainnet/celestia/files/genesis.json
Addrbook
Download addrbook
mkdir -p $HOME/.celestia-app/config && \ wget -O $HOME/.celestia-app/config/addrbook.json https://storage.crouton.digital/mainnet/celestia/files/addrbook.json
Configuration
Set the minimum gas price in app.toml
sed -i.bak \ -e 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.002utia"|' \ $HOME/.celestia-app/config/app.toml
Create a service file
sudo tee /etc/systemd/system/celestia-appd.service > /dev/null <<EOF [Unit] Description=celestia node After=network-online.target [Service] User=$USER WorkingDirectory=$HOME/.celestia-app ExecStart=$(which celestia-appd) start --home $HOME/.celestia-app Restart=on-failure RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
Start the node
sudo systemctl daemon-reload && \ sudo systemctl enable celestia-appd && \ sudo systemctl restart celestia-appd && \ sudo journalctl -u celestia-appd -f -o cat
If your server is using cubic as the TCP congestion control algorithm, switch it to bbr, as celestia-appd requires BBR for optimal P2P performance.
Run this:
sudo modprobe tcp_bbr && \ echo "net.core.default_qdisc=fq" | sudo tee /etc/sysctl.d/99-bbr.conf > /dev/null && \ echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.d/99-bbr.conf > /dev/null && \ sudo sysctl --system && \ sysctl net.ipv4.tcp_congestion_control
Restore node from snapshot
sudo apt install -y lz4 && \ sudo systemctl stop celestia-appd && \ cp $HOME/.celestia-app/data/priv_validator_state.json $HOME/.celestia-app/priv_validator_state.json.backup && \ rm -rf $HOME/.celestia-app/data && \ curl -L https://storage.crouton.digital/mainnet/celestia/snapshots/celestia_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.celestia-app && \ mkdir -p $HOME/.celestia-app/data && \ mv $HOME/.celestia-app/priv_validator_state.json.backup $HOME/.celestia-app/data/priv_validator_state.json && \ sudo systemctl restart celestia-appd && \ sudo journalctl -u celestia-appd -f -o cat
Key management
Wallet management commands are provided below as examples. Replace wallet with your own wallet name before running them.
celestia-appd keys add wallet
After creating or importing your wallet, fund it with at least the minimum amount required by the network to create a validator. On Celestia mainnet, this is 1 TIA plus transaction fees.
Validator management
celestia-appd tx staking create-validator \ --amount 1000000utia \ --from wallet \ --commission-rate 0.1 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.01 \ --min-self-delegation 1000000 \ --pubkey $(celestia-appd tendermint show-validator) \ --moniker "MONIKER" \ --identity "TESTKEY123" \ --website "https://example.com" \ --details "Reliable validator for the network." \ --chain-id celestia \ --fees 21000utia \ --gas 220000 \ -y
Replace the example values with your own details. If the command fails or the transaction does not go through, try increasing the gas limit or the commission fee.
Validator commands
celestia-appd status 2>&1 | jq
Make sure to replace wallet with the name of your wallet before running the command.
Governance
celestia-appd q gov proposals
"1" is only an example proposal ID, so replace it with the actual one. Available voting options are "yes" to approve, "no" to reject, "abstain" to abstain, and "no_with_veto" to reject with veto.
Onchain
celestia-appd tx distribution withdraw-rewards $(celestia-appd keys show wallet --bech val -a) --commission --from wallet --chain-id celestia --gas auto -y
celestia-appd tx staking delegate $(celestia-appd keys show wallet --bech val -a) 1000000utia --from wallet --chain-id celestia --gas 300000 --fees 2000utia -y
These commands contain example values. Be sure to replace them with your own validator address, wallet name, wallet address, and any other required details before running them.
Service operations
sudo journalctl -u celestia-appd -f -o cat
Manual upgrade
cd $HOME && \ rm -rf celestia && \ git clone https://github.com/celestiaorg/celestia-app.git celestia && \ cd celestia && \ APP_VERSION=v6.4.10 && \ git checkout tags/$APP_VERSION -b $APP_VERSION && \ make install && \ sudo systemctl restart celestia-appd && \ sudo journalctl -u celestia-appd -f


