Browser PluginsClick here for information regarding browser plugins.
Source CodeNo official release for Coral is yet available, but you are welcome to check out the latest version from the CVS repository. This "alpha" version is experimental and under active development.
Coral is implemented in C++ and is free software, licensed under the GPLv2. We have successfully run this implementation on Linux, OpenBSD, FreeBSD, and Mac OS X.
Coral currently requires the following:
SFSCoral requires the async I/O and RPC libraries supplied by SFS. Note that you only need to build SFS in order to link against the libraries it provides. You do not need to run the SFS file system, nor follow its instructions regarding adding an sfs user or group (as this is only required for running the file system).
Obtain SFS as documented at fs.net. Please only use the anonymous CVS repository to get the latest version of SFS. Coral will not work with the last "released" version of SFS 0.7.2.
~> cvs -d :pserver:[email protected]:/cvs login CVS password: press return ~> cvs -z5 -d :pserver:[email protected]:/cvs co -P sfs1Coral will likely not build against older versions of SFS (at least up to 0.7.2). To build SFS you'll need a few tools:
~/sfs1/> ./setupIf your home directory is mounted remotely (such as over NFS), you might want to build the source in some different build directory on your local disk. If you are using a stand-alone workstation, this step is not necessary. From this (optional) build-directory:
~/sfs1-bld/> ~/sfs1/configure [--with-dmalloc] ~/sfs1-bld/> makeCertain BSD users may use gmake instead of make. The dmalloc option helps to debug memory issues. It can be downloaded at the dmalloc site.
Berkeley DBFollow directions at the BerkeleyDB 4.x download site on how to install Berkeley DB, needed for Coral's stable storage.
CoralPublic anonymous CVS access
Coral's anonymous CVS repository is updated hourly. To obtain and
build the latest source code, make sure that your environment variable
CVS_RSH is set to ssh, then do the following.
(Please note that the last letter of the coral directory's name is the
number one, as opposed to the letter ell.)
~> cvs -d :pserver:[email protected]:/cvs login CVS password: press return ~> cvs -z5 -d :pserver:[email protected]:/cvs co -P coral1 ~> cd coral1 ~/coral1> ./setup ~/coral1> ./configure [--with-dmalloc] --with-sfs=sfs1-bld --with-db ~/coral1> makeAs before, configure can be run in a separate build directory if desired. The with-db parameter can also take an optional argument that specifies some alternate location for the database files if they are not installed system-wide. By default, this does not build coralwebsrv; to do that,
~/coral1> cd websrv ~/coral1/websrv> make
Yes, it's that slow.
Now you are finally ready to start playing!
Getting read/write access requires an account on the SCS file servers, so this route is probably open only to SCS members and affiliates.
First, make sure you are a part of the coraldev group by editing the /etc/group file on ludlow. Now check out the sources from ludlow:
~> cvs -d $[email protected]:/disk/u1/coralcvs/ co -P coral1Then, just follow the same build instructions as for anonymous CVS access.
The source directory includes a number of configuration files in coral1/config. Once you build Coral, you can launch the peer-to-peer indexing daemon by executing (in the base build directory):
~/coral1> ./corald/corald -S /tmp/corald.sock -C ./config/corald.confpointing to the appropriate executables and configuration file. By default, this runs the coral daemon by itself (that is, not connected to any other peer node.)
If you have multiple peers, you can "link" them together into a network very easily: Simply supply the daemon with the IP address of another running machine, either under WellKnownHost IP:port in corald.conf or on the command line via -j IP:port. Note that multiple well-known hosts may be provided.
To run the Coral web proxy, supply coralwebsrv with the same sockname as given to the corald above:
~/coral1> ./websrv/coralwebsrv -S /tmp/corald.sock -C ./config/websrv.confBy default, this runs the web server on port 8090. To run it on another port, like 80, change the WebSrvPort option in the configuration file. We recommend against modifying unknown options in the configuration files, otherwise.
Also, the web proxy writes its cache to the directory /tmp/coral-cache by default, which it creates if it is not present. You can change this by setting the environment variable "CORAL_CACHE" to a different directory before running, if desired.
To run the Coral DNS server, supply coraldnssrv with the same sockname as given to the corald above:
~/coral1> ./dnssrv/coraldnssrv -S /tmp/corald.sock -C ./config/dnssrv.confYou must first, however, modify the PrimaryHostname and SecondaryHostname options in the dns configuration file to use your appropriate domain name.
More detailed documentation will be forthcoming.
Thanks...Coral uses the Kademlia routing metric (Petar Maymounkov), and it is built atop the SFS asynchronous I/O and RPC libraries. Coral's web proxy uses some HTTP parsing code from OKWS (Max Krohn). Coral currently uses the AppManager interface to help administer the network (Ryan Huebsch).