💻Consensus Node
IMPORTANT - this guide uses a non-standard directory
Server preparation
apt update && apt upgrade -y
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev lz4 -y
Install GO
ver="1.22.3" && \
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
Node installation
git clone https://github.com/celestiaorg/celestia-app && cd celestia-app
git checkout v3.4.2-mocha
make build
mv $HOME/celestia-app/build/celestia-appd $HOME/go/bin/celestia-appd-test
celestia-appd-test version --long --home $HOME/.celestia-app-test
#version: 3.4.2-mocha
#commit: 5b603273
We initialize the node to create the necessary configuration files
celestia-appd-test init UTSA_guide --chain-id mocha-4 --home $HOME/.celestia-app-test
Download Genesis
cd
git clone https://github.com/celestiaorg/networks
cp $HOME/networks/mocha-4/genesis.json $HOME/.celestia-app-test/config
wget -O $HOME/.celestia-app-test/config/genesis.json "https://share103.utsa.tech/celestia-testnet/genesis.json"
sha256sum ~/.celestia-app-test/config/genesis.json
# 0846b99099271b240b638a94e17a6301423b5e4047f6558df543d6e91db7e575
At this stage, we can download the address book
wget -O $HOME/.celestia-app-test/config/addrbook.json "https://share103.utsa.tech/celestia-testnet/addrbook.json"
Set up node configuration
chain_id="mocha-4"
sed -i -e "s/^chain-id *=.*/chain-id = \"$chain_id\"/" $HOME/.celestia-app-test/config/client.toml
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.002utia\"/;" ~/.celestia-app-test/config/app.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.celestia-app-test/config/config.toml
seeds="5d0bf034d6e6a8b5ee31a2f42f753f1107b3a00e@celestia-testnet-seed.itrocket.net:11656"
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.celestia-app-test/config/config.toml
sed -i -e "s/^filter_peers *=.*/filter_peers = \"true\"/" $HOME/.celestia-app-test/config/config.toml
sed -i -e "s|^target_height_duration *=.*|timeout_commit = \"11s\"|" $HOME/.celestia-app-test/config/config.toml
(OPTIONAL) Set up pruning
pruning="custom"
pruning_keep_recent="100"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.celestia-app-test/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.celestia-app-test/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.celestia-app-test/config/app.toml
(OPTIONAL) Set up indexer
indexer="kv"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.celestia-app-test/config/config.toml
Create a service file
tee /etc/systemd/system/celestia-appd-test.service > /dev/null <<EOF
[Unit]
Description=celestia-appd-test testnet
After=network-online.target
[Service]
User=$USER
ExecStart=$(which celestia-appd-test) start --home $HOME/.celestia-app-test
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable celestia-appd-test
systemctl restart celestia-appd-test && journalctl -u celestia-appd-test -f -o cat
Last updated