]> git.mxchange.org Git - friendica.git/blobdiff - spec/zot-2012.txt
bad checkin
[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
 
 
 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
 
 
 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:
 
 
 Introduce yourself to a site:
 
 
@@ -41,14 +59,14 @@ Returns:
 Add location
 ---
 
 Add location
 ---
 
-POST https://example.com
+POST https://example.com/post
 
 {
 'type' => 'location'
 'person' => $guuid
 'address' => $new_gduid
 'site' => 'https://newsite.com'
 
 {
 'type' => 'location'
 'person' => $guuid
 'address' => $new_gduid
 'site' => 'https://newsite.com'
-'info' => 'mike@macgirvin.com'
+'info' => 'mike@newsite.com'
 'pass' => me_encrypt($gduid . '.' . $pass)
 }
 
 'pass' => me_encrypt($gduid . '.' . $pass)
 }
 
@@ -63,7 +81,7 @@ Returns:
 Remove location
 ---
 
 Remove location
 ---
 
-POST https://example.com
+POST https://example.com/post
 
 {
 'type' => 'remove_location'
 
 {
 'type' => 'remove_location'
@@ -83,17 +101,19 @@ Returns:
 ------------
 Make friends
 ------------
 ------------
 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
 
 {
 
 
 POST https://example.com/post
 
 {
-'type' => 'contact_add'
+'type' => 'contact'
 'person' => $gduid
 'address' => $guuid
 'target' => 'bobjones@example.com'
 '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)
 }
 
 'confirm' => me_encrypt($guuid . '.' . $pass)
 }
 
@@ -102,6 +122,7 @@ Returns:
 {
 'success' => 'true'
 'message' => 'OK'
 {
 'success' => 'true'
 'message' => 'OK'
+'flags' => PENDING=1
 }
 
 
 }
 
 
@@ -114,6 +135,12 @@ Returns:
 Message
 -------
 
 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
 
 {
 POST https://example.com/post
 
 {
@@ -134,9 +161,10 @@ Returns:
 Callback
 --------
 
 Callback
 --------
 
-POST https://macgirvin.com
+POST https://macgirvin.com/post
 
 {
 
 {
+'type' => 'retrieve'
 'retrieve' => $post_id
 'challenge' => you_encrypt('abc123')
 'verify' => me_encrypt('xyz456' . '.' . $gduid)
 'retrieve' => $post_id
 'challenge' => you_encrypt('abc123')
 'verify' => me_encrypt('xyz456' . '.' . $gduid)