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.tomlCheck the privval gRPC endpoint:
grep priv_validator_grpc_laddr $HOME/.celestia-app/config/config.tomlIf 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.tomlIf 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.txtThe 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 %1This runs Fibre once to generate the default
server_config.tomlfile, then immediately stops it. The actual start will be handled by systemd.
💢 3. Edit the Config File
nano $HOME/.celestia-fibre/server_config.tomlSet 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_addressport, leave it as26669.
💢 4. Open Firewall Port 7980
sudo ufw allow 7980/tcp
sudo ufw status | grep 7980Verify 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.serviceView 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 \
-yThe
--nodeport is your customxxx57RPC 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💢 8. Monitoring (Recommended)
fibre start --home $HOME/.celestia-fibre --otel-endpoint http://localhost:4318If 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"