Re: strengths and weaknesses of Gnutella; was: Gnutella 3

[email protected] Sat, 27 Feb 2010 09:29:50 +0000 (UTC)
Newsgroups gmane.network.gnutella.devel
Organization Home, Grenoble, France
Message-ID <[email protected]>
Quoting Arne Babenhauserheide <[email protected]> from ml.gnutella.dev-forum:
:Am Samstag, 27. Februar 2010 00:51:02 schrieb [email protected]:
:> One of the shortcomings of Gnutella 1.0 that I would like to see addressed
:> is a standard way to query by regular expression, and not just the file
:> name but also the available meta data.
:
:That was one of the things I wanted to address by using HTTP PUSH: signifying 
:the type of query in a header, so it would be trivial to add a new query type. 
:
:Can't gtkg simply add regexp as GGEP extension which will only be used by 
:nodes which support it? 

Of course it could, but then it would be yet another piece of line noise.

The real problem is that of agreeing on search semantics.  For instance,
if I search for "foo bar" today in Gnutella, I may get "foo.data" and
"bar.data" out of some servents, which is wrong.  From gtk-gnutella you would
only get "foo_bar.data" or "bar_foo.data", but both words would need to be
present.

I guess this is another strong argument for having a standard library that
would implement the low level semantics.  The challenge would then be to
get people to implement the library in various languages (for instance a java
library is totally useless to me) and make sure that all library
implementations conform to a standard.

However, let's this right now: I'm not a big fan of 3rd-party libraries unless
they are very well written or unavoidable.  For instance, gtk-gnutella depends
only on a few libraries: GTK, glib, xml2, zlib, tls and of course, c.
Everything else was written by the developers.  We even wrote replacements of
badly written library functions or functions not fitting our needs (one example
that comes to mind here is malloc()).

Cheers,
Raphael