No 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
Public 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:coralcvs@coralcvs.scs.cs.nyu.edu:/cvs login
CVS password: press return
~> cvs -z5 -d :pserver:coralcvs@coralcvs.scs.cs.nyu.edu:/cvs co -P coral1
~> cd coral1
~/coral1> ./setup
~/coral1> ./configure [--with-dmalloc] --with-sfs=sfs1-bld --with-db
~/coral1> make
As 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!
Read/Write CVS access
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 $USER@ludlow.scs.cs.nyu.edu:/disk/u1/coralcvs/ co -P coral1
Then, just follow the same build instructions as for anonymous CVS access.
Running Coral
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.conf
pointing 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.conf
By 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.conf
You 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