]> git.mxchange.org Git - friendica.git/blobdiff - spec/zot-2012.txt
Merge pull request #2305 from nerdoc/patch-1
[friendica.git] / spec / zot-2012.txt
index d2a4a5815420c42567b1ac0a9a472d1719c85c59..2e1f3c3c49d1452278eb16e1d48aad7ef9a446c1 100644 (file)
@@ -1,4 +1,10 @@
 
+Initial cut at Zot-2012 protocol. This is a very rough draft of some very rough ideas and concepts. 
+It is not yet intended to be a definitive specification and many things like the security handshakes are yet to be specified precisely. 
+
+All communications are https
+
+
 First create a global unique userid
 
 
@@ -17,6 +23,18 @@ You will also obtain a password upon introducing yourself to a site.
 This can be used to edit locations in the future. You will always keep your global unique userid
 
 
+The steps to connect with somebody are to first register your location with their site.
+Then introduce yourself to the person. This contains flags for the desired relationship.
+At some future time, they may confirm and adjust the relationship based on their comfort level. 
+Lack of confirmation is tantamount to denial. 
+
+You can set either or both of FOLLOW and SHARE which indicates the relationship from your viewpoint.
+They may do likewise.
+
+A relationship is based on you as a person and provided you register new locations with the site you can post from anywhere.
+You do not need to register locations with each person, only with the site.  
+
+
 Introduce yourself to a site:
 
 
@@ -41,14 +59,14 @@ Returns:
 Add location
 ---
 
-POST https://example.com
+POST https://example.com/post
 
 {
 'type' => 'location'
 'person' => $guuid
 'address' => $new_gduid
 'site' => 'https://newsite.com'
-'info' => 'mike@macgirvin.com'
+'info' => 'mike@newsite.com'
 'pass' => me_encrypt($gduid . '.' . $pass)
 }
 
@@ -63,7 +81,7 @@ Returns:
 Remove location
 ---
 
-POST https://example.com
+POST https://example.com/post
 
 {
 'type' => 'remove_location'
@@ -83,17 +101,19 @@ Returns:
 ------------
 Make friends
 ------------
-This message may be reversed/repeated by the destination site to confirm
+This message may be reversed/repeated by the destination site to confirm.
+flags is the desired friendship bits. The same message may be used with different flags 
+to edit or remove a relationship.
 
 
 POST https://example.com/post
 
 {
-'type' => 'contact_add'
+'type' => 'contact'
 'person' => $gduid
 'address' => $guuid
 'target' => 'bobjones@example.com'
-'flags' => HIDDEN=0,FOLLOW=1,SHARE=1
+'flags' => HIDDEN=0,FOLLOW=1,SHARE=1,NOHIDDEN=1,NOFOLLOW=0,NOSHARE=0
 'confirm' => me_encrypt($guuid . '.' . $pass)
 }
 
@@ -102,6 +122,7 @@ Returns:
 {
 'success' => 'true'
 'message' => 'OK'
+'flags' => PENDING=1
 }
 
 
@@ -114,6 +135,12 @@ Returns:
 Message
 -------
 
+Passing messages is done asynchronously. This may (potentially) relieve a lot of the burden of distribution from the posting site. If you're on site 'A' and make a post, site 'A' just contacts any downstream sites and informs them that there is new content (via a $post_id). The downstream site initiates the actual data transfer. 
+
+
+
+
+
 POST https://example.com/post
 
 {
@@ -134,9 +161,10 @@ Returns:
 Callback
 --------
 
-POST https://macgirvin.com
+POST https://macgirvin.com/post
 
 {
+'type' => 'retrieve'
 'retrieve' => $post_id
 'challenge' => you_encrypt('abc123')
 'verify' => me_encrypt('xyz456' . '.' . $gduid)