Suntzu | Chain services
Explorer
  • 🏆Mainnet
    • Celestia
      • ⚙️Installation
      • Wallet
      • Validator
      • RPC, API, GRPC
      • Snapshot
      • State Sync
  • 🥈Testnet
    • 0g.ai
      • ⚙️Installation
      • 🔼Upgrade
      • ⛓️Sync
      • ✅RPC, API, GRPC
      • 🎯Useful commands
    • Initia
      • ⚙️Installation
      • 🔼Upgrade
      • ⛓️Sync
      • ✅RPC, API, GRPC
      • 🎯Useful commands
    • Axelar
      • ⚙️Installation
      • 🔼Upgrade
      • ⛓️Sync
      • 🎯Useful commands
    • Celestia
      • ⚙️Installation
      • Wallet
      • Validator
      • RPC, API, GRPC
      • Snapshot
      • State Sync
    • Airchains
      • ⚙️Installation
      • RPC, API, GRPC
      • Validator
      • Snapshot
Powered by GitBook
On this page
  1. Mainnet
  2. Celestia

Installation

PreviousCelestiaNextWallet

Last updated 1 year ago

Hardware
Minimum requirement

CPU

4

RAM

8+ GB

Storage

250 GB SSD

Install dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y

Install Go

sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.21.10.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)

Download and build binaries

# set vars
echo "export WALLET="wallet_celstia"" >> $HOME/.bash_profile
echo "export MONIKER="validator"" >> $HOME/.bash_profile
echo "export CELESTIA_CHAIN_ID="celestia"" >> $HOME/.bash_profile
echo "export CELESTIA_PORT="60"" >> $HOME/.bash_profile
source $HOME/.bash_profile

# download binary
cd $HOME 
rm -rf celestia-app 
git clone https://github.com/celestiaorg/celestia-app.git 
cd celestia-app/ 
APP_VERSION=v1.9.0
git checkout tags/$APP_VERSION -b $APP_VERSION 
make install
cd $HOME
rm -rf networks
git clone https://github.com/celestiaorg/networks.git
celestia-appd init $MONIKER --chain-id $CELESTIA_CHAIN_ID

# config and init app
celestia-appd config node tcp://localhost:${CELESTIA_PORT}657
celestia-appd config keyring-backend os
celestia-appd config chain-id $CELESTIA_CHAIN_ID

# download genesis and addrbook
wget -O $HOME/.celestia-app/config/genesis.json  https://mainnet-files.suntzu.dev/download/snapshot/celestia/genesis.json
wget -O $HOME/.celestia-app/config/addrbook.json https://mainnet-files.suntzu.dev/download/snapshot/celestia/addrbook.json

# set seeds and peers
SEEDS=$(curl -sL https://raw.githubusercontent.com/celestiaorg/networks/master/celestia/seeds.txt | tr '\n' ',')
PEERS=$(curl -sL https://raw.githubusercontent.com/celestiaorg/networks/master/celestia/peers.txt | tr '\n' ',')
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.celestia-app/config/config.toml

# set custom ports in app.toml
sed -i.bak -e "s%:1317%:${CELESTIA_PORT}317%g;
s%:8080%:${CELESTIA_PORT}080%g;
s%:9090%:${CELESTIA_PORT}090%g;
s%:9091%:${CELESTIA_PORT}091%g;
s%:8545%:${CELESTIA_PORT}545%g;
s%:8546%:${CELESTIA_PORT}546%g;
s%:6065%:${CELESTIA_PORT}065%g" $HOME/.celestia-app/config/app.toml

# set custom ports in config.toml file
sed -i.bak -e "s%:26658%:${CELESTIA_PORT}658%g;
s%:26657%:${CELESTIA_PORT}657%g;
s%:6060%:${CELESTIA_PORT}060%g;
s%:26656%:${CELESTIA_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${CELESTIA_PORT}656\"%;
s%:26660%:${CELESTIA_PORT}660%g" $HOME/.celestia-app/config/config.toml

# config pruning
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.celestia-app/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.celestia-app/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"50\"/" $HOME/.celestia-app/config/app.toml

# set minimum gas price, enable prometheus and disable indexing
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.005utia"|g' $HOME/.celestia-app/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.celestia-app/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.celestia-app/config/config.toml

# create 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

# reset and download snapshot
celestia-appd tendermint unsafe-reset-all --home $HOME/.celestia-app
if curl -s --head curl https://mainnet-files.suntzu.dev/download/snapshot/celestia/celestia-snapshot.tar.lz4 | head -n 1 | grep "200" > /dev/null; then
  curl https://mainnet-files.suntzu.dev/download/snapshot/celestia/celestia-snapshot.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.celestia-app
    else
  echo no have snap
fi

# enable and start service
sudo systemctl daemon-reload
sudo systemctl enable celestia-appd
sudo systemctl restart celestia-appd && sudo journalctl -u celestia-appd -f

🏆
⚙️
Overview to running nodes on Celestia | Celestia Docs
Official Documentation
Logo