The `wakubridge` application allows bridging messages between Waku v1 and Waku v2 networks.
Packets received on the Waku v1 network are published once on the Waku v2 network using [`17/WAKU2-RELAY`](https://rfc.vac.dev/spec/17/).
Similarly, Waku v2 messages received on the configured [`17/WAKU2-RELAY`](https://rfc.vac.dev/spec/17/) pubsub topic are bridged to the Waku v1 network.
[`15/WAKU2-BRIDGE`](https://rfc.vac.dev/spec/15/) specifies how Waku v2 messages are converted to Waku v1 envelopes and vice versa.
The `wakubridge` application follows the topic recommmendations for bridging as set out in [`23/WAKU2-TOPICS`](https://rfc.vac.dev/spec/23/#bridging-waku-v1-and-waku-v2)
## Setting up a `wakubridge`
Start by compiling the `wakubridge` binary.
```bash
# The first `make` invocation will update all Git submodules.
# You'll run `make update` after each `git pull`, in the future, to keep those submodules up to date.
The next step is to run a `wakubridge` connected to both a Waku v1 and a Waku v2 network.
### Connecting to a Waku v1 network
Many [config options available for Waku v1 nodes](../../waku/v1/README.md) are also available for the `wakubridge`, with a slight change in the naming (most often a `-v1`-suffix).
This includes configuration to connect to a peer or a fleet of peers.
For example, to connect the bridge to the existing Status Waku v1 `test` fleet:
```bash
./build/wakubridge --fleet-v1:test
```
To connect the bridge directly to a static enode URL:
```bash
./build/wakubridge --staticnode-v1:<enode-url>
```
The `--staticnode-v1` argument may be repeated.
### Connecting to a Waku v2 network
Similarly, several [config options available for Waku v2 nodes](../../waku/v2/README.md) are also available for the `wakubridge`, with a slight change in the naming (most often a `-v2`-suffix).
This includes configuration to connect to static Waku v2 peers:
By default the `wakubridge` will then begin to bridge all Waku v1 messages routed by `staticnode-v1` to the Waku v2 network defined by the default Waku v2 pubsub topic (`/waku/2/default-waku/proto`) and participated in by `staticnode-v2`.
Waku v2 messages on the default Waku v2 pubsub topic will similarly be bridged to Waku v1.
This is the likely configuration for most `wakubridge` setups.
### Other configuration
For testing purposes, or for advanced bridging applications,
it is possible to run the `wakubridge` application with a Waku v1 topic interest:
```bash
./build/wakubridge --waku-v1-topic-interest:true
```
It is also possible to change the default Waku v2 pubsub topic from/to which messages are bridged: