> For the complete documentation index, see [llms.txt](https://service.block-pro.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://service.block-pro.net/mainnet/celestia/bridge-node.md).

# Bridge Node

Already running a node? See [Upgrade](/mainnet/celestia/bridge-node/upgrade.md).

**Mainnet** · Chain ID `celestia`

A bridge imports consensus data and makes it available to the DA network. Initial sync from genesis needs an archival consensus source; a pruned public endpoint is not sufficient.

Complete [Install celestia-node](/mainnet/celestia/bridge-node/install-da.md) first.

## Choose a consensus connection

For the example below, run your own archival [Consensus Node](/mainnet/celestia/consensus-node.md) on the same host, enable application gRPC at `127.0.0.1:9090`, and let it sync first. Size its storage separately.

Initialize the bridge node store for Mainnet. Save any recovery phrase privately.

```bash
celestia bridge init --p2p.network celestia
```

Start the node in the foreground and inspect the connection. Use a bare hostname, without https\://. Add --core.tls only when the endpoint uses TLS.

```bash
celestia bridge start --p2p.network celestia --core.ip 127.0.0.1 --core.port 9090
```

After checking the foreground process, stop it with Ctrl+C before starting the same store under systemd.

## Run as a service

Create the service definition. Replace the Linux user, home and any endpoint placeholders.

```bash
sudo nano /etc/systemd/system/celestia-bridge.service
```

Paste this configuration; retain the same TLS choice used in your successful foreground test.

```ini
[Unit]
Description=Celestia bridge node (Mainnet)
Wants=network-online.target
After=network-online.target

[Service]
User=YOUR_LINUX_USER
Environment=HOME=/home/YOUR_LINUX_USER
ExecStart=/home/YOUR_LINUX_USER/go/bin/celestia bridge start --p2p.network celestia --core.ip 127.0.0.1 --core.port 9090
Restart=on-failure
RestartSec=5
LimitNOFILE=1400000

[Install]
WantedBy=multi-user.target
```

Load the new unit.

```bash
sudo systemctl daemon-reload
```

Enable and start the service.

```bash
sudo systemctl enable --now celestia-bridge
```

Check recent logs for successful connections and advancing headers.

```bash
sudo journalctl -u celestia-bridge -n 100 --no-pager
```

List addresses in the default DA key store. The test backend is unencrypted; do not keep a validator treasury in this store.

```bash
cel-key list --node.type bridge --p2p.network celestia --keyring-backend test
```

Open DA P2P port 2121 on both TCP and UDP. Leave pruning enabled unless archival retention is intentional and provisioned.

Source: [Celestia documentation](https://docs.celestia.org/operate/data-availability/bridge-node/).
