Full Node

Full Storage Node Setup for Celestia Mainnet

Official documentation

Hardware Requirement
  • Memory: 64 GB

  • CPU: 8 cores

  • Disk: 8 TB NVME Storage

Server preparation

sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make gcc tar clang pkg-config libssl-dev ncdu -y

GO 1.23.1

ver="1.23.1"
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

Install Celestia-node

cd $HOME
rm -rf celestia-node
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node/
git checkout tags/v0.28.2
make build 
sudo make install 
make cel-key

Create wallet

./cel-key add my_celes_key --keyring-backend test --node.type full

(Optional) Restore an existing cel_key

cd ~/celestia-node
./cel-key add my_celes_key --keyring-backend test --node.type full --recover

You can find the address by running the following command in the celestia-node directory

cd $HOME/celestia-node
./cel-key list --node.type full --keyring-backend test

Config and init app

celestia full init --core.ip $CORE_IP

Create Service file

sudo tee /etc/systemd/system/celestia-full.service > /dev/null <<EOF
[Unit]
Description=celestia full
After=network-online.target

[Service]
User=$USER
ExecStart=$(which celestia) full start --archival \
--metrics.tls=true --metrics --metrics.endpoint otel.celestia.observer
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Enable and start service

sudo systemctl daemon-reload
sudo systemctl enable celestia-full
sudo systemctl restart celestia-full && sudo journalctl -u celestia-full -fo cat

Get your node's peerId information

NODE_TYPE=full
AUTH_TOKEN=$(celestia $NODE_TYPE auth admin)

Then you can get the peerId of your node with the following curl command

curl -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

Last updated