[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [freehaven-dev] a few things



> >When we were talking about introducers, everyone seemed to be including the
> >trust framework in the setup.  Like, if you don't trust a node's
> >new-node-picking ability, you don't add that node.  I was under the
> >impression that, because of how "broadcasts" (heh) and file requests work,
> >it's important to know all the nodes that all your known nodes are trading
> >with. So if one node says "here's a new node" and starts trading with it,
> >everyone else has to at least add it to its db, at least for reference if it
> >doesn't trust it enough to trade with it.  Maybe that answers my question,
> >but I just wanted to bring it up.
> 
> I actually wasn't under this impression.  My understanding was that a node
> doesn't declare "here's a new node" unless it is performing introductions,
> which is exactly what those messages correspond to.  It wouldn't introduce
> that nodes to others unless the it passes the :trust_to_introduce() == true
> in the trust_db.  

I tend to be of the theory that each node should have a near complete
listing of all other nodes, trusted, untrusted, and unknown. It makes
broadcasts easier, and it increases the pool for which node to trade
with. (I'll assume we have some weighted method of randomly choosing
someone to trade with)

given that as a model, when someone is introduced you add them to the
nodeDB, depending on the metadata and the provider of the metadata,
you may give them an initial trust level other than 0.

To make things a little more interesting, I think it would be neat if
at various times people "introduced" a node. Not because it's an
unknown node, but as a way of sharing what ones trust with it
is. Something like every day I pick a node from my nodeDB, and
introduce it to some people (maybe everyone? this has scaling
problems, as if everyone introduces someone to everyone every
day...). I say here's brian, I trust him. then people either say "oh,
brian is new. I'll add him <muck with trust ratings>" or "I know brian
already, does sseph's opinion of him change my trust in either of
them?" 

The only disadvantage I see is that it potentially adds a large number
of messages going on. It's unclear how much that will suck. It has the
potential advantage of sharing trust opinions.


> However, your point brings a question to mind that I am uncertain if we
> have answered.  Let's say a server A takes a new node B but has yet to
> introduce it to friends (which is what we are doing when a node initially
> joins the servnet).  The server performs some trades with the new node B.

I think what we were leaning towards is that node A doesn't introduce
node B until B has passed some basic sharing test. And you don't trade
real data with B until the same. So no real data is shared with B
until B is announced...

seph