[Mnet-devel] report from PET 2004: GNUnet, economics, and federated Mnets

Zooko zooko at zooko.com
Wed May 26 19:30:53 BST 2004


I'm at PET 2004.  I just met Christian Grothoff, inventor of GNUnet.  
He says that he estimates that GNUnet has approximately 100 nodes at 
most times!  Ooh!  And he just pointed me to libextractor [1].  It 
looks good!  I want to know what Myers (or nejucomo) thinks.  Also, he 
showed me GNUnet hostlists via HTTP, e.g. [2].  I tried to show him the 
Mnet v0.6 GUI, but it looks like my Mnet node here can't find any 
MetaTracker.  Fortunately, Christian got distracted by the conference 
and didn't notice.  (Ah -- Christian just read this paragraph over my 
shoulder and stated that he did notice.)

Christian currently exports the GNUnet API as a linkable C library, and 
he isn't interested in XML-RPC.  In the past someone ported GNUnet from 
C to Java, and the xnap team wrote a plugin to use the Java version of 
GNUnet.  However, that Java version is not as well-maintained and 
current as the C version of GNUnet.


Ross Anderson gave the opening talk, on the economics of the computer 
industry, of security, and of privacy.  It was an excellent talk.  
Prof. Anderson's research group includes George Danezis, whose recent 
paper on "Red vs. Blue" censorship resistance has been discussed on 
this list.

I'm increasingly interested in the notions that George Danezis has 
explored -- those of "private clubs" or of "federated clubs".  A 
"private club" Mnet would be one in which all nodes belong to the same 
club, e.g. the Grateful Dead Fan Club.  A "federated" Mnet would be one 
in which there are overlapping clubs.  For example, there may be the 
Grateful Dead Fan Club, the Creative Commons Licensed Music Fan Club, 
the Phish Fan Club, and the Creative Commons Licensed Content Fan Club, 
and a given node may belong to one or more of these.  So, the clubs 
overlap.

This is qualitatively the same as a "friendnet", which we have thought 
about a lot in the context of Mnet, but it is quantitatively different 
in that we assume that the network is clumpy.

This clumpiness makes a big difference to Mnet v0.7.  Consider if we 
used Mnet v0.7 in the "single global public network" way.  Okay, that's 
what we designed it for.  It will hopefully work in that context, as 
long as it can deal with node churn.  (And as long as we have a good 
solution for content tracking, and The Incentive Problem, and so on...)

Okay, now consider if we use Mnet in the "private club" way.  This 
should work even better.  There should be much lower churn, and the 
incentive problem is in some sense solved automatically -- the people 
are motivated to run servers because doing so is a contribution to 
their club.

Okay, now consider if we use Mnet in the "friendnet" a.k.a. FOAF way.  
This probably doesn't work, because when a publisher publishes a file, 
some of the blocks go to peers which are unknown to the downloader.  
How could we make sure that the downloader knows enough of the nodes 
that the publisher knew?  That question has stumped me until now.

Okay, now consider if we use Mnet in the "federated clubs" way.  This 
is just like the friendnet way, but maybe we can make some assumptions 
about the network topology.  For example, if Alice publishes a file, 
and Bob tries to download that file, then this means the mnet URI must 
have been transmitted from Alice to Bob (perhaps indirectly), and Bob 
and Alice must share some common interest.  If we also assume that the 
network topology is sufficiently clumpy, then we may feel confident 
that Bob will know enough of Alice's peers that he can download the 
file.

The part of this that is exciting to me is that it requires no deep 
changes to Mnet.  I think that the current Mnet v0.7 source code would 
already work fine for federated Mnets, by making MetaTrackers be 
specific to a given club.  Each MetaTracker would serve only a single 
club, and then a non-MetaTracker node could join multiple clubs by 
using multiple MetaTrackers.  (Note that a single club could be served 
by multiple MetaTrackers, while a single MetaTracker would serve only a 
single club.)

Regards,

Zooko

[1] http://www.ovmj.org/libextractor/
[2] http://www.ovmj.org/GNUnet/hosts/
     Note: this hostlist is the perspective of a single GNUnet node -- 
this list is limited to a maximum number of hosts which is bounded by 
its bandwidth.  Christian estimates that the total nodes in the GNUnet 
network is sometimes around 100.




More information about the Mnet-devel mailing list