Slashdot Log In
Gnutella2?
Posted by
michael
on Wed Nov 06, 2002 08:59 AM
from the twice-as-good dept.
from the twice-as-good dept.
Anenga writes "A Windows (and somewhat WINE compatible) Gnutella client, Shareaza, has released a public preview of its next version which includes a re-designed Gnutella protocol they call "Gnutella2".
Gnutella2 (or "G2") dumps the Gnutella broadcast model and uses a new global searching method with UDP connections. It also features compression to limit hub-to-hub (G2 Ultrapeers) bandwidth, Tiger Tree Hashing etc. Shareaza has released a small description of the revised protocol here, but plans to release a full spec to the GDF after the release of v1.7 Final. Gnutella2, which is really a revised Gnutella protocol, will also be free and open for anyone to use in their clients. Shareaza and G2 may give Gnutella - an open and free P2P protocol which has been
struggling to keep up with the times against
Kazaa, eDonkey and other P2P
spin-offs - the stability and power it needs to attract the closed and
commercial FastTrack Network users when or if the network folds."
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
It's pretty fast... (Score:4, Interesting)
Re:It's pretty fast... (Score:5, Interesting)
Parent
Re:It's pretty fast... (Score:3, Interesting)
Kazaa does that. Their mini-installer logged into the P2P network and pulled the files down from one of the peers. When I started Kazaa again, the first thing that happened was people started downloading it from me.
I thought it was kinda cool. Far less bandwidth use on their part.
Variety of standards (Score:3, Insightful)
Re:Variety of standards (Score:3, Informative)
True peer to peer networks like Gnutella have no real centralised points: the process of discovery of new nodes does not require a a centralised server or servers, unlike Napster.
Re:Variety of standards (Score:2, Insightful)
Re:Variety of standards (Score:3, Insightful)
I just hope the whole "gnutella2" doesn't end up being vaporous. More interesting than yet another client is enhancements to the protocol, but the gnutella2 web site is 'opening soon', and the 'Full specifications will be available soon', but there is already this Shareaza client out there?
I've been a user and supporter of the Gnutella Network since the beginning ( back when it didn't work that well :) ), and I've seen enough clients come and go to know that it takes a well documented protocol/specification to see network growth and improvement.
Until we have the specs, it's just hype.
Re:Variety of standards (Score:3, Interesting)
Other OS P2P technologies (Score:4, Interesting)
Re:Other OS P2P technologies (Score:5, Informative)
Check it out at http://gift.sourceforge.net [sourceforge.net]
The ncurses based frontend giFTcurs is very nice, but there also are graphical and even web-based frontends to it.
I use it under linux and have been very happy with it.
Parent
Re:Other OS P2P technologies (Score:2, Informative)
Re:Other OS P2P technologies (Score:3, Interesting)
Yes, the ALPINE Network [cubicmetercrystal.com] uses a UDP based social discovery mechanism to implement fast, effective searches with minimal bandwidth and dual NAT support.
Some of the features include:
- High concurrent connection support (over 10,000).
- Adaptive configuration for enhanced accuracy and quality of responses.
- True peer to peer network. No hierarchy, no central servers.
- Low communication overhead (small UDP packets, no forwarding).
- Module support to allow extensions to query and transport operations.
You can read an overview of how alpine works here [cubicmetercrystal.com]. There is also a frequently asked questions [cubicmetercrystal.com] and plenty of developer information [cubicmetercrystal.com].
Enjoy!
Muahahaha.. Slashdot? With a sense of humor??? (Score:5, Funny)
Anyone here find it just a wee bit ironic that a postabout BMG and their so-called "copy protection" (*chuckle*) is followed immediately by a rather technical article on a new, faster, better, low-density P2P client?
Hell, they haven't even managed to shut the _first_ version down!
Cheers,
It Would Be a Real Shame.... (Score:5, Funny)
The Gnutella innovation I like (Score:5, Informative)
Crossing fingers (Score:3, Informative)
Let's hope that this gnew version of gnutella will be better and more scalable than the previous one.
Points from the gnutella2.com site:
Level One: A New Protocol
Gnutella2 introduces a flexible new protocol to support current and future P2P technologies. Packets are compact binary trees of named data items, which allow multi-vendor information nesting and augmentation, selective digital signing and other exciting features. Existing data structures can be modified and improved without disrupting deployed software, and advanced topics such as UNICODE support are handled in a uniform manner.
Level Two: A New Data Transport Architecture
Gnutella2 provides two interdependent data transport mechanisms: reliable compressed TCP streams, and an unreliable and semi-reliable UDP transport provider. The combination of these two systems allow higher level G2 constructs to take maximum advantage of network conditions to deliver data packets quickly and efficiently, with or without assured delivery, within bandwidth requirements and without unnecessary overhead.
Level Three: A New Set of Base Services
Gnutella2 takes full advantage of the first two levels to deliver an exciting new set of distributed peer-to-peer services. Controlled global object searching is implemented using an iterative walker approach, with selective out of band response delivery and translation. Combined with an abstract component interest/response query model, this system goes beyond what is available in any other P2P platform. The Gnutella Addressing System (GAS) provides the ability to reach arbitary nodes based on a known identifier, regardless of their connection method.
Level Four: A New Implementation Standard
One of the problems facing the legacy Gnutella network was the varying level of support for critical network features in different clients. The Gnutella2 Standard requires clients to implement the first two levels completely, as well as the dual transport providers with some form of intelligent bandwidth control, 1-bit universal QHT, simple search response, basic metadata (at minimum), simple query language, link compression, root tigertree as the primary URN, HTTP/1.1, partial transfer and sharing. If able to operate as a hub, the full set of generic routing rules must be supported. Support for G1 is recommended but not required.
CLICK ME! [webcruiser.org]
Re:Crossing fingers (Score:5, Informative)
Well, *here* is credit where credit's due:
GTK-gnutella [sourceforge.net]
LimeWire [limewire.com]
Gnutella started out as an "interesting project". It is now one of the most heavily developed an analyzed projects -- somewhat less centralized than the Freenet project, but far more skill (and variety of clients) on this than, say, FastTrack and the much-lauded Kazaa.
Parent
Kazaa vs. eDonkey (Score:5, Insightful)
Ever since I've been using Broadband (Optimum Online yeah baby!), eDonkey has won me over vs. Kazaa(lite).
Alhough eDonkey needs a little more work than Kazaa to operate, the file hashing/segmented downloads/no leeching is far better than Kazaa, plus the amount of file corruptions I get using Kazaa is way too much (especially with very large files). I've also started trying Overnet [overnet.com], but still have loads of downloads I'm clearing through the Donkey (Yes I have tried using the donkey downloads for Overnet, but only half register in the download tab).
I've tried using Gnutella/Gnucleus on numerous occasions, bit given up due to a lack of being able to do anything with it compared to the other P2P programs... I just hope Gnutella2 will become a viable option for me to use it.
Re:Kazaa vs. eDonkey (Score:5, Informative)
If you have a *nix box (even an apple if it's OS X) you can use mldonkey [nongnu.org] which is a very nice client. You can operate it remotely from another box, it uses both edonkey and overnet protocols simultaneously, it's partially open source (there is a key component kept secret for security reasons, the one flaw in thes protocols is that they require trusted clients unfortunately) and it really gives you the best of edonkey and overnet both, as well as supporting the move to overnet since anything you're downloading from edonkey or sharing out will also be shared to overnet.
Parent
Re:Kazaa vs. eDonkey (Score:4, Informative)
I guess the downside with eDonkey is that it requires up to date server lists, although that's a minor hassle really. And that's where the serverless Overnet comes in, which owns Kazaa any time except for the occasional music searches perhaps.
Parent
A *real* anti-leech/anti attacker system proposal (Score:5, Interesting)
I seriously doubt that. Any current "no leeching" mechanisms I've seen are severely flawed and rely on trusted remote code.
People who whine and bitch that people are bypassing them are ignoring the fact that the design is fundamentally wrong. You cannot trust code on another computer. Period. It *will* be broken.
It is possible to build a trust web (where you have metered trust, instead of just a binary "trusted" or "not trusted" a la PGP). Have each user generate a public/private key pair. Have each person maintain a list of trusted users. These users are identified by their public keys. "Trust values" are assigned to each user in the list-holding user's trust list. The scale is arbitrary -- maybe "100" means trust a lot and "1" means trust a little, and "0" means no trust. Trust is generally positive (more on that later).
When you want to determine "absolute trust" of a user, you run out and download the trust lists of all the users from them in your trust list (this spans only two hops out on the web of trust...you could go further, though I think this is sufficient). Person can grant absolute trust to person B as following: (points of trust A gives B in A's local trust list)/(total points of trust A gives A's local trust list)* (points of trust A has in our local trust list).
Then, attackers like the RIAA will be excluded from the network of trust, having low or no trust values, as they hand out corrupted files.
Trust lists can be redownloaded whenever. Cache 'em for weeks if you want.
Clients could automatically add a point of trust per data unit downloaded succesfully from a remote client...then, if it's a bad download, the local user could strip all trust away.
Trust could be used for ranking priorities to let people download from you, determining which copy of a file is "authentic" and which is bogus, etc.
Other possibilities: the reason we don't allow negative trust or blacklists -- only whitelists -- is because it's usually fairly easy to regenerate a new IP, and this results in bloating attacks against users maintaing blacklists. If a user can present something that "costs" them something to obtain, like a VeriSign cert or other "expensive" (i.e. can't regenerate on your computer easily) proof of identity (doesn't have to be your RL name -- could be a signed cert endorsing a 'nym from Zero Knowledge), then give them automatically a certain number of points of trust (client configurable). Why? Because it's much less likely that they're running out and buying a new Verisign cert for each attack. They're opening themselves up to blacklisting.
You could purge year-old entries from your local trust list to stay up to date...oh, there's tons of possible tweaks.
The trust network simply sits on top of another P2P network. It does not require that users not download from users with zero trust -- it simply provides some extremely useful information which is essential to implementing strong antileech/anti network attack protections, or what have you. It is also very difficult to attack. PGP is much more vulnerable, since you just need one stupid person in your web of trust to okay someone, their binary trust bit flips to 1, and they're in your web. If you don't trust someone much, and they give someone else a little tiny bit of trust...that person is only very slightly trusted.
Drawbacks:
My analysis of this approach has found only two drawbacks. First, there is some disk and memory overhead to store cached trust information locally. Gnutella clients already store IPs for much of the network, so it shouldn't be prohibitive, though -- we don't have to handle the whole network, just *trusted* users.
The second one is that letting people download your trust list -- crucial to the functioning of the system -- can leak some information. It means that you "trust" some user on the network. If that user provides nothing but, say, child porn, anyone on the trust network has circumstantial evidence that you have downloaded child porn. Of course, you could have granted the person trust for any number of other reasons, but it is a small amount of information leakage, and worth mentioning.
I welcome comments.
Parent
Just wondered... (Score:4, Interesting)
If so, can you list what you use it for?
Re:Just wondered... (Score:4, Funny)
*thinking hard*
Downloading
AFAIK, those aren't illegal.
Parent
Re:Just wondered... (Score:4, Interesting)
People can download off that person using partial file sharing, people can download off that person using partial file sharing etc. It will save the main site a hell of a lot of bandwidth and you'll be downloading the distro swarming from 10+ people rather than one slow FTP site.
Parent
Archie! Live! (Score:3, Interesting)
After a lot of work, six months ago I got an archie client compiling. Took some work on the source, but got it up. Then I took another two weeks to find a working archie server. It was the last public one, I'm fairly certain.
Two months after that, it went down. I was probably the only person that used it in ages, and probably the admins were wondering what was going on.
Gnutella2 - The real story! (Score:5, Informative)
So this isn't so much Gnutella2 as a improved Gnutella. Perhaps one day it will evolve into Gnutella2 more formally, but at the moment this talk of Gnutella2 is premature.
Re:Gnutella2 - The real story! (Score:5, Interesting)
Parent
Re:Gnutella2 - The real story! (Score:3, Interesting)
So when are you guys going to remove all that crapware & stealware from the LimeWire client?
Re:Gnutella2 - The real story! (Score:3, Insightful)
At first I saw that you worked for LimeWire, and felt a small amount of respect - then I remember the bullshit hoops I had to go through to clean my system of the utter crap it installed through my system directories and the registry.
As for calling something like Gnutella2 premature, um, no. The standards of the web were written down by the W3C, just as the Gnutella standards are written by the GDF. But if Shareaza comes out with something radically different and is accepted by the majority of users, it becomes the standard much in the same way that IE (unfortunately) did in the browser war. Now the W3C is playing catchup - and maybe the GDF is as well.
Re:Gnutella2 - The real story! (Score:4, Interesting)
Mike has done a hell of a job on his client and is a very nice guy, but he simply is not the originator of the vast majority of the standards being branded as "Gnutella 2."
The key word in your last paragraph is "unfortunately." Yes, it was unfortunate that IE created it's own standards and bypassed the w3c. Are you truly advocating proprietary standards over open standards? Am I misinterpretting you?
Parent
Re:Gnutella2 - The real story! (Score:3, Interesting)
As far as Gnutella vs. other networks, this is really the crux of the issue. Gnutella has lagged behind in some ways precisely because it is open -- it just takes forever for people to agree. I would argue, though, that it's worth it. Why? Because you come up with better standards in the end. Gnutella is the one network that has a public set of RFC-style specifications precisely outlining how the various protocols should work. This takes time, but it allows interoperability.
eDonkey (and Overnet) are great counter-examples. They work very well, but they are proprietary standards for the most part. This has meant things like the eDonkey web URIs not really being standards compliant. But, then again, they're everywhere, so does it matter? Maybe not.
It's my belief that open standards win in the end because they allow unforeseen innovation and creativity to be built on top of them.
Re:Gnutella2 - The real story! (Score:5, Informative)
So, the short answer is that we would prefer not to bundle anything. As a result, we now only bundle one program that we feel is really innocuous to the user and that they have the option not to install. On all operating systems other than Windows, LimeWire has no bundled software.
Parent
Re:How exactly does TopMoxie work? (Score:4, Informative)
Parent
Re:Gnutella2 - The real story! (Score:3, Funny)
I hate to say it, but I'm starting to get a pretty good chuckle every time I see some poor Windows user griping about the amount of pain they go through to get "good downloadz". I hear whining about "pop up" or "pop under" ads. I hear complaining about "spyware". I hear complaining about "mandatory sharing" in P2P apps. I hear people frantic that newer P2P apps can "fake" shares (like on Direct Connect) because of piss-poorly designed architectures involving trusted remote code.
It's all really funny to those of us who have been using open source P2P clients and Mozilla on Linux. *We* haven't seen a single one of these problems, and *we* aren't suffering.
But, you know what? I encourage pop-ups. And intrusive advertising, spyware, and everything else. Why? It doesn't affect me in the least, and it means that *you* are subsidizing the good life for me. Each pop-up you see funds another good, clean pop-up free page for me.
Of course, someday you people are going to catch on. You're going to use Mozilla, use Linux. You're going to use better P2P clients. But until that day, the rest of us are going to enjoy the good life.
Until then, thanks for everything!
UDP and firewalls (Score:5, Interesting)
I wonder if this will halt the spread of Gnutella2? With P2P, it's all about getting as many people online as possible.
Re:UDP and firewalls (Score:5, Interesting)
So, with both UDP and TCP, only outgoing data will not be blocked as a general rule. With TCP, this poses less of a challenge because once you've established a connection, data can be passed both ways. With UDP, you cannot establish a connection in the same way. That said, most firewally will allow incoming UDP from a specific endpoint if you've sent outgoing data to that endpoit "recently." In this way, a quasi-connection can be established.
All that aside, though, the short answer is that non-firewalled hosts, and specifically "Ultrapeers" on Gnutella, act as proxies for firewalled hosts, allowing firewalled hosts to behave on the network almost exactly like hosts without firewalls.
Parent
Another alternative... (Score:4, Interesting)
So, some of giFT's developers decided to abandon fasttrack, and make their own protocol, OpenFT. giFT went from "giFT is not FastTrack" to "giFT: Internet File Transfer". This protocol, primarily written by jasta of gnapster fame, has been development for the last ~8 months. A publically released version of giFT with OpenFT is not available yet, but right now, the CVS version [sourceforge.net] works quite well.. even in some ways better than FastTrack does.
There are also some great advantages to giFT. First of all, it enforces a seperation between the client and the network code. giFT is a daemon that handles most of the interaction with the outside world. There are also a multitude of giFT frontends, which are very easy to write, as no network code has to be created. giFT is also modular.. you can put in bridges or even full support to other protocols and networks.
The problems with Gnutella 1 (Score:5, Interesting)
Bandwidth Usage (for searches)
Search results. You only get about 4-7 hops. Assuming 4 hops & 4 non-redundant connections per node, that means you are only searching about 256 nodes. Being able to search everyone would make Gnutella for more useful for less-common files.
Fifo queuing. You may have been requesting a file for the past 24 hours, but someone that just requested a file may get lucky, and take what should have been your spot.
Messages. We need messages to tell people that slow nodes downloading from our node gets disconnected, that you are 2nd in the queue, etc.
Upload settings. Each node should be disconnected after a set period of time to prevent slow nodes from causing bottlenecks, or RIAA employees from abusing the limited open slots.
Bandwith Min/Max for Uploads/Downloads. A limit on the min/max speed for each file download/uploaded, and a min/max for the TOTAL of all downloads/uploads.
Dynamic determination of REAL IP (if behind NAT with dynamic globally valid IP).
Solution to the 'PUSH' fiasco. Is there a way that 2 firewalled nodes can connect to a third (non-firewalled) party to open the connection, then tranfer data directly? I don't think so, but worth including here.
Any more?
Re:The problems with Gnutella 1 (Score:3, Interesting)
Not possible. The only way it could work is if the third party connection acted as a proxy for all of the data, because neither side can initiate the TCP transfer. The PUSH idea is actually a pretty neat solution to getting around firewalls, but I never liked the way Gnutella used it, you rarely got a successful push.
It won't work if both clients are firewalled, and this is in keeping with the point of the firewall, i.e. preventing incomming connections.
My solution is to run p2p on a sacrifical PC, that only has limited access to my network i.e. read-only access to SAMBA shares. I do this anyway because it's a public PC in my living room, and with lot's of random people around from time to time, it's a good idea to protect my data. My firewall forwards the p2p ports to this host, so I basically can access all of the nodes on the network. Should it ever get "rooted", then my exposure is not quite as bad as it would be for a trusted machine.
Running p2p behind a firewall severely limits the number of people you can access. I see this as a good thing, because it means less people are fighting over the resources that I personally can use. ;-)
Re:The problems with Gnutella 1 (Score:4, Insightful)
Search results. You only get about 4-7 hops. Assuming 4 hops & 4 non-redundant connections per node, that means you are only searching about 256 nodes.
Your math is way off here. Try 7 hops with 6 connections, plus an extra factor of 100 or so from ultrapeers. That said, we are always looking for ways to improve searching. Ultrapeers [limewire.com] were one step along that path.
Fifo queuing. You may have been requesting a file for the past 24 hours, but someone that just requested a file may get lucky, and take what should have been your spot.
Many clients (e.g., LimeWire, BearShare, Shareaza, Gtk-Gnutella) have supported this for some time now. They all interoperate too.
Bandwith Min/Max for Uploads/Downloads. A limit on the min/max speed for each file download/uploaded, and a min/max for the TOTAL of all downloads/uploads.
All decent client have features like this. But note that this is an implementation issue, not a protocol issue.
Search by hash
This has been supported for many months, thanks to Gordon Mohr's HUGE proposal.
Metadata
LimeWire has had XML-based metadata for over a year. I believe Shareaza uses the same scheme.
As these examples show, the GDF has been quite successful at driving innovation on the Gnutella network. But caution is sometimes in order; it can be hard to predict the result of thousands of clients running a new protocol. It would be good for Shareaza to submit its new extensions for peer review before rolling out thousands of clients. It is easy to build a client that gets more search results; it is harder to do that without hurting the entire network.
Christopher Rohrs
LimeWire
Parent
This is missing the point (Score:4, Interesting)
Last February I got a bigfoot letter from my ISP, Rogers, who had been contacted by the Canadian equivalent to the MIAA, whatever it's called.
I was sharing tons of stuff, 8,000 mp3s, on DalNet and they wanted me to stop. What bothers me is they never contacted ME, they went straight to my ISP and tried to get me kicked off the Internet.
The letter from Rogers said you're in violation etc, stop now etc, or else etc.
So, I stopped.
This close call ruined my career on Dalnet where I had built quite a rep, and trashed my source of free music.
And not popular music either - ancient stuff you cant get anymore, like Robert Crumb and his Cheap Suit Serenaders. Buy THAT at your local CD shop...
Since then the point has been made moot by the fact that my cable modem has been capped at about a FIFTH of it's previous speed. (I am investigating DSL)
However - the crux of the whole matter is this - the record companies hired people to go on the internet and score music for them. Then these people, who, and this is crucial, have the IP of the music source, use that IP to run down the source down and then use legal means to try and get that person kicked off the internet.
IT DOESN'T MATTER HOW FANCY YOUR PROTOCOL IS OR HOW GOOD YOUR CRYPTOGRAPHY IS, IF THEY CAN GET YOUR IP YOUR SCREWED.
I have NEVER seen a p2p system address this issue.
Re:This is missing the point (Score:3, Interesting)
I have - it's called Freenet [freenetproject.org].
Re:This is missing the point (Score:3, Funny)
Your career? Huh? You were distributing files illegally. What career is that????
Gnucleus & GnucDNA (Score:5, Informative)
They are also working on GnucDNA [gnucleus.net] a component for building your own P2P applications.
Download Mirror (Score:3, Informative)
http://nstrom.chaosnet.org/Shareaza1701.exe [chaosnet.org]
Re:Hopefully downloads are better with G2... (Score:3, Interesting)
G2 is very, very good. The main improvement is that it has a global search radius. Normally, in G1, you can only see about 20% of the network at any one time. This is due to the design, and to the bad clients (i.e. Morpheus) polluting it. G2 has special techniques (a modified & extended GUESS) to see everything in the network at once.
There are other advancements that improve upon this, but they aren't really the thing that has the biggest impact now, like Tiger Tree Hashing, etc. Shareaza has already improved the network by providing a high-speed, high-efficiency backbone to the rest of the Gnutella network. The Shareaza clients freely connect to the other clients on the network, and so provide a way to see more of the network at once.
So, any way you spin it, it's good for the Gnutella network, especially considering that the specs will be released soon. And everyone who complains about this, even though their complaints may be valid, aren't seeing the tremendous improvement this makes to the workings of Gnutella.
Re:Hopefully downloads are better with G2... (Score:5, Funny)
You got a girlfriend, boss and Brother from a P2P applications! Wow what search are you using?!
Parent
Re:Hopefully downloads are better with G2... (Score:5, Informative)
Congratulations, you made them install quite a bit of spyware too.
I would recommend something like XoloX [xolox.nl], which has absolutely no [xolox.nl] spyware.
Parent
Re:Hopefully downloads are better with G2... (Score:3, Informative)
FWIW, Bearshare doesn't install insane amounts of spyware. Okay, it's not as good as the 100%-free clients, but they seem to have said "Hey, let's sell an improved version of this to make money" rather than, "Hey, let's piss off all our users to make money"
Re:UI (Score:3, Funny)
UNIX P2P clients don't suffer from this problem.