oreilly.comSafari Books Online.Conferences.
Articles Radar Books  

Morpheus Out of the Underworld
Pages: 1, 2


The FastTrack P2P Stack is a C++-based protocol stack for use in building "next-generation" peer-to-peer networks. While MusicCity dubs Morpheus a "distributed, self-organizing network," a central server is still responsible for maintaining user registrations, logging users into the system (in order to maintain active user statistics, etc.), and bootstrapping the peer discovery process.

After a Morpheus peer is authenticated to the server, the server provides it with the IP address and port (always 1214) of one or more "SuperNodes" to which the peer then connects. A SuperNode acts like a local search hub, building an index of the media files being shared by each peer connected to it, and proxying search requests on behalf of these peers. Such a scheme greatly reduces search times in comparison to a broadcast query algorithm like that employed on the Gnutella network.

Morpheus peers are automatically elected to become SuperNodes if they have sufficient bandwidth and processing power (a configuration parameter allows users to opt out of running their peer in this mode). Once a Morpheus peer receives its list of SuperNodes from the central server, little communication with the server is required. Clip2 independently developed the equivalent of a SuperNode for Gnutella, a product we named the Clip2 Reflector and generically designated a "super peer." A prototype future version of BearShare (codenamed Defender), a popular Gnutella application, implements the super-peer concept in the same integrated manner as Morpheus. In the prototype, BearShare can operate in normal or super-peer modes, depending on configuration.

Much like Napster and Gnutella, search results in Morpheus contain the IP addresses of peers sharing the files that match the search criteria, and file downloads are purely peer-to-peer. As is the case with Gnutella, file transfers are via the HTTP protocol. Because of this, each peer is essentially a Web server. With knowledge of the appropriate URLs, Clip2 was able to successfully download files from Morpheus peers using Microsoft Internet Explorer.

Comment on this articleHave you used Morpheus? Report your experiences here, or tell us what your favorite music "stealing" app is.
Post your opinion

A typical Morpheus file download request looks like this:

GET /4431/Martin+Luther+King+Jr.+-+I+have+a+dream.mp3 HTTP/1.1
UserAgent: KazaaClient May 7 2001 16:00:44
X-Kazaa-Username: anon
X-Kazaa-Network: MusicCity
Connection: close
X-Kazaa-XferId: 2956456

Upon receiving the above download request, a Morpheus peer sends a response like this:

HTTP/1.1 200 OK
Content-Length: 4381547
Accept-Ranges: bytes
Date: Thu, 07 Jun 2001 20:43:32 GMT
Server: KazaaClient May 7 2001 15:59:09
Connection: close
Last-Modified: Tue, 20 Feb 2001 22:31:02 GMT
X-Kazaa-Network: KaZaA
X-KazaaTag: 5=274
X-KazaaTag: 21=128
X-KazaaTag: 4=I have a dream
X-KazaaTag: 6=Martin Luther King Jr.
X-KazaaTag: 14=Speeches
X-KazaaTag: 3=asqK3s/zY2oC4IaGYq3gJYWLcKo=
Content-Type: audio/mpeg

Note the use of metadata headers describing the requested file. Also, note the repeated occurrence of the "Kazaa" name in these headers.

Following the HTTP response, the number of bytes specified in the "Content-length" header is sent from the peer sharing the file to the one who sent the download request, and the connection is closed.


The price Napster has had to pay for the performance efficiency of a centralized file directory has been the legal responsibility to filter copyrighted materials from that index, a responsibility its latest client strongly enforces. Using the "super peer" concept, along the lines of the Clip2 Reflector and the BearShare Defender prototype, the Morpheus-KaZaA network has managed to rapidly scale to support hundreds of thousands of simultaneous users without utilizing a centralized file directory. By appearances, the Morpheus-KaZaA simultaneous user count has outstripped that of the latest incarnation of Napster.

Like users of Gnutella applications such as BearShare and LimeWire, users of Morpheus and KaZaA are transparently running minimal Web servers on their PCs. Given that the Morpheus-KaZaA population is larger than Gnutella, this network now constitutes a larger portion of the Transient Web. However, the fact that the Morpheus-KaZaA network is a closed system makes it far more homogeneous than Gnutella, with perhaps fewer possibilities to be extended and put to novel uses.

Kelly Truelove is an independent research analyst who, via Truelove Research, covers peer-to-peer technology with a focus on P2P content search, storage, and distribution networks. He is regarded as a leading expert on consumer file-sharing systems, which he covers with a data-driven approach.

Andrew Chasin is a Senior Software Engineer at Clip2.

P2P Weblogs

Richard Koman Richard Koman's Weblog
Supreme Court Decides Unanimously Against Grokster
Updating as we go. Supremes have ruled 9-0 in favor of the studios in MGM v Grokster. But does the decision have wider import? Is it a death knell for tech? It's starting to look like the answer is no. (Jun 27, 2005)

> More from O'Reilly Developer Weblogs

More Weblogs
FolderShare remote computer search: better privacy than Google Desktop? [Sid Steward]

Data Condoms: Solutions for Private, Remote Search Indexes [Sid Steward]

Behold! Google the darknet/p2p search engine! [Sid Steward]

Open Source & The Fallacy Of Composition [Spencer Critchley]