# Celestia Full Storage Node - Mocha

By [GLCstaked](https://paragraph.com/@glcstaked) · 2023-01-04

---

Set up guide for a Full Storage Node on Celestia Mocha Testnet.

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

A setup script, for easier install is available here:

[

GitHub - GLCNI/celestia-node-scripts: deployment scripts for celestia nodes
---------------------------------------------------------------------------

deployment scripts for celestia nodes. Contribute to GLCNI/celestia-node-scripts development by creating an account on GitHub.

https://github.com

![](https://storage.googleapis.com/papyrus_images/e0ed20cc75ba37d28fb09f94147d5fdae53bab10ab8dd5fa5a566a7b0bc15abc.png)

](https://github.com/GLCNI/celestia-node-scripts)

**Hardware Requirements**:

4vCPU / 8GB RAM / 250GB SSD / 1 Gbps Download/100 Mbps Upload OS: Ubuntu Linux 20.04 (LTS) x64

See Official guides for [Celestia on setting up a Full Storage Node here](https://docs.celestia.org/nodes/full-storage-node), This document is designed for an easy step by step setup for beginner users.

1\. Set up dependencies
-----------------------

**Update 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
    

**Change to Root User**

Most of the packages to install work best under root, to enter root in the terminal with `sudo -i` which can be exited back to normal user with `exit` anytime.

**Install Golang**

most of Celestia software is written in go, so the go programming language suite needs to be installed. remove any existing installation

    cd $HOME
    sudo rm -rf /usr/local/go
    sudo rm -rf ~/go
    

Install Go and extract

    ver="1.19.4"
    wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
    sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
    rm "go$ver.linux-amd64.tar.gz"
    

Add Go to PATH

    echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
    source $HOME/.bash_profile
    

Adding to the PATH variable is to allow Linux shell to know where to look for executable files is easy, to confirm this try `go version`

This should Return`go version go1.19.4 linux/amd64`

![](https://storage.googleapis.com/papyrus_images/5c76fd92e66205fa35eb2cb25a00bb6822bb0bcd1d459a395d524d5c0a1aded9.png)

2\. Install Celestia Node
-------------------------

For Celestia full storage node setup: we need to install `celestia-node` the software stack for data availability not consensus, [https://docs.celestia.org/developers/celestia-app/](https://docs.celestia.org/developers/celestia-app/)

**Install Celestia Node**

Check the Discord ‘mocha testnet’ announcements for the latest version (currently this is v0.6.1)

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

confirm installation by running from within the directory `celestia version`

![Output will look similar if installed correctly ](https://storage.googleapis.com/papyrus_images/3b620e9b21e4d69233406bca44e932a9b1a3be0e87af9faf506245bd4a7b27d8.png)

Output will look similar if installed correctly

The Binary for celestia-node is installed to `/usr/local/bin`

3\. Run Celestia Node
---------------------

**Initialise Celestia Node for full storage**

From Directory `celestia-node`

    celestia full init
    

![](https://storage.googleapis.com/papyrus_images/28f1187f7616880802a4ad2b37e5c40ea5b831813258d7a05815f349d9e56abf.png)

There is now a `config.toml` file which contains some parameters that can be modified for changes such as ports, this is in `.celestia-full-mocha`

**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](https://docs.celestia.org/nodes/mamaki-testnet#rpc-endpoints).

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

Example

    celestia full start --core.ip https://grpc-mocha.pops.one
    

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

![](https://storage.googleapis.com/papyrus_images/3675939770028af1ff3b606390f7fd44dadd951f1d77213fe6f2fe63388f8202.png)

Stop the node with `ctrl + c`

4\. Key
-------

Once you start the Full Storage Node, a wallet key will be generated for you. You will need to fund that address with testnet tokens to pay for PayForData transactions.

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

**Use Existing Key**

The custom key must exist inside the Celestia bridge node directory at the correct path default: `~/.celestia-full-mocha/keys/keyring-test`.

add a wallet with existing seed, from `celestia-node` directory

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

add flag to the start command from step 3. or to the system service file later at step 5.

    --keyring.accname <name_of_custom_key>
    

5\. Set up as System Service
----------------------------

Set up `celestia-node` as a background process.

    tee <<EOF >/dev/null /etc/systemd/system/celestia-full.service
    [Unit]
    Description=celestia-full Cosmos daemon
    After=network-online.target
    
    [Service]
    User=root
    ExecStart=/usr/local/bin/celestia full start --core.ip https://grpc-mocha.pops.one
    Restart=on-failure
    RestartSec=3
    LimitNOFILE=4096
    
    [Install]
    WantedBy=multi-user.target
    EOF
    

**Enable and start celestia-full daemon**

    systemctl enable celestia-full
    systemctl daemon-reload
    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, this will run until stopped.

![If working you should see logs with data sampling- INFO das](https://storage.googleapis.com/papyrus_images/b75af05cffb0cb08e18042fef53666f278268a32eae31148509a3748e0df9233.png)

If working you should see logs with data sampling- INFO das

Additional Commands
-------------------

Stop the full storage node

    systemctl stop celestia-full
    

Making changes to service file

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

Restart the service

    systemctl daemon-reload
    systemctl start celestia-full

---

*Originally published on [GLCstaked](https://paragraph.com/@glcstaked/celestia-full-storage-node-mocha)*
