diff --git a/-MultiDeviceAnnouncementsPush.md b/-MultiDeviceAnnouncementsPush.md new file mode 100644 index 0000000..2504aed --- /dev/null +++ b/-MultiDeviceAnnouncementsPush.md @@ -0,0 +1,16 @@ +So if we modify the library and clients as described in MultiDeviceAnnouncementsPOC +how do we keep it up to date when a friend changes his devices. + +If we know the PersonaID, how is the library code table of PersonaID to ToxID mapping updated. We want this to be mainly automatic without bothering the user. + +We would need to modify the profile code to save a copy if the mapping table, +so that when we start up a client, the mapping table is filled with last good values from the profile. + +Lets say we have a friend, and we know his ToxID. We derive his PersonaID by setting the checksum to 0s. We want to watch the DHT announcements for a blob of information that will update our PersonaID mapping to his active ToxID. + +Note that if we do so that destroys the possibility to simply derive the PersonaID from the ToxID. That derivation is a startup mechanism to get the network switched over to client-facing PersonaIDs, and after that we rely on the profile to boostrap the table. + +The library and the clients add one new feature: the ability of the client to express interest in a PersonaID and to update the table with the new ToxID found un the blob when it arrives. + +Some clients may let the user decide whether of not to accept a blob update when it arrives. +