Celestia Full Storage Node

Guide to install Celestia Full Storage Node

The Full storage node is a Data Availability Node, this node stores all the data but does not connect to Consensus. Therefore it doesn't connect to Celestia App (hence not a full node) but stores all the data. A bridge node is used to bridge between consensus nodes and data (storage & light) nodes.

Mamaki test network is deprecated now and replaced with Mocha test network, please see this guide for updated instructions

1. Set Up Dependencies

First, make sure to update and upgrade the OS:

sudo apt update && sudo apt upgrade -y

Install essential packages for Celestia

These are essential packages that are necessary to execute many tasks like downloading files, compiling and monitoring the node:

sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu -y

Firewall Settings

we need to enable firewall and open ports on our device

sudo ufw allow 9090/tcp
sudo ufw enable

sudo ufw status

IMPORTANT: If you are going to remote into this server, make sure to enable SSH before enabling sudo ufw allow ssh

Install Golang

remove any existing installation

sudo rm -rf /usr/local/go
sudo rm -rf ~/go
cd $HOME
sudo wget https://golang.org/dl/go1.18.2.linux-amd64.tar.gz
sudo tar -xvf go1.18.2.linux-amd64.tar.gz
sudo rm go1.18.2.linux-amd64.tar.gz
sudo mv go /usr/local

Now we need to add the /usr/local/go/bin directory to $PATH:

mkdir ~/go
echo 'GOROOT=/usr/local/go' >> ~/.bashrc
echo 'GOPATH=~/go' >> ~/.bashrc
echo 'PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.bashrc

make changes to the applicable file, should now be persistent in the .bashrc

source .bashrc

Confirm installation

go version

This should Return

go version go1.18.2 linux/amd64

2. Install Celestia Node

For Celestia full storage node setup: we need to install celestia node which handles data availability and not consensus, https://docs.celestia.org/developers/celestia-app/

Install Celestia Node

create a binary file named celestia-node inside $HOME/go/bin folder which will be used later to run the node. Check the Discord ‘mamaki testnet’ announcements for the latest version (currently this is v0.3.0-rc2)

cd $HOME
rm -rf celestia-node
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node/
git checkout tags/v0.3.0-rc2
make install

confirm installation by running from within the directory celestia version

3. Run Celestia Node

Initialize Celestia node

celestia full init

Start the Full Storage Node

A Full Storage Node requires a connection to a validator node's gRPC endpoint (which is usually exposed on port 9090): we can find RPC endpoints, check out the list of resources here.

celestia full start --core.grpc http://<ip addr of core node>:9090

Example

celestia full start --core.grpc http://https://rpc-mamaki.pops.one:9090

Output will look like this on first start, this creates a Key for you

Stop the node with ctrl + c

4. Celestia Node Key

cd celestia-node/

Will install binary in current working directory from the celestia-node repository pulled in Step 2, accessible with ./cel-key

make cel-key

Find Celestia node Key

this will list the key installed earlier on first start-up in order for you to find your address

./cel-key list --node.type full --keyring-backend test

Output will be something like this, and stored in .celestia-full/keys/keyring-test

Fund Wallet with Mamaki Test tokens

Once synced the address will need to be funded with Mamaki Testnet tokens to pay for PayForData transactions.

A section on wallet and claiming tokens can be found here

Optional: Generate your own Key

./cel-key add <key_name> --keyring-backend test --node.type full

This can then be selected later, in the start command with the flag --keyring.accname <name_of_custom_key>

5. Create Service to Run Node

Set up celestia-node as a background process.

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=$HOME/go/bin/celestia full start
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

confirm set up with

cat /etc/systemd/system/celestia-full.service

to make changes

nano /etc/systemd/system/celestia-full.service

Enable and start celestia-full daemon

systemctl enable celestia-full
systemctl start celestia-full

To view logs

journalctl -u celestia-full.service -f

you are now running a Celestia Full Storage Node as a background service

Optional: specify endpoints and wallet

we can edit the flags in our system service file

celestia full start --core.grpc http://<ip>:9090 --keyring.accname <name_of_custom_key>

**
**

Subscribe to GLCstaked
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.