But Gnutella developers aren't waiting around for Qtraxmax to start behaving well. On Gnutella discussion sites, programmers are discussing a number of technical proposals that would make access to the network contingent on good behavior: If you write code that hurts Gnutella, in other words, you don't get to play. One idea would allow only "clients that you can authenticate" to speak on the network, Fisk says. This would include the five-or-so most popular Gnutella applications, including "Limewire, BearShare, Toadnode, Xolox, Gtk-Gnutella, and Gnucleus." If new clients want to join the group, they would need to abide by a certain communication specification.

In theory, such a system could both cut down on selfish behavior on the network and go far in preventing malicious attacks from the recording industry, which many Gnutella developers expect. There aren't yet solid technical plans for these proposals, but "if the situation gets bad enough," says Fisk, limiting the network to a few well-behaved programs is "definitely a possibility" during the next year. With Gnutella developers worrying about bad clients and the recording industry, people are now rethinking "having this network where you allow just anyone on."

Such a move might seem out of place in a project that, from the outset, has held itself up as a foe of authority. But Gnutella has outgrown its cowboy days, and some developers, over time and through force of will and coding savvy, have in fact become Gnutella's leaders. Bearshare's Vincent Falco, Gtk-Gnutella's Raphael Manfredi, and the developers at LimeWire are some of the most impassioned, informed, and indeed authoritative voices on the GDF. As designers of the more established Gnutella clients, they also have the most invested in the system, and the most to lose if the network goes down thanks to the pranks of a few upstarts. Their need, now, to bring order to an open system is only natural -- but there's no telling how other Gnutella developers will react to the proposed ideas.

In a way, say people in the open-source movement, Gnutella is in a spot that many open projects have faced before; it's a strange mix of order and disorder, upstarts and old-timers, proprietary interests and open-source purists, and it needs to find the right balance, or it could founder.

Gnutella has always been more a provocative technical idea than a useful file-trading network. When it was released, it was billed as an improvement over Napster, whose network required central servers and was therefore vulnerable to legal attacks by the recording industry. Gnutella is fully decentralized, and that, people said, rendered it immune to legal action; in late 2000, when Napster's court-imposed shutdown seemed imminent, it was this promise of Gnutella's invincibility that seemed to sustain most file traders.

But from the beginning, Gnutella exhibited a frustrating reluctance to "scale" -- to perform adequately for large numbers of users -- and when Napster did eventually shut down, in 2001, Gnutella wasn't ready for influx of refugees. Instead, Morpheus, KaZaA and Audiogalaxy -- all faster, non-Gnutella clients -- became the center of file trading. (Morpheus is now a Gnutella client.)

Gnutella is often called "an open-source application," but that's not correct. Although many Gnutella developers embrace the open-source ethos and release their programs under open licenses, Gnutella itself is only a protocol -- a predefined language for communication. It's this protocol that's open. Any developer can freely create a client to speak the Gnutella language, and any client that speaks the language can talk to all others that do. The common protocol allows for a bigger community of file sharers, and it leads to fewer points of centralization. But because developers are free to implement their own variations on network standards, this open system can also be seen as the cause of some of Gnutella's performance problems.

The openness has, for example, most likely hindered Gnutella's ability to scale up. During the last couple of years, Gnutella programmers have developed a number of techniques to deal with the system's scaling problems, the most important being the introduction of "super nodes."

The Gnutella network, as initially created, could be thought of as something like a very noisy cocktail party: If there are 10 people in a room, and one person wants a drink from someone way at the other end of the room, the "get me a Perrier" message would spread around the room raucously, getting passed from neighbor to neighbor in no organized manner. The message would, eventually, get passed to the right person, but only after a lot of unnecessary chatter. Super nodes were created to quiet down the system; they act as the network's traffic cops, directing queries and preventing excessive replication of requests.

Recent Stories