OpenP2P.com    
 Published on OpenP2P.com (http://www.openp2p.com/)
 See this if you're having trouble printing code examples


Morpheus Out of the Underworld

by Kelly Truelove and Andrew Chasin
07/02/2001
Comment on this articleHave you used Morpheus? Report your experiences here, or tell us what your favorite music "stealing" app is.
Post your opinion

The age of Napster officially ended last week, when Napster released beta 10.3 of the 2.0 client for Windows. According to the Napster site: "All previous versions of Napster have been disabled. We're making this change as part of our ongoing effort to comply with the court's orders." Besides disabling previous versions, the new beta also shows a count of what appears to be all users connected to all servers -- in other words, one can get an accurate assessment of the size of the Napster network simply by running the client.

As of this writing, the size of the Napster network is 160,000 simultaneous users, down from a peak of 1.6 million reported by Webnoize in February, a tenfold decrease.

So where are all the file sharers going? In terms of simultaneous users, the Morpheus-KaZaA network has risen to far eclipse not only the hobbled Napster, but also Gnutella, which Clip2 and Lime Wire have independently estimated with simultaneous users of about 40,000 (mean). The Morpheus-KaZaA count stands at over 300,000 at present, up over tenfold in two months.

Morpheus, available from MusicCity Networks, Inc. and the KaZaA Media Desktop, available from KaZaA are two functionally similar interfaces to the same underlying network. Both are based on technology developed by FastTrack. As the somewhat more popular of the near-equivalent pair, we focus in this article on Morpheus.

Like Gnutella but unlike Napster, Morpheus does not maintain a central content index and is not currently subject to content filtering. Like Napster but unlike Gnutella, Morpheus is formally a closed system, requiring centralized user registration and logon. In this article, we review the origins of Morpheus, cover its major features, and take a look under the hood at its architecture. We conclude with some comments on its technical significance.

Origins

For some time, MusicCity operated one of the largest sets of Napster-like OpenNap servers, typically supporting well over 10,000 simultaneous users across the set. In late April, MusicCity pulled the plug on these servers and launched the downloadable Morpheus application as a decentralized replacement. This action furthered a general decline of OpenNap that began two months earlier. By the numbers, it appears the existing user base quickly and successfully migrated to Morpheus, from which point it began to grow considerably.

To create Morpheus, MusicCity licensed the FastTrack P2P Stack, a product of Amsterdam-based startup FastTrack. The FastTrack P2P Stack also underlies the KaZaA Media Desktop, Morpheus' sister application launched many months earlier in late 2000 by KaZaA. KaZaA is "owned and developed" by FastTrack and amounts to the consumer-facing side of the FastTrack business. In fact, the KaZaA name appears during the Morpheus installation and, as we shall see, under the hood in the headers of messages sent by the application. The KaZaA site refers to the underlying platform as "KaZaALib," and notes that while there is no formalized "open development" program, KaZaA is interested to hear from parties wishing to develop upon it. At present, then, the FastTrack system is closed-protocol, closed-source.

Interestingly, the KaZaA and Morpheus user populations have mutual visibility -- the two applications are windows into a shared underlying network that harbors two user populations. Presumably, other parties might license the FastTrack platform and add new populations to the mix.

Superior Metadata, Web Interface

Kelly Truelove is a featured speaker at the O'Reilly P2P & Web Services Conference, Sept. 18-20 in Washington, DC.

Unlike Napster, which only supports the sharing of MP3 audio files, Morpheus provides support for the full gamut of audio, video, image, document, and software files. Morpheus' judicious use of metadata to describe the contents of a file (derived automatically from the file if possible, or user-provided via the application's file import wizard) means that files can be searched by such attributes as title, artist, category, language, resolution, and user rating. While Morpheus is largely a decentralized system, the speed of its query engine rivals that of centralized systems like Napster.

Morpheus, a 1.4-MB download, is presently only available for Windows. Like a variety of recent file-sharing and workgroup applications, Morpheus has a user interface that more closely resembles a Web browser than a conventional Windows GUI. Many of the application's key functions (search, chat, etc.) can be accessed via either HTML hyperlinks in an embedded browser window or the familiar array of Windows buttons and pull-down menus. All help text is HTML-based and displayed in the browser window; Morpheus never launches the system's default Web browser. An embedded Windows Media Player is included which handles the playback of media files from within the Morpheus user interface.

As a result of Morpheus' use of metadata to annotate media files, its integrated file manager is superior to that of most other file-sharing applications. Downloading an audio file, for example, causes a folder called Audio to be created in the file tree (rooted at a folder called My Media) into which the file is placed. Also created are two subfolders called Group by Artist and Group by Category, which themselves contain subfolders named for the artist and musical genre ("Rock", "Soundtrack", etc.) associated with the file. This makes for a powerful cross-reference system providing different views of the user's media library.

Aside from its metadata-based search and its cross-referencing media manager, two of the more interesting features found in Morpheus are its so-called SmartStream and FastStream technologies. SmartStream is intended to address the issue of incomplete file downloads which can plague systems like Napster and Gnutella. Files may fail to download intact for a variety of reasons, such as a loss of network connectivity at the machine serving the download. SmartStream implements a type of fail-over system that attempts to locate another peer sharing the same file, and automatically resume the download where it left off at the failed host.

Related Articles:

alt.napster

Lessons from Napster

Crunch Time for Napster

Gnutella and the Transient Web

OpenNap Use Crashes

FastStream, on the other hand, is intended to solve one of the other primary issues facing decentralized peer-to-peer file-sharing systems -- slow downloads. When the Morpheus search engine finds that more than one active peer is serving a particular file, it associates the list of peers with the file for later reference. This association is made manifest in the Morpheus user interface by the existence of a + to the left of the file's name. Clicking the + will display the list of peers making the file available for download. If the user instructs Morpheus to download the file, it can distribute the download task over this list of peers, thus relieving any one peer from serving the entire file and, therefore, improving download performance. Mojo Nation's "swarm distribution" and OpenCola's SwarmCast technologies are based on similar principles.

Morpheus utilizes a number of tactics, some straight from the Napster playbook, to maximize the number of peers available to serve files. By default, users become points of redistribution for any files they download -- the download folder is the shared folder. Also by default, Morpheus is launched and run in the background when the PC is booted. Further, the Morpheus application does not close when its window is closed; it simply minimizes to the system tray and keeps running in the background. Finally, because Morpheus contains a media player, users may launch it simply to play their audio and video files, passively acting as servers while doing so. By way of comparison, it is speculated that much of the remaining Napster user population is online simply because they are making use of the embedded MP3 player, rather than because they are downloading files.

Architecture

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.

A typical Morpheus file download request looks like this:

GET /4431/Martin+Luther+King+Jr.+-+I+have+a+dream.mp3 HTTP/1.1
Host: 10.20.31.42:1214
UserAgent: KazaaClient May 7 2001 16:00:44
X-Kazaa-Username: anon
X-Kazaa-Network: MusicCity
X-Kazaa-IP: 102.12.97.42:1214
X-Kazaa-SupernodeIP: 113.103.15.82:1214
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-Kazaa-IP: 10.20.31.42:1214
X-Kazaa-SupernodeIP: 120.23.123.227:1214
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.

Conclusion

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.

Copyright © 2009 O'Reilly Media, Inc.