Re: Gnutella 3

[email protected] Fri, 26 Feb 2010 23:51:02 +0000 (UTC)
Newsgroups gmane.network.gnutella.devel
Organization Home, Grenoble, France
Message-ID <[email protected]>
Hello Max,

Quoting Max <[email protected]> from ml.gnutella.dev-forum:
:Off is a network, in which XORed (encrypted) blocks are stored in a DHT.
:they are exchanged over a http protocol, the blocks look like http, so they
:are not stoppable.
:the clients have UDP, UPNP, so firewalled nodes are not a problem.
:as the blocks are shreddered data, the MEANING (to restore/retrieve a file)
:is saved in the magnet link (called off-url or off-torrent or gnutella 3-
:URI)
:In that way, the blocks are spread around the dht like a torrent.
:you can upload blocks into other clients. as it is a dht.
:that make it look like freenet, a big cloud cache of blocks,
:
:you can extract the file from downloaded blocks by the off.url
:as the off url has the meaning, it is not searchable on the network (that is
:the difference from offload and offsystem, offload does not share any off
:url from the client into the p2pnetwork, as this is insecure.) you need to
:share the off url in another portal, p2p or better f2f network (e.g.
:retroshare, see chat panels for that in offload)

Thanks for that information, it is exactly what I required.

I understand what you're trying to do: an anonymous and secure (encrypted)
file exchange service, whereby data cannot be possibly traced to a source nor
filtered out.  I understand also that because the off url is not exchanged on
the same system, you need another way to publish the "decryption key" of
the resource out-of-band.

It is indeed, as you say, a little bit like freenet in that you need to
publish data to the network for content to be available for others to
download.

But regardless of the merits of your system, I believe that the use cases
and the philosophy are completely different from the ones that Gnutella
supports.

As a publisher, I do not want to upload data to a system so that later on
people can access it.

As a user, I do not want to use two different systems to get the data,
so using a separate out-of-band mechanism seems a bit awkward.

Active publishing also raises the problem of data expiration.  The network
is not going to keep published data indefinitely since its capacity, although
huge potentially, remains limited.  So this makes things more complex to
manage from a network perspective.

This is not really what I had in mind when I proposed "Gnutella 3.0".

For me Gnutella is a search network with almost zero-cost for publishing.
And Gnutella also offers an efficient swarming ability, thanks to the
combination of the download mesh and the recently introduced DHT.

It even outperforms bittorrent from an architecture point of view (partly
due to a grave bug in bittorent's torrent file architecture where the
hash of the complete file is not mandatory -- this can lead to having
several torrents for the same file if the file is not split identically).

For popular content, downloading with Gnutella or from bittorrent is
almost equivalent.  For non-popular content, downloading with bittorrent
fails miserably.

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.

Another shortcoming is avoiding badly designed XML.  I don't want to do
any fingerpointing, but using XML schemas is just plain stupid.  Even using
XML ("in the name of simplification, standardization, hype, convenience")
at all is questionable.

Look at this for instance, found as meta data in query hits:

<videos
    xsi:noNamespaceSchemaLocation="http://www.limewire.com/schemas/video.xsd">
    <video
        length="5630"
        height="480"
        width="640"
        index="0"/>
</videos>

If nothing strikes you immediately as pure noise, then you're already
lost for the cause. :-)  And yes, I do understand why the noise is there,
and this is precisely the value I question (and disagree with).

Anyway, I don't think Gnutella 3.0 should be a paradigm shift.  We need to
focus on the strengths of Gnutella 1.0 and remove (some of) its weaknesses
so as to make it even more powerful.

Gnutella 3.0, the Lord of P2P networks :-)

Raphael