Massive cleanup
The DNSChain code could be cleaned up.
There's a lot of coupling, it could be made more modular. Variables have HUGE scopes, it opens the door to some really nasty bugs.
The codebase is built with the assumption that there will always be one core/one process. Fixing the problems above will make it possible to parallelize it, which in turn, will make it possible to do "code hotswap": basically applying updates live without dropping connections.
All these things together will make DNSChain a lot more solid. Right now, there's a lot of small problems (possible uncaught exceptions all over the place) that could bring down the whole server.
This is necessary before DNSChain can be used on servers resolving millions of requests/day : performance is just too unreliable and unpredictable otherwise.