sudo apt -q update sudo apt -qy install curl git jq lz4 build-essential sudo apt -qy upgradeInstall Go
sudo rm -rf /usr/local/go curl -Ls https://go.dev/dl/go1.22.0.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)
cd $HOME git clone https://github.com/celestiaorg/celestia-app.git cd celestia-app gut pull git checkout v3.0.2 make install celestia-appd version which celestia-appd
celestia-appd config chain-id celestiaInitialize the node
celestia-appd init you-node-name --chain-id celestiaDownload genesis and addrbook
curl -Ls https://snapshots.tienthuattoan.com/mainnet/celestia/genesis.json > $HOME/.celestia-app/config/genesis.json curl -Ls https://snapshots.tienthuattoan.com/mainnet/celestia/addrbook.json > $HOME/.celestia-app/config/addrbook.jsonAdd seed
sed -i -e "s|^seeds *=.*|seeds = \"2030b8d022cd3c65b6f267943df82d69c3e6ba64@celestia-rpc.tienthuattoan.com:26656\"|" $HOME/.celestia-app/config/config.tomlSet minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.002utia\"|" $HOME/.celestia-app/config/app.tomlSet commit timeout
sed -i -e "s|^target_height_duration *=.*|timeout_commit = \"11s\"|" $HOME/.celestia-app/config/config.tomlSet pruning
sed -i -e 's|^pruning *=.*|pruning = "nothing"|' $HOME/.celestia-app/config/app.toml
wget -O celestia_latest.tar.lz4 https://snapshots.tienthuattoan.com/mainnet/celestia/celestia_latest.tar.lz4 && lz4 -c -d celestia_latest.tar.lz4 | tar -x -C $HOME/.celestia-app
sudo tee <Start the service and check the logs/dev/null /etc/systemd/system/celestia-appd.service [Unit] Description=Celestia node service After=network-online.target [Service] User=$USER ExecStart=$(which celestia-appd) start Restart=on-failure RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload
sudo systemctl enable celestia-appd
sudo systemctl restart celestia-appd
sudo journalctl -u celestia-appd -f
Official documentation https://docs.celestia.org/nodes/validator-node1. Create a wallet
celestia-appd keys add walletSave the mnemonic output as this is the only way to recover your validator wallet in case you lose it! To list your wallets use command below
celestia-appd keys list2. Top up wallet with tokens
You can buy tokens at https://app.osmosis.zone
To check wallet balance use command below
celestia-appd q bank balances $(celestia-appd keys show wallet -a)3. Create validator Please make sure you have adjusted moniker, identity, details, website to match your values.
celestia-appd tx staking create-validator \ --amount 1000000utia \ --pubkey $(celestia-appd tendermint show-validator) \ --moniker "YOUR_MONIKER_NAME" \ --identity "YOUR_KEYBASE_ID" \ --details "YOUR_DETAILS" \ --website "YOUR_WEBSITE_URL" \ --chain-id celestia \ --commission-rate 0.05 \ --commission-max-rate 0.20 \ --commission-max-change-rate 0.05 \ --from wallet \ --gas-adjustment 1.4 \ --gas auto \ --gas-prices 0.005utia
Save the ~/.celestia-app/config/priv_validator_key.json
file as this is the only way to recover your validator signing key in case you lose it!
Official documentation https://docs.celestia.org/nodes/bridge-nodeDownload and build binaries
cd $HOME git clone https://github.com/celestiaorg/celestia-node.git cd celestia-node git pull git checkout v3.0.2-mocha make install celestia version make cel-key make install-key which cel-key
cel-key add bridge-wallet --node.type bridge --p2p.network celestiaRecover existing wallet
cel-key add bridge-wallet --node.type bridge --p2p.network celestia --recoverFund the wallet with testnet tokens
Once you start the Bridge Node, a wallet key will be generated for you. You will need to fund that addressInitialize Bridge node
celestia bridge init \ --keyring.keyname bridge-wallet \ --core.ip http://localhost \ --p2p.network celestiaCreate service
sudo tee /etc/systemd/system/celestia-bridge.service > /dev/null << EOF [Unit] Description=Celestia Bridge Node service After=network-online.target [Service] User=$USER ExecStart=$(which celestia) bridge start --metrics.tls=true \ --metrics --metrics.endpoint otel.celestia.observer \ --keyring.keyname bridge-wallet \ --core.ip http://localhost \ --p2p.network celestia Restart=on-failure RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOFStart Bridge node
sudo systemctl daemon-reload sudo systemctl enable celestia-bridge sudo systemctl restart celestia-bridge sudo journalctl -u celestia-bridge -f
AUTH_TOKEN=$(celestia bridge auth admin --p2p.network celestia) curl -s -X POST -H "Authorization: Bearer $AUTH_TOKEN" -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":0,"method":"p2p.Info","params":[]}' http://localhost:26658 | jq -r .result.IDGet Bridge Node ID
celestia p2p info --node.store ~/.celestia-bridgeCheck bridge wallet balance
celestia state balance --node.store ~/.celestia-bridgeGet wallet address
cd $HOME/celestia-node ./cel-key list --node.type bridge --keyring-backend test --p2p.network celestiaRestore an existing cel_key
KEY_NAME="my_celes_key" cd ~/celestia-node ./cel-key add $KEY_NAME --keyring-backend test --node.type bridge --recover --p2p.network celestiaCheck bridge node status
celestia header sync-state --node.store ~/.celestia-bridgeReset node
celestia bridge unsafe-reset-store --p2p.network celestiaDelete bridge node
sudo systemctl stop celestia-bridge sudo systemctl disable celestia-bridge sudo rm /etc/systemd/system/celestia-bridge.service rm -rf $HOME/celestia-node $HOME/.celestia-app $HOME/.celestia-bridge