konspire logo

NEW (7-24-2000): Beta3 available.
Beta3 is not compatible with previous versions. Everyone must upgrade.
Beta testers needed. (see below for details)

A new distributed file-sharing system featuring fast, exhaustive searches and modest network bandwidth requirements. Written in Java 1.1 (with Swing GUI) for platform independence.
(free and open-source, of course)


This free package contains two pieces of software (runnable Java classes):
konspire.server.Server-- command-line distributed indexing server.
konspire.client.Client-- graphical client for searching, downloading, and serving files to other clients

Features
Files:
-- supports downloading and serving any kind of file (e.g., text, software, music, movies...)
-- all file transfers are resumable (e.g., if connection is broken or transfer is canceled)

Searching:
-- search query load shared by a distributed network of file index servers (thus, searches are fast)
-- multiple search terms supported (files returned match all terms entered)
-- partial string matches supported (e.g., searching for "uta" would match "utah.zip" and "computation.exe")
-- every search is exhaustive (if a file exists in the system that matches all search terms, it will be returned)
-- all load from file searching carried by servers (except for load on client that issues a search request)
-- file name index is kept in a novel data structure that makes substring searches both fast and space efficient

Transfers:
-- supports simultaneous downloads and uploads
-- fast file transfers (comparable to FTP; 500 KB/sec has been witnessed on machines with fast connections)
-- all file transfer load carried by client (servers are only involved in indexing and searching, not file serving)

Portability:
--written in pure Java 1.1, so it runs on almost every platform (including: Windows 95/98/NT, MacOS, MacOSX, Linux, and Solaris)
--compiled applications fit easily on a floppy disk so they can be installed and run *anywhere*

System requirements
Server:
-- Java 1.1 (or higher) installed
-- internet connection
-- not behind a firewall (or a tunnel set up by firewall administrator for konspire)

Client
-- Java 1.1 (or higher) installed
-- Swing installed (can be installed on any platform that supports Java 1.1). Note that swing comes built-in with Java 1.2 and higher.
-- internet connection
-- (to serve files to others) not behind a firewall (or a tunnel set up by firewall administrator for konspire)
-- searching and downloading will work from behind a firewall

Getting required system software:
-- download Java from Sun's Java products site
-- download Swing from Sun's JFC site
-- download Macintosh Runtime for Java from Apple's Java site



Beta Testers
If you'd like to help us test the beta version of konspire, feel free to download the software listed below. So far, we've worked out most of the bugs in this version, and we believe there are no more "show-stoppers." However, there may be a few minor bugs that only occur in particular sets of circumstances.

If you run into one of these bugs, you may see a Java stack-trace in the command-line window (Java warns that an exception occurred and tries to tell you where it occurred with a list of "at..." lines). If you see a stack trace, please copy and paste it into an email to us (in Windows, you may need to put the command line window into "mark" mode using the edit sub-menu to be able to select text). In the email, please also include a rough description of what you were doing when the stack-trace happened.

Alternately, your bug may not show up in the form of a stack-trace. Perhaps part of the program won't work correctly (e.g., a button will not respond, etc.) Please look through the documentation *before* you report this kind of bug since the "bug" may actually be correct behavior (e.g., you need to be connected to a server before you can click the search button). Again, in your email about the bug, please include what you were doing when the bug occurred.

Finally, we're also looking for general, small suggestions about how to make konspire better. For instance, "It would be nice if there was a button that let you do [some small task]" is a small, appropriate suggestion. "It would be nice if konspire played MP3 files to the speakers during MP3 downloads" is not a small, reasonable suggestion. Please explain you suggestion completely in your email.


Please send all bug reports / suggestions via email to:
konspirebugs@apnrecords.org


View the list of Bug Fixes



Live Server List
To see a recent list of live servers, click here.
You can use a server from this list a seed server for starting a konspire client or server for the first time.



Downloads
Any platform
To run konspire on any platform that supports Java 1.1 (and Swing, if you're running the client), all you need is the konspire.jar Java archive. Please note that when either a client or a server starts up, it looks for a file called "servers.dat" from which it reads a server list. If the file does not exist, the programs will complain about it, but they will still operate fine. After connecting to the konspire network for the first time, both client and server will save a list of live servers by creating a new "servers.dat" file.

Also, note that if you're running the client, you should create a directory (folder) called "files" in the same directory as konspire. This is the folder that the client scans for its file list.

You can run konspire server by typing (at command line):
java -cp konspire.jar konspire.server.Server 5455 25
where the first number is the port you want the server to listen on, and the second number is the maximum number of clients that can connect to your server simultaneously.

You can run the konspire client by typing (at command line):
java -cp konspire.jar konspire.client.Client 6455 25
where the first number is the port you want the client to listen on, and the second number is the maximum number of clients that can connect to your client simultaneously (to download files from you).

If you want to run konspire from the command line, download:
konspire.jar (84 KiB) (ver. Beta3)

All Unix platforms should download the "Any Platform" version. These platforms include Linux and Solaris.

If you don't have a command line (e.g, MacOS), or the above procedure sounds confusing to you, you can download a copy of konspire that includes scripts for running konspire on your specific platform.
Windows 95/98/NT platform
The ZIP archive listed below includes the konspire.jar file as well as BAT scripts for running konspire clients and servers. After downloading the ZIP file, unizip it (using WinZip or another ZIP utility). Then, open the folder where the archive unzipped to and double-click on "client.bat" or "server.bat" to launch a client or a server. (If your machine is hiding file extensions from you, the files may be called "client" and "server" respectively.)

The included scripts start clients and servers with default settings. If you would like to customize these setting, open the .BAT files with Notepad and change the port or maximum number of connections (see Any Platform instructions above for details).

If you want to run konspire using Windows specific scripts, download:
konspire.zip (76 KiB) (ver. Beta3)

MacOS platform
Note that this download includes a MacOS fix for Beta2. konspire should now launch without errors on MacOS.

The SIT archive listed below includes the konspire.jar file as well as applications that MUST be used to run konspire clients and servers on MacOS. The applications pass all settings to the client and server when they start up, so if you want to change these settings, you must alter the applications. This can be a bit complicated. See documentation about this below.

Note that if you're running MacOSX, you should download the "Any Platform" version. You can then run konspire from the command line.

If you want to run konspire on MacOS, download:
konspire.sit (124 KiB) (ver. Beta3)




Supporting HardenedCriminal software
konspire, like all HardenedCriminal projects, is completely free. We're not accepting any monetary donations in support of these projects. However, if you're really itching to help us out, you might want to visit our associate record label. APN records is a not-for-profit label that seeks to promote interesting music from all genres. While visiting the site, you can learn about APN's roster of artists and download 14, full-length, high-quality MP3 tracks. APN is run by the same people who run HardenedCriminal software (some of us even have our musical work on the label). Check it out.
www.apnrecords.org



Why is konspire better?
After glancing through the above feature list, konspire may seem to be quite similar to other popular distributed file-sharing systems. However, besides using Java for extraordinary portability, konspire makes many improvements over other popular packages in the way that its file system operates. On *almost* every point, konspire is superior to other available file-sharing systems. See below for a more detailed analysis.

Please note that this analysis is not meant to knock these programs or their authors. These are wonderful programs, and their authors are near-geniuses. konspire would not exist without the mental sparks triggered by using and enjoying these programs. This analysis is meant to be an honest, feature-by-feature comparison.

Why konspire is better than Gnutella
Visit the Gnutella website.

Why konspire is better than Napster
Visit the Napster website.

Table comparing features of konspire, Gnutella, and Napster.

konspire is written in Java. Many may point to Java as konspire's main weakpoint, since performance of Java applications can pale in comparison to natively compiled C/C++ applications. We've found that for the tasks konspire performs, Java works fine, since network bandwidth, not code speed, is usually the main limitation. We chose to use Java for a number of important reasons.

Why Java?


Documentation
Using the konspire server

Using the konspire client

How konspire works

How the konspire file index database works

How to adjust client and server launch parameters in MacOS

Developer Documentation
Browse the entire konspire package javadoc



Screenshot

This screenshot shows the konspire client Swing-based graphical user interface.
(click to enlarge)


Source
Browse the source directory.

Download the entire source tree:
konspire_src.tar.gz (42 KiB) (ver. Beta3)





For questions, comments, (or if you're having trouble with the website), email jcr13@cornell.edu
Visit HardenedCriminal software to check out other open source projects:
HardenedCriminal software

since 6-20-2000