BlindData for subdbs incomplete, ineffective, buggy
There's a large amount of changes for each subdb to have its own BlindData, but as noted in the ConfigKeyringHandler TODO there's still only one persistent cache.
The same entries are duplicated for each subdb on /configkeyring so there's a UI issue, and the cache is apparently propagated to every subdb.
ALL BlindCaches point to the same router.blindcache.dat file and so you could have concurrent access and corruption issues when reading/writing.
So rather than just have a single BlindCache in maindb, you have a separate one for each, all with the same data. This is obviously incomplete or not fully thought through, poorly tested, has concurrency and efficiency issues. Suggest you start by analyzing what you're trying to accomplish, what's the threat model, etc. Then design an implementation to support that and test it. Or revert all of it, go back to a single BlindCache, and disable per-subdb BlindCaches. What's there now just adds bugs but doesn't actually isolate anything, as best as I can tell.
I'm also not sure if isolation can ever work for transient clients. If you're just starting up each client by loading the (single) cache, what is the point?