From: cvs@openprivacy.orgCVS update: openprivacy/htdocs/notes
Date: Tuesday December 19, 19100 @ 0:33
Author: fen
CVSWEB Options: -------------------
Main CVSWeb: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi
View this module: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/openprivacy/htdocs/notes
-----------------------------------
Update of /usr/local/cvsroot/openprivacy/htdocs/notes
In directory openprivacy.org:/home/fen/projects/openprivacy/htdocs/notes
Modified Files:
flow.txt
Log Message:
updated rest of file - ready to go over with Kevin Tuesday morning
*****************************************************************
File: openprivacy/htdocs/notes/flow.txt
CVSWEB Options: -------------------
CVSWeb: Annotate this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/openprivacy/htdocs/notes/flow.txt?annotate=1.37
CVSWeb: View this file: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/openprivacy/htdocs/notes/flow.txt?rev=1.37&content-type=text/x-cvsweb-markup
CVSWeb: Diff to previous version: http://openprivacy.org/cgi-bin/cvsweb/cvsweb.cgi/openprivacy/htdocs/notes/flow.txt.diff?r1=1.37&r2=1.36
-----------------------------------
Index: openprivacy/htdocs/notes/flow.txt
diff -u openprivacy/htdocs/notes/flow.txt:1.36 openprivacy/htdocs/notes/flow.txt:1.37
--- openprivacy/htdocs/notes/flow.txt:1.36 Mon Dec 18 23:36:56 2000
+++ openprivacy/htdocs/notes/flow.txt Tue Dec 19 00:33:12 2000
@@ -1,4 +1,4 @@
-$Id: flow.txt,v 1.36 2000/12/19 07:36:56 fen Exp $
+$Id: flow.txt,v 1.37 2000/12/19 08:33:12 fen Exp $
http://pix.comedia.com/OpenPrivacy/20001214/DSCN5532.JPG
@@ -138,8 +138,10 @@
// AJ2: RSS3
// AJ3: RSS4
-// TODO: Agent1 chooses channels it wants to receive
-// subscribes to RSS server channels directly (or through JetsPeek)
+// Agent1 chooses channels it wants to receive
+// subscribes to RSS server channels directly (or through JetsPeek)
+// (may need to go through JetsPeek to receive encapsulated probs)
+// TODO: show actual RSS channel subscription process
// create pseudonyms based on AN1 key such that AN1 can later prove parenthood
// this could be implemented simply as a list that AN1 maintains
@@ -147,6 +149,7 @@
(AJ1s, AJ1p) = agent1.reputationServer.createPublicKeyPair(AN1s)
// create prob for reputation publication (subscribe to RSS1)
+// "RSS*" is a multi-valued entity for RSS_090, RSS_091, and RSS_1.0
//
op = New Opinion // create new opinion object
op.setProperty("namespace", "RSS*")
@@ -202,32 +205,43 @@
categorize(J3, PRIVATE) // overload or new function?
agent1.categorize(prob_J3, MyNews")
-// ========== in JetsPeek ==========
+// ========== in JetsPeek ========== putReputaion facility
-// TODO: storage on JetsPeek
+// TODO: implementation of JetsPeek putReputaion facility
+// (let's try to make this as a general Reputaion Server example)
// Does JetsPeek simply store a reputation prob?
// Does it look for other probs with similar signatures and group?
-// How will grafts occur?
-// Perhaps this *is* a graft, in that maybe JetsPeek has created default
-// reputations for each of the RSS channels it holds and J1 adds a graft?
-//
-JP:
-
-// ========== in Agent2 ========== look up chennels by reputation
-
-JP: parse into RSS channels
-JP: for each rssChannel in (RSS_channel
-// RSS is a multi-valued entity for RSS_090, RSS_091, and RSS_1.0
-//
-A2=>JP: sendMessage(address=JetsPeek,
- facility=getOpinion, // get the opinion...
- signature=J1, // ... of this entity...
- namespace=RSS, // ...within this namespace...
- returnCount=10, // ...limit result set (how?)...
- returnAddr=A2
-JP: parse into RSS channels
-JP: for each rssChannel in (RSS_chann) // ...and return it to me
+//
+jetspeek.putReputation(prob) {
+ storeLocally(prob) // we suspect more is needed here
+}
+
+// ========== in Agent2 ========== look up channel(s) by reputation
+
+// initialize agent2's public keys
+//
+(A2N1s, A2N1p) = agent2.reputationServer.createPublicKeyPair()
+(A2J1s, A2J1p) = agent2.reputationServer.createPublicKeyPair(A2N1s)
+// Agent2 wants to find channels recommended by pseudonym "AJ1"
+// we want things like:
+// getProbByPubkey // may return a set
+// getProbBySignatureValue // zero or one
+// getProbByProperty // more general than getProbBySignatureValue
+//
+op = New Opinion // how do we choose the property-resolver?
+op.setProperty(pubkey, AJ1p) // get the opinion of this entity...
+op.setProperty(namespace, RSS) // ...within this namespace...
+op.setProperty(returnLimit, 10) // ...limit result set (how?)...
+
+prob = ProbFactory.createProb(op, A2J1p)
+agent2.sendMessage(address=JetsPeek,
+ facility=getOpinion,
+ prob=prob,
+ returnAddress=agent2)
+
+// ========== in JetsPeek ========== implementation of getOpinion facility
+
// TODO: how does JetsPeek determine the correct opinion?
// If a reputation server only returns an opinion it signs,
// then how does another server graft an opinion to an object?
@@ -239,17 +253,28 @@
// a general question, but returns a specific prob when the
// question includes a specific prob hash (as opposed to a pubkey)
+// ========== in Agent1 ========== publish stream pseudonymously
+
// publish stream pseudonymously
//
-A1=>JP: SendMessage(address=JetsPeek,
- facility=publish,
- namespace=RSS,
- signature=J4)
+(AJ4s, AJ4p) = agent2.reputationServer.createPublicKeyPair(AN1s)
+
+op = New Opinion // how do we choose the property-resolver?
+op.setProperty(namespace, RSS)
+
+prob = ProbFactory.createProb(op, AJ4p)
-// TODO: DELETE
-// TODO: AgentLookup;
+agent1.sendMessage(address=JetsPeek,
+ facility=publishRSS,
+ prob=prob,
+ returnAddress=agent1)
+==============================================================
+==================== done with example =======================
+==============================================================
+// TODO: DELETE, prob validation, garbage collection
+// TODO: AgentLookup
==============================================================
========= objects that we may use for implementation =========
This archive was generated by hypermail 2b30 : Mon Jan 22 2001 - 15:52:14 PST