Page cover

Installation

Installation

Install with one line script

bash <(curl -s https://raw.githubusercontent.com/staketown/cosmos/master/celestia/main_install.sh)

Manual installation

sudo apt update
sudo apt install -y curl git jq lz4 build-essential unzip

bash <(curl -s "https://raw.githubusercontent.com/staketown/cosmos/master/utils/go_install.sh")
source .bash_profile

cd $HOME || return
rm -rf $HOME/celestia-app
git clone https://github.com/celestiaorg/celestia-app.git
cd $HOME/celestia-app || return
git checkout v6.3.0

make install

celestia-appd config keyring-backend os
celestia-appd config chain-id celestia
celestia-appd init "Your Moniker" --chain-id celestia

# Download genesis and addrbook
curl -Ls https://snapshots.stake-town.com/celestia/genesis.json > $HOME/.celestia-app/config/genesis.json
curl -Ls https://snapshots.stake-town.com/celestia/addrbook.json > $HOME/.celestia-app/config/addrbook.json

APP_TOML="~/.celestia-app/config/app.toml"
sed -i 's|^pruning *=.*|pruning = "nothing"|g' $APP_TOML
sed -i -e "s|^target_height_duration *=.*|timeout_commit = \"11s\"|" $HOME/.celestia-app/config/config.toml

CONFIG_TOML="~/.celestia-app/config/config.toml"
SEEDS=""
PEERS="[email protected]:34656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $CONFIG_TOML
sed -i.bak -e "s/^seeds =.*/seeds = \"$SEEDS\"/" $CONFIG_TOML
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $CONFIG_TOML
sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.002utia"|g' $CONFIG_TOML
sed -i 's|^prometheus *=.*|prometheus = true|' $CONFIG_TOML
sed -i -e "s/^filter_peers *=.*/filter_peers = \"true\"/" $CONFIG_TOML

# Install cosmovisor
go install cosmossdk.io/tools/cosmovisor/cmd/[email protected]
mkdir -p ~/.celestia-app/cosmovisor/genesis/bin
mkdir -p ~/.celestia-app/cosmovisor/upgrades
cp ~/go/bin/celestia-appd ~/.celestia-app/cosmovisor/genesis/bin

sudo tee /etc/systemd/system/celestia-appd.service > /dev/null << EOF
[Unit]
Description=Celestia Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which cosmovisor) run start --v2-upgrade-height 2371495
Restart=on-failure
RestartSec=3
LimitNOFILE=10000
Environment="DAEMON_NAME=celestia-appd"
Environment="DAEMON_HOME=$HOME/.celestia-app"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="UNSAFE_SKIP_BACKUP=true"
[Install]
WantedBy=multi-user.target
EOF

# Snapshots
celestia-appd tendermint unsafe-reset-all --home $HOME/.celestia-app --keep-addr-book

URL=https://snapshots.stake-town.com/celestia/celestia_latest.tar.lz4
curl -L $URL | lz4 -dc - | tar -xf - -C $HOME/.celestia-app
[[ -f $HOME/.celestia-app/data/upgrade-info.json ]] && cp $HOME/.celestia-app/data/upgrade-info.json $HOME/.celestia-app/cosmovisor/genesis/upgrade-info.json

(Optional) Configure timeouts for processing blocks

Enable and start service

After successful synchronisation we recommend to turn off snapshot_interval and state sync, this will save space on your hardware.

Wallet creation

Create wallet

⚠️ store seed phrase, important during recovering

Recover wallet

⚠️ store seed phrase, important during recovering

Validator creation

After successful synchronisation we can proceed with validation creation.

Create validator

Install Bridge Node (Shwap)

Download and build binaries

Add new bridge wallet

Recover existent bridge wallet (in case you already have bridge wallet)

⚠️ Once you start the Bridge Node, a wallet key will be generated. You need to fund that address with testnet tokens (could be used faucet) to pay for PayForBlob transactions

Initialize Bridge node

Create service

Load bridge node service file

Start Bridge node

Check bridge node logs

Last updated