LINKS

**Website**
[<https://celestia.org/>](<https://celestia.org/>)

**Docs**
[<https://docs.celestia.org/>](<https://docs.celestia.org/>)

**Explorers**
[<https://celestia.explorers.guru/>](<https://celestia.explorers.guru/>)

**Github**
[<https://github.com/celestiaorg>](<https://github.com/celestiaorg>)

Install dependencies

# Update if needed
sudo apt update && sudo apt upgrade -y

# Insall packages
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu -y

# Install GO
cd $HOME
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"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile

****go version

usual build

OR pebbledb build

cd $HOME
git clone <https://github.com/celestiaorg/celestia-app.git>
cd celestia-app
git checkout v2.1.2
make install

cd $HOME
git clone <https://github.com/celestiaorg/networks>

# do init
celestia-appd init node --chain-id mocha-4

cd $HOME
git clone <https://github.com/celestiaorg/celestia-app.git>
cd celestia-app
git checkout v2.1.2

go mod edit -replace github.com/cometbft/cometbft-db=github.com/cometbft/[email protected]
go mod tidy

go mod edit -replace github.com/tendermint/tm-db=github.com/notional-labs/[email protected]
go mod tidy

go install -ldflags "-w -s -X github.com/cosmos/cosmos-sdk/types.DBBackend=pebbledb \\
 -X github.com/cosmos/cosmos-sdk/version.Version=$(git describe --tags)-pebbledb \\
 -X github.com/cosmos/cosmos-sdk/version.Commit=$(git log -1 --format='%H')" -tags pebbledb ./...

cd $HOME
git clone <https://github.com/celestiaorg/networks>

# do init
celestia-appd init node --chain-id mocha-4

# set pebbledb
db_backend="pebbledb"
sed -i "s/^db_backend *=.*/db_backend = \\"$db_backend\\"/" $HOME/.celestia-app/config/config.toml
sed -i "s/^app-db-backend *=.*/app-db-backend = \\"$db_backend\\"/" $HOME/.celestia-app/config/app.toml

Init node

# copy genesis
cp $HOME/networks/mocha-4/genesis.json $HOME/.celestia-app/config/

# reset
celestia-appd tendermint unsafe-reset-all --home $HOME/.celestia-app

Config peers and seeds

SEEDS="9aa8a73ea9364aa3cf7806d4dd25b6aed88d8152@celestia-testnet.seed.mzonder.com:11156"
sed -i "s|^seeds *=.*|seeds = \\"$SEEDS\\"|" $HOME/.celestia-app/config/config.toml

Config pruning and snapshots

# pruning and snapshots
pruning_keep_recent="50000"
pruning_interval=$(shuf -n1 -e 11 13 17 19 23)
snapshot_interval="2000"

sed -i "s/^pruning *=.*/pruning = \\"custom\\"/;\\
s/^pruning-keep-recent *=.*/pruning-keep-recent = \\"$pruning_keep_recent\\"/;\\
s/^pruning-interval *=.*/pruning-interval = \\"$pruning_interval\\"/;\\
s/^snapshot-interval *=.*/snapshot-interval = $snapshot_interval/" $HOME/.celestia-app/config/app.toml

config

#FOR RPC

sed -i 's/^max-recv-msg-size *=.*/max-recv-msg-size = "104857600"/' $HOME/.celestia-app/config/app.toml
sed -i 's/^discard_abci_responses *=.*/discard_abci_responses = false/' $HOME/.celestia-app/config/config.toml
sed -i 's/^indexer *=.*/indexer = "kv"/' $HOME/.celestia-app/config/config.toml

Config client

celestia-appd config chain-id mocha-4 --home $HOME/.celestia-app

celestia-appd config keyring-backend test --home $HOME/.celestia-app

Change ports here if needed

Create and run service

# create service
tee $HOME/celestia-appd.service > /dev/null <<EOF
[Unit]
Description=celestia-appd
After=network-online.target
[Service]
User=$USER
ExecStart=$(which celestia-appd) start --home $HOME/.celestia-app 
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

sudo mv $HOME/celestia-appd.service /etc/systemd/system/

sudo systemctl daemon-reload