Skip to content
This repository has been archived by the owner on Sep 5, 2024. It is now read-only.

Latest commit

 

History

History
42 lines (35 loc) · 1.2 KB

spec.md

File metadata and controls

42 lines (35 loc) · 1.2 KB

TODO

  • wrap the Message object in a version enum
  • wrap the Event object in a version enum
  • Sync stores recent message IDs
  • Sync stores the last non-references messages per-topic

org

  • 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
  • relay
    • forwards messages on your behalf
    • stores messages on your behalf

storyline (two peers, same identity)

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