( alpha stage of document ;> ) PIC - Persistent IRC Clients We all suffer from network problems and not much we can do about it. It is getting worse every day, with all those DDoSes etc. So we need to help ourselves a little. When there was a problem with lines breaking modem connections the wise guy invented screen. So why not borrow excellent idea? Hence the idea of persistent irc clients. Basics are simple: upon any network error do not QUIT client (like we do now), disconnect socket but keep client in memory, marked as "detached". And allow client to reattach, of course. The base: o detached client will not *receive* any message o detached client state will be *affected* by KICK, MODE, KILL (or FNC) if client is target In result detached client will always be in sync with stateful messages and will never receive anything stateless. This state of client will be visible (not G/H but, say, D flag in WHO, something we need to think of in NAMES, too) and any tries to to send anything to such client will result in some numeric. After reattach, client will see all his modes back, as if he never was disconnected, however no PRIVMSGs. Reattach should be possible from *any* server allowing that client. This will greatly reduce sense of DoS-ing server or clients itself, since clients will simply reconnect to some other server and have their @ back. This seems too easy to abuse (create gazillions of ghosts), so it will be available only for registered users. How to do registration is beyond scope of this paper (but hint is: LDAP). NOTES: Moreover, protocol changes are needed; reattaching clients will probably be done via QUIT/NICK/SERVERMODEs; Preventing from having ghosts on splitted server when clients reattached on other might be done by having transactions on reattach command (I mean, remember them all and send in burst to other servers, so they could release matching clients as they reattached elsewhere).