Installation

Current Version
Type

v0.20.4

Shwap

Minimum hardware Requirements #

CPU : 6 Cores
Ram : 16GB RAM 
Storage: 10 TB of storage (SSD or NVME)

Official documentation

Before We begin for your easier understanding

CONSENSUS_NODE is same as celestia-app node

Core ip can be consensus node ip or an RPC endpoint

Setting Variables

RPC_NODE_IP="Your-RPC-ENDPOINT"
RPC_PORT="Your-RPC-PORT"

Install dependencies

sudo snap install lz4 && sudo apt  install liblz4-tool && sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc fail2ban htop -y
sudo apt install curl tar wget aria2 clang pkg-config libssl-dev jq build-essential git make ncdu -y

INSTALL GO

ver="1.22.3" && \
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 && \
go version

# Adding Go's location to profile
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF

source $HOME/.profile
go version

Download and build binary

# Clone project repository
cd $HOME
rm -rf celestia-node
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node
git checkout v0.20.4
make build
make install
make cel-key

#if you face permission error
sudo chown -R $USER:$USER /usr/local/bin/
sudo chmod -R 755 /usr/local/bin/

Your celestia Bridge Node is saved at /usr/local/bin/celestia

Initializing Bridge Node

# After starting the Bridge Node, a wallet key will be generated for you. 
celestia bridge init --core.ip RPC_NODE_IP

To facilitate Blob transactions, you must fund this address with Mainnet tokens.

If you did not save the wallet address you can find the address by running the following command:

cd $HOME/celestia-node 
./cel-key list --node.type bridge --keyring-backend test

Creating Systemd

Without Metrics - if you do not want your metrics to be reported

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

[Service]
User=$USER
ExecStart=/usr/local/bin/celestia bridge start --core.ip $RPC_NODE_IP --core.rpc.port $RPC_PORT 
Restart=on-failure
RestartSec=3
LimitNOFILE=1400000

[Install]
WantedBy=multi-user.target
EOF

With Metrics

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

[Service]
User=$USER
ExecStart=/usr/local/bin/celestia bridge start --core.ip $RPC_NODE_IP --core.rpc.port $RPC_PORT --metrics.tls=true --metrics --metrics.endpoint otel.celestia.observer
Restart=on-failure
RestartSec=3
LimitNOFILE=1400000

[Install]
WantedBy=multi-user.target
EOF

Enable and start the service

sudo systemctl daemon-reload
sudo systemctl enable celestia-bridge.service
sudo systemctl restart celestia-bridge && sudo journalctl -u celestia-bridge -f -o cat

Retrieve your node's peerId information.

Note: You can only generate an auth token after initializing and starting your Celestia node.

NODE_TYPE=bridge
AUTH_TOKEN=$(celestia $NODE_TYPE auth admin)
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

Last updated