But because there are no set-in-stone rules in Gnutella to determine which machines should become super nodes, each developer seems to have a slightly different idea for how to implement them. This would be fine if all developers set relatively high standards for super nodes -- but some programmers set the bar too low, allowing any machine that uses its software to have this special status. Not coincidentally, this boosts performance for people who use that program and slows everyone else down.
Qtraxmax, the program that won't stop sending out automated queries, has also been accused of super node abuse. "Note that clients like Qtrax and Shareaza allow leaves with limitless numbers of [super nodes]," wrote BearShare's Falco in the GDF. "This incredibly selfish behavior causes a flood of query traffic. Although it maximizes results for the local user, it impacts the network greatly. If every client behaved like Qtrax, Gnutella would surely fall."
On the GDF, there is constant back-and-forth over proposals to deal with such problems, and ideas are well-vetted before they're implemented en masse. Though there's a formal voting mechanism, it's hardly ever used, but new ideas aren't often implemented without consensus. There is currently a debate over a proposal to require "digital certificates" for clients to join the Gnutella network. Such certificates would work essentially like passports on the network -- passports issued, and, if necessary, revoked, by the group. It's not clear if this proposal will amount to anything; developers say that if it's rejected, some other scheme to secure the network will likely take its place.
Alan Cox, a veteran Linux developer, says that he's seen this sort of debate before, and he's not against a system that keeps out malicious users using technology. "Years and years ago this came up with a game called Xtrek," Cox says. People were building clients with unfair capabilities to play the space game -- and the solution, says Cox, was to introduce digital signatures. "Unless a client has been signed, it can't play. You could build any client you wanted, but what you can't do is build an Xtrek client that let you play better."
But some developers wince at the thought of using signatures to close off an open network. "There's something inherently brittle about it," says Brian Behlendorf, the co-founder of the Apache Web server project. "Especially when you're talking about an open protocol, from a philosophical perspective, I don't think it works. That seems to me like it would have inhibited innovation. It's fundamentally undemocratic. I can't imagine what HTTP" -- the protocol at the heart of the World Wide Web -- "would've looked like if we required that." Nodes on a network can certainly take "defensive measures" to protect themselves from bad actors, Behlendorf said, and he said that engineers had built that security into the protocols that govern the Internet.
But Gnutella is a different conceptual beast from the Internet, both in its engineering -- its fluid nodes and peer-to-peer architecture -- and, more importantly, in its governing ethic. To put it most simply, Gnutella has few rules because it has few leaders, and both Cox and Behlendorf agree that for an open project to work, it needs to have a leader that the other developers trust. In Linux, Cox says, "Linus wins -- but Linus [Torvalds, Linux's creator] rarely makes a decision except when consensus simply isn't going to be reached." Also, Cox says, "I worked it out one time, and he turns out to be right nine times out of 10."
By design, Gnutella lacks authority, and that could account for its problems. Fisk, of Limewire, makes clear that he and the other veteran developers have no intention of "taking over" Gnutella, but it's also obvious, he says, that stable clients make for a better network. When Gnutella developers think of their network, they don't think of it as a mere MP3 trader, Fisk says. They see it as a revolutionary new protocol for the Internet, one that could be especially important for the sort of huge file transfers that are promised for our impending broadband age. That was the vision that Gene Kan, the developer who did much to popularize Gnutella -- and who committed suicide in July -- used to have for the system. And in order for that vision to come to pass, programmers say, Gnutella needs to be more stable. And for that, Gnutella needs firmer rules.
But will the project splinter if the big guys make their rules? "It could," says Cox. "The project could fork" -- meaning that developers who don't like the rules would split and start their own version of Gnutella. "If you've got people who make bad decisions, the nice thing about open source is, you can always do what you want. And in the end, it only depends on which system is better. There will be a natural selection."