Where to start, a good question... to good question to be true. I
have several things on my lists.
1) CTCP, something mimic the behavior of the
client-to-client-protocol used by IRC. See
for those not
familiar with it. Its through CTCP that IRC support things like
/me, which some clients now supports in DC (oDC at least). The
adding of CTCP to IRC also made DCC possible. But more on this
will described in a separate thread.
2) The login procedure and bandwidth consumed. A couple of days
ago i tested verlihub and my 10Mbit line more or less got maxed
out around 2400 users. I did some stats how much a client received
after login was done. It received 400-420Bytes/S at 2250 users. I
have seen Verliba claiming that (N/20)
kbps is a "measure" of
how much bandwidth is used when N users are online. Validate such
formula in it self would be very interesting. Here a lot can be
done, the QuickList approach by Nev and similar. I have also
thought about having user registering if they are passive or
active, and thereby not broadcast passive searches to passive
clients since they do not respond to them anyway. But this will
probably be more than one thread.
3) Documentation of all extended protocol-commands, such as
$Supports, $NetINFO, $BotINFO, $HubINFO, $ZBlock, $UserIP.....
Probably one thread / command.