Distributed Relay Chat

(Work in progress)

DRC is a project to create a reliable and completely decentralised alternative to both IM and IRC networks, but mainly aimed at IRC --- use as an IM network is a side-effect. This is to be achieved by throwing out most of the "legacy" junk that IRC hangs onto and completely redesigning the topology and protocols from the ground up.

Problems with IRC

Topology

IRC is based on a "spanning tree" topology. The advantages of this approach include eliminating cycles (and therefore duplicate messages) and simplifying routing across the network (there is a sense of "upstream" and "downstream").

However, major goals of a decentralised network are coping with failures gracefully and distributing load evenly. A spanning tree topology doesn't make either of these easily possible. It provides only a single route between any two nodes, so that if one link breaks, all nodes "downstream" of the link are isolated from the rest of the network. Also, the "hubs" of an IRC network can become a bandwidth bottleneck between sections of the network.

Services

To be completely fair, every implementation of services on IRC networks that I've used have given the same impression --- that services are an afterthought, hacked onto IRC, which have to jump through hoops to be of any use. The other point is that they are all centralised (to my knowledge). There is no point in having a decentralised network when authentication etc. can be taken out with a single hit.

Last modified June 2nd, 2008 at 7:08 p.m.