diff --git a/TransportClient.markdown b/TransportClient.markdown new file mode 100644 index 0000000..0f9f619 --- /dev/null +++ b/TransportClient.markdown @@ -0,0 +1,24 @@ +TransportClient is a [BSP client](BSP) that synchronises transport properties between devices. Transport properties describe how to connect to a device over various transports. + +### Channel identifiers + +TransportClient has a single channel with the following random identifer: +`673e a091 6735 61e2 8f70 122f 6a8e a8f4 97c3 624b 86fa 07f7 85bb 15f0 9fb8 7b4b` + +### Message types + +**0: UPDATE** - The content is a [BDF](BDF) list with three elements: `transport_id` (string), `version` (int), and `properties` (dictionary). `transport_id` and `properties` are supplied by the transport plugin. `version` is incremented whenever the properties change. + +### Validity policy + +* An UPDATE is valid if it is well-formed. + +### Storage policy + +* For each transport, the local message with the highest version is stored. +* For each transport and each remote peer, the remote message with the highest version is stored. + +### Sharing policy + +* Local messages are shared with all remote peers. +* Each remote message is shared with the remote peer that created it.