**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>)
# 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.23.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
cd $HOME
git clone <https://github.com/celestiaorg/celestia-app.git>
cd celestia-app
make enable-bbr
sysctl net.ipv4.tcp_congestion_control | awk '{print $3}'
git checkout v4.0.6-mocha
make install
cd $HOME
git clone <https://github.com/celestiaorg/networks>
# do init
celestia-appd init node --chain-id mocha-4
cd $HOME
rm -rf celestia-app
git clone <https://github.com/celestiaorg/celestia-app.git>
cd celestia-app
make enable-bbr
sysctl net.ipv4.tcp_congestion_control | awk '{print $3}'
# workaround
VERSION="v3.10.3-mocha"
cd $HOME/celestia-app
git reset --hard
git pull
git checkout ${VERSION}
# build v3
go mod edit -replace github.com/tendermint/tm-db=github.com/notional-labs/[email protected]
go mod tidy
mkdir -p build
go build -o ./build -ldflags "-w -s -X github.com/cosmos/cosmos-sdk/types.DBBackend=pebbledb \\
-X github.com/cosmos/cosmos-sdk/version.Name=celestia-app \\
-X github.com/cosmos/cosmos-sdk/version.AppName=celestia-appd \\
-X github.com/cosmos/cosmos-sdk/version.Version=${VERSION} \\
-X github.com/cosmos/cosmos-sdk/version.Commit=$(git log -1 --format='%H')" -tags pebbledb ./...
cd build
tar czvf $HOME/celestia-app_linux_v3_amd64.tar.gz celestia-appd
# build v4
cd $HOME/celestia-app
git reset --hard
git checkout v4.0.6-mocha
# prepare for embedding
cp $HOME/celestia-app_linux_v3_amd64.tar.gz internal/embedding/celestia-app_linux_v3_amd64.tar.gz
echo "${VERSION}" > internal/embedding/.embed_version_celestia-app_linux_v3_amd64.tar.gz
# patch makefile
# line 23 - add pebbledb to tags
# 23 BUILD_FLAGS_MULTIPLEXER := -tags "ledger multiplexer **pebbledb**" -ldflags '$(ldflags)'
# **add to ldflags**
# line 16 ldflags = -w -s -X github.com/cosmos/cosmos-sdk/types.DBBackend=pebbledb \\
make install
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
# copy genesis
cp $HOME/networks/mocha-4/genesis.json $HOME/.celestia-app/config/
# reset
celestia-appd tendermint unsafe-reset-all --home $HOME/.celestia-app
SEEDS="9aa8a73ea9364aa3cf7806d4dd25b6aed88d8152@celestia-testnet.seed.mzonder.com:11156"
sed -i "s|^seeds *=.*|seeds = \\"$SEEDS\\"|" $HOME/.celestia-app/config/config.toml
# pruning and snapshots
pruning_keep_recent="10000"
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
sed -i 's/^minimum-gas-prices *=.*/minimum-gas-prices = "0.002utia"/' $HOME/.celestia-app/config/app.toml
sed -i 's/^send_rate *=.*/send_rate = 10485760/' $HOME/.celestia-app/config/config.toml
sed -i 's/^recv_rate *=.*/recv_rate = 10485760/' $HOME/.celestia-app/config/config.toml
sed -i '/\\[mempool\\]/, /^version =/ s/=.*/= "v1"/' $HOME/.celestia-app/config/config.toml
sed -i 's/^max_txs_bytes *=.*/max_txs_bytes = 39485440/' $HOME/.celestia-app/config/config.toml
sed -i 's/^max_tx_bytes *=.*/max_tx_bytes = 7897088/' $HOME/.celestia-app/config/config.toml
#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
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 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