Re: Re: Implementing a Gnutella-structured network only with basic HTTP possible?Date: Wed, 24 Feb 2010 09:08:15 +0000 (UTC)Date: Fri, 26 Feb 2010 12:55:15 +0000 (UTC)

Arne Babenhauserheide <[email protected]> Fri, 26 Feb 2010 18:48:20 +0100
Newsgroups gmane.network.gnutella.devel
Message-ID <[email protected]>
Am Freitag, 26. Februar 2010 13:55:16 schrieb [email protected]:
> Perhaps one way to go would be to invent Gnutella 3.0 (I believe 2 has been
> taken) and make sure we produce "hybrid" servents that can continue to use
> the Gnutella network protocol but can also talk the new protocol.

Whar would have to change to make the protocol neatly layered, and how could 
that be done in a way which makes it possible to reuse as much of the existing 
functionality as possible? 

I always saw Gnutella more from the user perspective, and in that it looks 
faily well seperated: 

- bootstrap = get the first connections. 

- connection with UP/Leaf, DQ, QRP, … for tag based searching. 

- connection with DHT for exact match searching. 

- file transfer with download mesh and Tiger Tree Hash (that alone could rival 
Bittorrent if we used trackers which only provide X-Alt!).

Each one of these components could provide an API to access it. Ideally it 
would be as simple as

from gtkg import Gnutella, Dht, Download
Gnutella.start() # includes bootstrap
Dht.start()
results = Gnutella.search_by_string("GnuFU")
# (periodically check results)
dl = results[25].download()
dl2 = Download.magnet("magnet:?xt=…&xs=…(tracker)…&as=…(websource)…")
dl3 = results[25].download_to("/home/arne/downloads/infinite-hands.ogg")
# (wait)
dl.status()
dl.done
dl2.abort()

Best wishes, 
Arne


[Non-text portions of this message have been removed]