OshVanK Node ServiceOshVanK Node Service
Celestia
Testnet

Fibre

Celestia Fibre server setup guide for testnet validators.

Celestia Fibre is a high-speed block propagation server for validators. It accelerates block delivery via a dedicated sidecar that connects to your celestia-app node through a private gRPC endpoint and exposes a public TCP port for peers to connect to.


💢 Prerequisites

Before starting, verify your app gRPC and privval gRPC endpoints are configured.

Check the app gRPC endpoint:

grep -A 3 "^\[grpc\]" $HOME/.celestia-app/config/app.toml

Check the privval gRPC endpoint:

grep priv_validator_grpc_laddr $HOME/.celestia-app/config/config.toml

If the line is missing or empty, add/edit it:

sed -i '/^\[privval\]/,/^\[/ s|^priv_validator_grpc_laddr.*|priv_validator_grpc_laddr = "tcp://127.0.0.1:26669"|' $HOME/.celestia-app/config/config.toml

If you made changes, restart your node:

sudo systemctl restart celestia-testnet.service

💢 1. Download Fibre Binary

cd $HOME
mkdir -p fibre-install && cd fibre-install

curl -LO https://github.com/celestiaorg/celestia-app/releases/latest/download/fibre_Linux_x86_64.tar.gz
curl -LO https://github.com/celestiaorg/celestia-app/releases/latest/download/checksums.txt

sha256sum --ignore-missing --check checksums.txt

The output must say OK. If not, repeat the download — do not continue.

tar -xvf fibre_Linux_x86_64.tar.gz
sudo mv fibre /usr/local/bin/fibre
fibre version

💢 2. Set Up Fibre Home Directory

mkdir -p $HOME/.celestia-fibre
fibre start --home $HOME/.celestia-fibre &
sleep 2
kill %1

This runs Fibre once to generate the default server_config.toml file, then immediately stops it. The actual start will be handled by systemd.


💢 3. Edit the Config File

nano $HOME/.celestia-fibre/server_config.toml

Set the following values according to your port configuration:

app_grpc_address = "127.0.0.1:17090"
server_listen_address = "0.0.0.0:7980"
signer_grpc_address = "127.0.0.1:26669"

If you haven't changed the signer_grpc_address port, leave it as 26669.


💢 4. Open Firewall Port 7980

sudo ufw allow 7980/tcp
sudo ufw status | grep 7980

Verify external reachability from another machine (or via an online port checker):

nc -zv <server_public_ip> 7980

💢 5. Create systemd Service

sudo tee /etc/systemd/system/fibre.service > /dev/null << 'EOF'
[Unit]
Description=Celestia Fibre Server
After=network-online.target celestia-testnet.service
Requires=celestia-testnet.service

[Service]
User=root
ExecStart=/usr/local/bin/fibre start --home /root/.celestia-fibre
Restart=on-failure
RestartSec=10
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload

💢 6. Start the Service

sudo systemctl enable fibre.service
sudo systemctl start fibre.service
sudo systemctl status fibre.service

View logs:

sudo journalctl -u fibre.service -f --no-hostname -o cat

💢 7. On-chain Registration

Once the service is running without errors and is externally reachable, register your server on-chain:

celestia-appd tx valaddr set-host <server_public_ip>:7980 \
  --from wallet \
  --chain-id mocha-5 \
  --gas 300000 \
  --fees 5000utia \
  --node tcp://localhost:xxx57 \
  --keyring-backend test \
  -y

The --node port is your custom xxx57 RPC port.

Verify the registration:

celestia-appd comet show-address
celestia-appd query valaddr provider <your_celestiavalcons_address>

You should see found: true and the correct host:port.

List all registered providers:

celestia-appd query valaddr providers

fibre start --home $HOME/.celestia-fibre --otel-endpoint http://localhost:4318

If you don't have an OTel collector/Grafana setup, you can skip this step. At a minimum, monitor signing latency:

sudo journalctl -u celestia-testnet.service -f | grep -i "signing_latency"

On this page