Skip to main content

Full Storage Node

Hardware requirements

  • Memory: 8 GB RAM
  • CPU: Quad-Core
  • Disk: 1 TB SSD Storage
  • Bandwidth: 1 Gbps for Download/1 Gbps for Upload

Setting up full storage node

Server preparing

sudo apt -q update
sudo apt -qy install curl git jq lz4 build-essential
sudo apt -qy upgrade

full-1

Install Go

ver="1.20.2" 
cd $HOME
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

full-2

Check Go version

go version

You should see output like:

full-3

Download the binary file

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

full-4

Check Celestia version

celestia version
info

Check the latest celestia-node version here

Create key for node

note

Change f5nodes to your moniker

  • Create a new key
./cel-key add f5nodes --keyring-backend test --node.type full --p2p.network blockspacerace

full-6

  • Restore an existing key using a mnemonic (optional)
./cel-key add f5nodes --keyring-backend test --node.type full --p2p.network blockspacerace --recover

Then we can go to #faucet channel for “Blockspace Race” and request test tokens in format:

$request <celestia1ux3y......> 

Initialize Full Node

note

Change f5nodes to your moniker

celestia full init \
--keyring.accname f5nodes \
--p2p.network blockspacerace

full-7

Create a service file

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

[Service]
User=$USER
ExecStart=/usr/local/bin/celestia full start --core.ip https://rpc-blockspacerace.pops.one:9090 --gateway --gateway.addr localhost --gateway.port 26659 --p2p.network blockspacerace
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

full-8

Start the node

sudo systemctl enable celestia-full
sudo systemctl start celestia-full && sudo journalctl -u celestia-full.service -f

full-9

Useful commands

Check wallet

cd celestia-node
./cel-key list --node.type full --keyring-backend test --p2p.network blockspacerace

Check wallet balance

curl -X GET http://127.0.0.1:26659/balance

Get full node ID

AUTH_TOKEN=$(celestia full auth admin --p2p.network blockspacerace)
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

Check logs

sudo journalctl -u celestia-full.service -f

Submitting a PayForData transaction

curl -X POST -d '{"namespace_id": "0c204d39600fddd3",
"data": "f1f20ca8007e910a3bf8b2e61da0f26bca07ef78717a6ea54165f5",
"gas_limit": 80000, "fee": 2000}' http://localhost:26659/submit_pfd

Delete node

cd $HOME
sudo systemctl stop celestia-full
sudo systemctl disable celestia-full
sudo rm /etc/systemd/system/celestia-full.service
sudo systemctl daemon-reload
rm -f $(which celestia-full)
rm -rf $HOME/.celestia-full
rm -rf $HOME/celestia-full