# Celestia Full Storage Node

By [GLCstaked](https://paragraph.com/@glcstaked) · 2022-08-21

---

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

[https://mirror.xyz/0xf3bF9DDbA413825E5DdF92D15b09C2AbD8d190dd/Tc7O6Kzw2RoDmA\_FWT1O3HUAkcY69tnIQ8QhAokkTk4](https://mirror.xyz/0xf3bF9DDbA413825E5DdF92D15b09C2AbD8d190dd/Tc7O6Kzw2RoDmA_FWT1O3HUAkcY69tnIQ8QhAokkTk4)

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/](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`

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

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

    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

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

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`

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

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

[https://mirror.xyz/0xf3bF9DDbA413825E5DdF92D15b09C2AbD8d190dd/jT72y02MOHQ2P0Ivc8uGJmh9Ht9sVZpDtFrbMB9DAQE](https://mirror.xyz/0xf3bF9DDbA413825E5DdF92D15b09C2AbD8d190dd/jT72y02MOHQ2P0Ivc8uGJmh9Ht9sVZpDtFrbMB9DAQE)

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

\*\* \*\*

---

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