- wrap the
Message
object in a version enum - wrap the
Event
object in a version enum Sync
stores recent message IDsSync
stores the last non-references messages per-topic
- peers
- accepted by public key AND auth token
- can peer in encrypt-only mode
- messages
- serialization
- logical-clock (state)
- types:
- hello (set up peering)
- require login if client is new (to get auth token)
- get: full sync
- get: partial sync (despues de clockval)
- publish: sync item
- pw change?
- would change identity
- pw change?
- hello (set up peering)
- relay
- forwards messages on your behalf
- stores messages on your behalf
state: peer1 has data, peer2 is blank.
- peer2 connects to peer1
- peer2 shares pubkey (plaintext), peer1 responds with
Hello
- (both peers associate the connection with each other)
- peer2 verifies pubkey (out of band)
- peer2 switches to encrypted channel
- peer2 sends peer1
PeerInit
with a list of identities it manages - peer1 asks user for approval, if so, peer1 sends peer2
PeerConfirm
- peer1 sends peer2
PeerInit
with a list of identities it manages - peer2 automatically sends
PeerConfirm
( - peer2