The transport properties client is a BSP client that synchronises transport properties between pairs of devices. Transport properties describe how to connect to a device over various transports.
The client's identifier is org.briarproject.bramble.transport. The major version is 0.
The client uses a separate BSP group for communicating with each contact. The group descriptor is a BDF list containing the unique IDs of the contacts' identities, sorted in ascending order as byte strings.
The client also uses a group with an empty descriptor for storing local transport properties. This group is not shared with any contacts.
UPDATE - The message body is a BDF list with three elements: transportId (string), version (int), and properties (dictionary). transportId and properties are supplied by the transport plugin. The keys and values of properties are strings. version is incremented whenever the properties change.
An update is valid if it is well-formed.
In the groups shared with contacts:
For each transport, the local message with the highest version is stored.
For each transport, the remote message with the highest version is stored.
In the unshared group, the local message with the highest version is stored.
In the groups shared with contacts, all local messages are shared.