Welcome to the new home of cleannap

Project Motivations and History

The cleannap project started as a way for me to learn advanced C++ programming with a heavy networking component, modularity, and multiprocessing.  It achieved these goals very well, allowing me to become very familiar with C++ and various programming concepts.  But with any project I create, there is usually a more practical reason as well.

Its secondary purpose was to eventually become the foundation of a company that operated in much the same way the current online music stores do today (iTunes, Napster2, eMusic, etc).  At the time of its creation, such resources did not exist.  Cleannap was born to eventually solve this problem by creating a legal music file-sharing network.  As the major record labels, at that time and even still today, were very wary of online content distribution, I planned to target only independent artists who owned their own copyrights.  Music could be sold or distributed for free through the network at the choice of the artists.

But before such a system could be implemented, several problems had to be addressed.  The most important of which was piracy.  The system was to employ a whitelisting system.  Users could share any files they wanted, but only those registered in our database would be visible or downloadable by other users.  Artists would be solicited to distribute their music in our system (for free).  After contractual permission was granted, artists would register which songs they wanted to be available and how much they would cost.  This would all be done on a web interface (made with PHP) tied into the P2P server's databases.  When new artists and/or music was added, users could then share the new files.  This system completely prevents unauthorized distribution (piracy), making it a legal and viable business.

Cleannap is based on the OpenNap P2P protocol (which was based on the original Napster protocol created by Shawn Fanning for the network with the same name).   This protocol had no mechanism to charge users for music they purchased, so obviously some changes needed to be made.  But this only be made as an extension to the original protocol.  Users using the older clients could still use the network to its fullest to download the free music.  In order to purchase music, they would have to notify the system (via the web interface, or sending a private message to a special pseudo-user) to charge their account for the song.  This is cumbersome, but allows all users to use the service without having to download the company's proprietary client.  With the client, downloading any music would be easy, much like it is in the current music download services.

Obviously funding for the system would have to come from somewhere.  Registration into the service by both artists and listeners would be free, as would adding new songs by artists and downloading them by users.  Money would come from a fee out of the $1 cost of the for-pay songs some artists would distribute (say, 25%).  Advertising for bands on the site's front page as "featured artists" would also be an option.

The system has definite potential, but will probably never be launched.  Just after the completion of the main components of cleannap, the Napster and iTunes music stores launched, quickly solving half of the problem cleannap was given to solve.  The other half, easy, free access to unsigned artists, is not currently available.  However, a company in the works called SnoCap developed by Shawn Fanning seeks to solve that very problem.  Development was ceased (after being restarted) when SnoCap was announced.