In this article I will try to write about installing and configuring the Celestia full storage node
At first lets start installing with dependencies
We will need go to compile the celestia binary
wget https://go.dev/dl/go1.20.2.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.20.2.linux-amd64.tar.gz
cat <<’EOF’ >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.profile
lets check the version with
go version
go version go1.20.2 linux/amd64 "should be the answer"
After installing go we are going to clone celestia
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
If everything is ok till here lets init the node
celestia full init --p2p.network blockspacerace
take a backup of your seed and note your wallet which is named: “my_celes_key”
now we will start the node with a validators rpc endpoint at this example i used pops-teams rpc
celestia full start --core.ip https://rpc-blockspacerace.pops.one --p2p.network blockspacerace
HINT: If you get a warning about udp buffer size try increasing it
non-BSD
It is recommended to increase the maximum buffer size by running:
sysctl -w net.core.rmem_max=2500000
This command would increase the maximum receive buffer size to roughly 2.5 MB.
BSD
Taken from: https://medium.com/@CameronSparr/increase-os-udp-buffers-to-improve-performance-51d167bb1360
On BSD/Darwin systems you need to add about a 15% padding to the kernel limit socket buffer. Meaning if you want a 25MB buffer (8388608 bytes) you need to set the kernel limit to 26214400*1.15 = 30146560. This is not documented anywhere but happens in the kernel here.
To update the value immediately to 2.5M, type the following commands as root:
sysctl -w kern.ipc.maxsockbuf=3014656
Add the following lines to the /etc/sysctl.conf file to keep this setting across reboots:
kern.ipc.maxsockbuf=3014656
take a backup of your peer-id and keys the folder is at
/home/USER/.celestia-full-blockspacerace-0/keys
now lets get the peer id and fill the first task
NODE_TYPE=full
AUTH_TOKEN=$(celestia $NODE_TYPE 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 | jq
you will see something like this:
now for the uptime tracking we will restart the node
celestia full start --core.ip https://rpc-blockspacerace.pops.one/ --core.rpc.port 26657 --core.grpc.port 9090 --keyring.accname my_celes_key --metrics.tls=false --metrics --metrics.endpoint otel.celestia.tools:4318 --gateway --gateway.addr localhost --gateway.port 26659 --p2p.network blockspacerace
The output will look like this
You can fill the task form
Important notice if you run your node behinf a firewall do not forget to allow these ports : 2121 26658 26659
you can track your uptime : https://tiascan.com/full-storage
References: https://docs.celestia.org/developers/node-tutorial/