I am going to have to write my own dht implementation eventually.
Many of the problem with DHT-based things seem to be solvable by just not having a global DHT.
But so far I haven't figured out how to add a way to filter who can join with existing dht implementations, if you have access to a node to bootstrap with you can be part of it.
and yes, I am working on what is an explicitly fragmented network. That is a feature, not a bug