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