Real Time Gnutella Visualization
brett42 writes "Some students at Berkeley wrote a python program that connects to the Gnutella network and maps out connections between nodes in real time. " I gotta say thats pretty smooth. Hopefully future gnutella clients will incorporate something like this just for the time wasting potential of watching the graph wiggle while seeing what porn others are searching for.
These guys disected the Gnutella protocol and used the Furi interface (which provides network status screens and gives users info about nodes they're connected to) for their project. I was looking over the source code briefly and it looks very tight. It's nice to see college students interested and working on projects like these. If you go to the website and read over their final paper it is very interesting. You'll find a lot of stuff about the guts of Gnutella and what is unique about this project. They toyed with interfaces for a long time and rejected a great deal of them. It seems they spent a lot of time making this a very easy to use tool. They even worked hard on getting the color scheme down (hence this rejected scheme). Seeing a few people that are this poetic in refining their tools so that the user can use them best is rare.
The final visualization was createed with Python and Tkinter ("Tk interface"-- the de-facto Python interface to the Tk GUI toolkit). Tkinter is not the only GUI for Python. However, they chose it because it is commonly used and is easily portable between Unix and Windows (how thoughtful of them!)
the byproduct of years of oppression by the white man
Gnucleus(Win32) already supports something like that which uses a component by AT&T. You have to start it before connecting though. So I'm not sure, how RealTime it is compared to this script.
I use Gnutella by way of LimeWire and it works great for me. I frequently have thousands of hosts and over 10 TB of files to search. My only complaint is that I haven't found a Gnutella servent with strong advanced searching capability (i.e. use of AND, OR, NOT operators). Or if they do it wasn't in the documentation. :)
SQUEAK, the Death of Rats explained.
According to section 3.3 of the gnuTellaVision Final Paper, gnuTellaVision uses pings with a TTL of 1 to find the neighbours of each node it has found. In other words, gnuTellaVision does use a little extra bandwidth.
On the other hand, it gets query data using the normal Gnutella procedure (i.e. a neighbour forwards queries to it). Of course, forwarding queries to an extra Gnutella node (the gnuTellaVision program) uses a little bandwidth too.
pr0n!
mirror here.
Because since the network is being routed through apparently one super server to authenticate its clients as they connect, this gives the RIAA, MPAA, and MS reason to attack and destroy that one server. Gnutella, while a little clunky and information on it is once in a while unreliable - at least it IS completely distributed with no central server so it makes it harder for someone to sue or attack any one entity as they all share in the 'criminal acts' of getting little known artists and videos massively distributed and seen/heard. (Whatever your affiliation is with the MPAA/RIAA/MS, feel free to flame me for being sarcasticly cynical about big corporations tearing up file sharing innovations, a-la Napster).
To the uninitiated..
Indeed newsgroups are great for downloading...
+Extreme speed - you're downloading directly from your ISP's news server
+LOTS of files available, from games to movies to music to p0rn.
-You can only download what happens to be posted at any given time... Harder to search for a specific item
-Missing parts sometimes. Large files are split up into 20MB parts, and sometimes some parts are incomplete and hence don't get through. Recently, though, people are starting to upload Parity Archives along with the main archives, which means that if you're missing a file, you can reconstruct it based on the other files and the parity archive! very cool... this makes the missing archives problem much less of an issue. But then, there's always IRC for fills.
Andre060
not sure if we all slasdotted gnutellashosts but I found that if you edit line 21 of gtv.py and replace
addr = socket.gethostbyname('gnutellahsots.com')
with
addr = socket.gethostbyname('router.limewire.com')
it also works.