I'm going to switch from a client/server model to a peer to peer version later. Why?

When somebody joins the network they just know about the group name and one other person, who informs them who everyone else is. People then announce themselves to the group using the group secret. The buddy list itself can be used to decide who is in the group.

When somebody does a glance, they just IM every member of the group. Each member calculates the current glance status themselves, or can query any member of the group to find out what it is (in the case of somebody "logging in").



On the neutral list, to join the group you need to know secret and the name of one other user (instead of the group name). And usage could be monitored if people agreed to ping a central service.