The distributed.net distributed computing project is built around a pyramid architecture of keyservers and clients. At the top is the master keyserver.
It keeps track of which data blocks (keys for RC5 projects and stubs for OGR) have been sent out to be checked, which have been checked and returned and
which ones remain to be checked. Below the master keyserver are the main proxy keyservers. They serve as intermediaries between the clients
and the master keyserver. The proxy keyservers request blocks of
data from the master keyserver. Clients then request data blocks from the
proxy keyservers. Clients return checked blocks to the proxy keyservers
which in turn send them on to the master keyserver. In this way many
keyservers are available to distribute blocks without the risk that the
same block might be handed out twice. The use of proxy keyservers together
with round-robin DNS also provides a certain amount of fault tolerance. If a given proxy keyserver fails the clients will automatically switch to another
one with no interruption of service.
There is another level of server that can optionally exist below the
proxy keyservers. These are the personal proxy keyservers (or
pproxies). The pproxies request standard blocks from the proxy
keyservers and then turn around and hand them out to clients. Pproxies
are typically used as a method of distributing blocks through firewalls. They
are also maintained by some teams. All team members operate through a single
pproxy so that the team can use the pproxy log files to generate team
statistics independent of the main statistics. This helps to
ease the load on the stats server and gives the team some
freedom to pick what information they want to track and how they want
it displayed.
|